Merge pull request #17 from ccrisan/buildroot-next

Buildroot 2018.08.02
This commit is contained in:
Calin Crisan 2018-11-18 16:28:34 +02:00 committed by GitHub
commit a10da70054
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3954 changed files with 51319 additions and 38489 deletions

293
Config.in
View File

@ -62,6 +62,14 @@ config BR2_HOST_GCC_AT_LEAST_7
default y if BR2_HOST_GCC_VERSION = "7" default y if BR2_HOST_GCC_VERSION = "7"
select BR2_HOST_GCC_AT_LEAST_6 select BR2_HOST_GCC_AT_LEAST_6
config BR2_HOST_GCC_AT_LEAST_8
bool
default y if BR2_HOST_GCC_VERSION = "8"
select BR2_HOST_GCC_AT_LEAST_7
# When adding new entries above, be sure to update
# the HOSTCC_MAX_VERSION variable in the Makefile.
# Hidden boolean selected by packages in need of Java in order to build # Hidden boolean selected by packages in need of Java in order to build
# (example: kodi) # (example: kodi)
config BR2_NEEDS_HOST_JAVA config BR2_NEEDS_HOST_JAVA
@ -175,8 +183,8 @@ config BR2_TAR_OPTIONS
default "" default ""
help help
Options to pass to tar when extracting the sources. Options to pass to tar when extracting the sources.
E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files E.g. " -v --exclude='*.svn*'" to exclude all .svn internal
and to be verbose. files and to be verbose.
endmenu endmenu
@ -200,6 +208,9 @@ config BR2_DL_DIR
If the Linux shell environment has defined the BR2_DL_DIR If the Linux shell environment has defined the BR2_DL_DIR
environment variable, then this overrides this configuration environment variable, then this overrides this configuration
item. item.
The directory is organized with a subdirectory for each
package. Each package has its own $(LIBFOO_DL_DIR) variable
that can be used to find the correct path.
The default is $(TOPDIR)/dl The default is $(TOPDIR)/dl
@ -332,6 +343,9 @@ config BR2_CCACHE_DIR
default "$(HOME)/.buildroot-ccache" default "$(HOME)/.buildroot-ccache"
help help
Where ccache should store cached files. Where ccache should store cached files.
If the Linux shell environment has defined the BR2_CCACHE_DIR
environment variable, then this overrides this configuration
item.
config BR2_CCACHE_INITIAL_SETUP config BR2_CCACHE_INITIAL_SETUP
string "Compiler cache initial setup" string "Compiler cache initial setup"
@ -421,8 +435,8 @@ endif
config BR2_STRIP_strip config BR2_STRIP_strip
bool "strip target binaries" bool "strip target binaries"
depends on !BR2_PACKAGE_HOST_ELF2FLT
default y default y
depends on !BR2_PACKAGE_HOST_ELF2FLT
help help
Binaries and libraries in the target filesystem will be Binaries and libraries in the target filesystem will be
stripped using the normal 'strip' command. This allows to save stripped using the normal 'strip' command. This allows to save
@ -432,16 +446,16 @@ config BR2_STRIP_strip
config BR2_STRIP_EXCLUDE_FILES config BR2_STRIP_EXCLUDE_FILES
string "executables that should not be stripped" string "executables that should not be stripped"
depends on BR2_STRIP_strip
default "" default ""
depends on BR2_STRIP_strip
help help
You may specify a space-separated list of binaries and You may specify a space-separated list of binaries and
libraries here that should not be stripped on the target. libraries here that should not be stripped on the target.
config BR2_STRIP_EXCLUDE_DIRS config BR2_STRIP_EXCLUDE_DIRS
string "directories that should be skipped when stripping" string "directories that should be skipped when stripping"
depends on BR2_STRIP_strip
default "" default ""
depends on BR2_STRIP_strip
help help
You may specify a space-separated list of directories that You may specify a space-separated list of directories that
should be skipped when stripping. Binaries and libraries in should be skipped when stripping. Binaries and libraries in
@ -458,7 +472,7 @@ choice
config BR2_OPTIMIZE_0 config BR2_OPTIMIZE_0
bool "optimization level 0" bool "optimization level 0"
help help
Do not optimize. This is the default. Do not optimize.
config BR2_OPTIMIZE_1 config BR2_OPTIMIZE_1
bool "optimization level 1" bool "optimization level 1"
@ -525,12 +539,23 @@ config BR2_OPTIMIZE_S
-falign-loops -falign-labels -freorder-blocks -falign-loops -falign-labels -freorder-blocks
-freorder-blocks-and-partition -fprefetch-loop-arrays -freorder-blocks-and-partition -fprefetch-loop-arrays
-ftree-vect-loop-version -ftree-vect-loop-version
This is the default.
config BR2_OPTIMIZE_FAST
bool "optimize for fast"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
help
Optimize for fast. Disregard strict standards
compliance. -Ofast enables all -O3 optimizations. It also
enables optimizations that are not valid for all
standard-compliant programs. It turns on -ffast-math and the
Fortran-specific -fstack-arrays, unless -fmax-stack-var-size
is specified, and -fno-protect-parens.
endchoice endchoice
config BR2_GOOGLE_BREAKPAD_ENABLE config BR2_GOOGLE_BREAKPAD_ENABLE
bool "Enable google-breakpad support" bool "Enable google-breakpad support"
select BR2_PACKAGE_GOOGLE_BREAKPAD
depends on BR2_INSTALL_LIBSTDCPP depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11 depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
@ -538,6 +563,8 @@ config BR2_GOOGLE_BREAKPAD_ENABLE
depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HAS_THREADS
depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC) depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
select BR2_PACKAGE_GOOGLE_BREAKPAD
help help
This option will enable the use of google breakpad, a library This option will enable the use of google breakpad, a library
and tool suite that allows you to distribute an application to and tool suite that allows you to distribute an application to
@ -566,7 +593,119 @@ config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
endif endif
choice choice
bool "build code with Stack Smashing Protection" bool "libraries"
default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
help
Select the type of libraries you want to use on the target.
The default is to build dynamic libraries and use those on the
target filesystem, except when the architecture and/or the
selected binary format does not support shared libraries.
config BR2_STATIC_LIBS
bool "static only"
help
Build and use only static libraries. No shared libraries will
be installed on the target. This potentially increases your
code size and should only be used if you know what you are
doing. Note that some packages may not be available when this
option is enabled, due to their need for dynamic library
support.
config BR2_SHARED_LIBS
bool "shared only"
depends on BR2_BINFMT_SUPPORTS_SHARED
help
Build and use only shared libraries. This is the recommended
solution as it saves space and build time.
config BR2_SHARED_STATIC_LIBS
bool "both static and shared"
depends on BR2_BINFMT_SUPPORTS_SHARED
help
Build both shared and static libraries, but link executables
dynamically. While building both shared and static libraries
take more time and more disk space, having static libraries
may be useful to link some of the applications statically.
endchoice
config BR2_PACKAGE_OVERRIDE_FILE
string "location of a package override file"
default "$(CONFIG_DIR)/local.mk"
help
A package override file is a short makefile that contains
variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which
allows to tell Buildroot to use an existing directory as the
source directory for a particular package. See the Buildroot
documentation for more details on this feature.
config BR2_GLOBAL_PATCH_DIR
string "global patch directories"
help
You may specify a space separated list of one or more
directories containing global package patches. For a specific
version <packageversion> of a specific package <packagename>,
patches are applied as follows:
First, the default Buildroot patch set for the package is
applied from the package's directory in Buildroot.
Then for every directory - <global-patch-dir> - that exists in
BR2_GLOBAL_PATCH_DIR, if the directory
<global-patch-dir>/<packagename>/<packageversion>/ exists,
then all *.patch files in this directory will be applied.
Otherwise, if the directory <global-patch-dir>/<packagename>
exists, then all *.patch files in the directory will be
applied.
menu "Advanced"
config BR2_COMPILER_PARANOID_UNSAFE_PATH
bool "paranoid check of library/header paths"
default y
help
By default, when this option is disabled, when the Buildroot
cross-compiler will encounter an unsafe library or header path
(such as /usr/include, or /usr/lib), the compiler will display
a warning.
By enabling this option, this warning is turned into an error,
which will completely abort the build when such unsafe paths
are encountered.
Note that this mechanism is available for both the internal
toolchain (through the toolchain wrapper and binutils patches)
and external toolchain backends (through the toolchain
wrapper).
config BR2_REPRODUCIBLE
bool "Make the build reproducible (experimental)"
# SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
help
This option will remove all sources of non-reproducibility
from the build process. For a given Buildroot configuration,
this allows to generate exactly identical binaries from one
build to the other, including on different machines.
The current implementation is restricted to builds with the
same output directory. Many (absolute) paths are recorded in
intermediary files, and it is very likely that some of these
paths leak into the target rootfs. If you build with the
same O=... path, however, the result is identical.
This is labeled as an experimental feature, as not all
packages behave properly to ensure reproducibility.
endmenu
comment "Security Hardening Options"
choice
bool "Stack Smashing Protection"
default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
depends on BR2_TOOLCHAIN_HAS_SSP depends on BR2_TOOLCHAIN_HAS_SSP
help help
@ -621,115 +760,75 @@ comment "Stack Smashing Protection needs a toolchain w/ SSP"
depends on !BR2_TOOLCHAIN_HAS_SSP depends on !BR2_TOOLCHAIN_HAS_SSP
choice choice
bool "libraries" bool "RELRO Protection"
default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED depends on BR2_SHARED_LIBS
default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
help help
Select the type of libraries you want to use on the target. Enable a link-time protection know as RELRO (RELocation Read
Only) which helps to protect from certain type of exploitation
techniques altering the content of some ELF sections.
The default is to build dynamic libraries and use those on the config BR2_RELRO_NONE
target filesystem, except when the architecture and/or the bool "None"
selected binary format does not support shared libraries.
config BR2_STATIC_LIBS
bool "static only"
help help
Build and use only static libraries. No shared libraries will Disables Relocation link-time protections.
be installed on the target. This potentially increases your
code size and should only be used if you know what you are
doing. Note that some packages may not be available when this
option is enabled, due to their need for dynamic library
support.
config BR2_SHARED_LIBS config BR2_RELRO_PARTIAL
bool "shared only" bool "Partial"
depends on BR2_BINFMT_SUPPORTS_SHARED
help help
Build and use only shared libraries. This is the recommended This option makes the dynamic section not writeable after
solution as it saves space and build time. initialization (with almost no performance penalty).
config BR2_SHARED_STATIC_LIBS config BR2_RELRO_FULL
bool "both static and shared" bool "Full"
depends on BR2_BINFMT_SUPPORTS_SHARED
help help
Build both shared and static libraries, but link executables This option includes the partial configuration, but also marks
dynamically. While building both shared and static libraries the GOT as read-only at the cost of initialization time during
take more time and more disk space, having static libraries program loading, i.e every time an executable is started.
may be useful to link some of the applications statically.
endchoice endchoice
comment "RELocation Read Only (RELRO) needs shared libraries"
depends on !BR2_SHARED_LIBS
config BR2_PACKAGE_OVERRIDE_FILE choice
string "location of a package override file" bool "Buffer-overflow Detection (FORTIFY_SOURCE)"
default "$(CONFIG_DIR)/local.mk" depends on BR2_TOOLCHAIN_USES_GLIBC
depends on !BR2_OPTIMIZE_0
help help
A package override file is a short makefile that contains Enable the _FORTIFY_SOURCE macro which introduces additional
variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which checks to detect buffer-overflows in the following standard
allows to tell Buildroot to use an existing directory as the library functions: memcpy, mempcpy, memmove, memset, strcpy,
source directory for a particular package. See the Buildroot stpcpy, strncpy, strcat, strncat, sprintf, vsprintf, snprintf,
documentation for more details on this feature. vsnprintf, gets.
config BR2_GLOBAL_PATCH_DIR NOTE: This feature requires an optimization level of s/1/2/3/g
string "global patch directories"
Support for this feature has been present since GCC 4.x.
config BR2_FORTIFY_SOURCE_NONE
bool "None"
help help
You may specify a space separated list of one or more Disables additional checks to detect buffer-overflows.
directories containing global package patches. For a specific
version <packageversion> of a specific package <packagename>,
patches are applied as follows:
First, the default Buildroot patch set for the package is config BR2_FORTIFY_SOURCE_1
applied from the package's directory in Buildroot. bool "Conservative"
Then for every directory - <global-patch-dir> - that exists in
BR2_GLOBAL_PATCH_DIR, if the directory
<global-patch-dir>/<packagename>/<packageversion>/ exists,
then all *.patch files in this directory will be applied.
Otherwise, if the directory <global-patch-dir>/<packagename>
exists, then all *.patch files in the directory will be
applied.
menu "Advanced"
config BR2_COMPILER_PARANOID_UNSAFE_PATH
bool "paranoid check of library/header paths"
default y
help help
By default, when this option is disabled, when the Buildroot This option sets _FORTIFY_SOURCE to 1 and only introduces
cross-compiler will encounter an unsafe library or header path checks that shouldn't change the behavior of conforming
(such as /usr/include, or /usr/lib), the compiler will display programs. Adds checks at compile-time only.
a warning.
By enabling this option, this warning is turned into an error, config BR2_FORTIFY_SOURCE_2
which will completely abort the build when such unsafe paths bool "Aggressive"
are encountered.
Note that this mechanism is available for both the internal
toolchain (through the toolchain wrapper and binutils patches)
and external toolchain backends (through the toolchain wrapper).
config BR2_REPRODUCIBLE
bool "Make the build reproducible (experimental)"
# SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
help help
This option will remove all sources of non-reproducibility This option sets _FORTIFY_SOURCES to 2 and some more
from the build process. For a given Buildroot configuration, checking is added, but some conforming programs might fail.
this allows to generate exactly identical binaries from one Also adds checks at run-time (detected buffer overflow
build to the other, including on different machines. terminates the program)
The current implementation is restricted to builds with the endchoice
same output directory. Many (absolute) paths are recorded in
intermediary files, and it is very likely that some of these
paths leak into the target rootfs. If you build with the
same O=... path, however, the result is identical.
This is labeled as an experimental feature, as not all
packages behave properly to ensure reproducibility.
endmenu
comment "Fortify Source needs a glibc toolchain and optimization"
depends on (!BR2_TOOLCHAIN_USES_GLIBC || BR2_OPTIMIZE_0)
endmenu endmenu
source "toolchain/Config.in" source "toolchain/Config.in"

File diff suppressed because it is too large Load Diff

129
Makefile
View File

@ -2,7 +2,7 @@
# #
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org> # Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
# Copyright (C) 2006-2014 by the Buildroot developers <buildroot@uclibc.org> # Copyright (C) 2006-2014 by the Buildroot developers <buildroot@uclibc.org>
# Copyright (C) 2014-2017 by the Buildroot developers <buildroot@buildroot.org> # Copyright (C) 2014-2018 by the Buildroot developers <buildroot@buildroot.org>
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -60,6 +60,11 @@ override O := $(patsubst %/,%,$(patsubst %.,%,$(O)))
# avoid empty CANONICAL_O in case on non-existing entry. # avoid empty CANONICAL_O in case on non-existing entry.
CANONICAL_O := $(shell mkdir -p $(O) >/dev/null 2>&1)$(realpath $(O)) CANONICAL_O := $(shell mkdir -p $(O) >/dev/null 2>&1)$(realpath $(O))
# gcc fails to build when the srcdir contains a '@'
ifneq ($(findstring @,$(CANONICAL_O)),)
$(error The build directory can not contain a '@')
endif
CANONICAL_CURDIR = $(realpath $(CURDIR)) CANONICAL_CURDIR = $(realpath $(CURDIR))
REQ_UMASK = 0022 REQ_UMASK = 0022
@ -87,9 +92,9 @@ all:
.PHONY: all .PHONY: all
# Set and export the version string # Set and export the version string
export BR2_VERSION := 2017.11 export BR2_VERSION := 2018.08.2
# Actual time the release is cut (for reproducible builds) # Actual time the release is cut (for reproducible builds)
BR2_VERSION_EPOCH = 1512070000 BR2_VERSION_EPOCH = 1540470000
# Save running make version since it's clobbered by the make package # Save running make version since it's clobbered by the make package
RUNNING_MAKE_VERSION := $(MAKE_VERSION) RUNNING_MAKE_VERSION := $(MAKE_VERSION)
@ -141,7 +146,7 @@ noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconf
# We're building in two situations: when MAKECMDGOALS is empty # We're building in two situations: when MAKECMDGOALS is empty
# (default target is to build), or when MAKECMDGOALS contains # (default target is to build), or when MAKECMDGOALS contains
# something else than one of the nobuild_targets. # something else than one of the nobuild_targets.
nobuild_targets := source %-source source-check \ nobuild_targets := source %-source \
legal-info %-legal-info external-deps _external-deps \ legal-info %-legal-info external-deps _external-deps \
clean distclean help show-targets graph-depends \ clean distclean help show-targets graph-depends \
%-graph-depends %-show-depends %-show-version \ %-graph-depends %-show-depends %-show-version \
@ -215,7 +220,10 @@ BR_GRAPH_OUT := $(or $(BR2_GRAPH_OUT),pdf)
BUILD_DIR := $(BASE_DIR)/build BUILD_DIR := $(BASE_DIR)/build
BINARIES_DIR := $(BASE_DIR)/images BINARIES_DIR := $(BASE_DIR)/images
TARGET_DIR := $(BASE_DIR)/target # The target directory is common to all packages,
# but there is one that is specific to each filesystem.
BASE_TARGET_DIR := $(BASE_DIR)/target
TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(BASE_TARGET_DIR))
# initial definition so that 'make clean' works for most users, even without # initial definition so that 'make clean' works for most users, even without
# .config. HOST_DIR will be overwritten later when .config is included. # .config. HOST_DIR will be overwritten later when .config is included.
HOST_DIR := $(BASE_DIR)/host HOST_DIR := $(BASE_DIR)/host
@ -231,15 +239,6 @@ LEGAL_MANIFEST_CSV_HOST = $(LEGAL_INFO_DIR)/host-manifest.csv
LEGAL_WARNINGS = $(LEGAL_INFO_DIR)/.warnings LEGAL_WARNINGS = $(LEGAL_INFO_DIR)/.warnings
LEGAL_REPORT = $(LEGAL_INFO_DIR)/README LEGAL_REPORT = $(LEGAL_INFO_DIR)/README
################################################################################
#
# staging and target directories do NOT list these as
# dependencies anywhere else
#
################################################################################
$(BUILD_DIR) $(TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST):
@mkdir -p $@
BR2_CONFIG = $(CONFIG_DIR)/.config BR2_CONFIG = $(CONFIG_DIR)/.config
# Pull in the user's configuration file # Pull in the user's configuration file
@ -253,9 +252,6 @@ export TZ = UTC
export LANG = C export LANG = C
export LC_ALL = C export LC_ALL = C
export GZIP = -n export GZIP = -n
BR2_VERSION_GIT_EPOCH = $(shell GIT_DIR=$(TOPDIR)/.git $(GIT) log -1 --format=%at)
export SOURCE_DATE_EPOCH ?= $(if $(wildcard $(TOPDIR)/.git),$(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
DEPENDENCIES_HOST_PREREQ += host-fakedate
endif endif
# To put more focus on warnings, be less verbose as default # To put more focus on warnings, be less verbose as default
@ -355,14 +351,36 @@ export HOSTARCH := $(shell LC_ALL=C $(HOSTCC_NOCCACHE) -v 2>&1 | \
-e 's/macppc/powerpc/' \ -e 's/macppc/powerpc/' \
-e 's/sh.*/sh/' ) -e 's/sh.*/sh/' )
HOSTCC_VERSION := $(shell $(HOSTCC_NOCCACHE) --version | \ # When adding a new host gcc version in Config.in,
sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p') # update the HOSTCC_MAX_VERSION variable:
HOSTCC_MAX_VERSION := 8
HOSTCC_VERSION := $(shell V=$$($(HOSTCC_NOCCACHE) --version | \
sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p'); \
[ "$${V%% *}" -le $(HOSTCC_MAX_VERSION) ] || V=$(HOSTCC_MAX_VERSION); \
printf "%s" "$${V}")
# For gcc >= 5.x, we only need the major version. # For gcc >= 5.x, we only need the major version.
ifneq ($(firstword $(HOSTCC_VERSION)),4) ifneq ($(firstword $(HOSTCC_VERSION)),4)
HOSTCC_VERSION := $(firstword $(HOSTCC_VERSION)) HOSTCC_VERSION := $(firstword $(HOSTCC_VERSION))
endif endif
ifeq ($(BR2_NEEDS_HOST_UTF8_LOCALE),y)
# First, we try to use the user's configured locale (as that's the
# language they'd expect messages to be displayed), then we favour
# a non language-specific locale like C.UTF-8 if one is available,
# so we sort with the C locale to get it at the top.
# This is guaranteed to not be empty, because of the check in
# support/dependencies/dependencies.sh
HOST_UTF8_LOCALE := $(shell \
( echo $${LC_ALL:-$${LC_MESSAGES:-$${LANG}}}; \
locale -a 2>/dev/null | LC_ALL=C sort \
) \
| grep -i -E 'utf-?8$$' \
| head -n 1)
HOST_UTF8_LOCALE_ENV := LC_ALL=$(HOST_UTF8_LOCALE)
endif
# Make sure pkg-config doesn't look outside the buildroot tree # Make sure pkg-config doesn't look outside the buildroot tree
HOST_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH) HOST_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH)
unexport PKG_CONFIG_PATH unexport PKG_CONFIG_PATH
@ -422,7 +440,6 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
-e s/arceb/arc/ \ -e s/arceb/arc/ \
-e s/arm.*/arm/ -e s/sa110/arm/ \ -e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/aarch64.*/arm64/ \ -e s/aarch64.*/arm64/ \
-e s/bfin/blackfin/ \
-e s/or1k/openrisc/ \ -e s/or1k/openrisc/ \
-e s/parisc64/parisc/ \ -e s/parisc64/parisc/ \
-e s/powerpc64.*/powerpc/ \ -e s/powerpc64.*/powerpc/ \
@ -439,12 +456,18 @@ TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf
# packages compiled for the host go here # packages compiled for the host go here
HOST_DIR := $(call qstrip,$(BR2_HOST_DIR)) HOST_DIR := $(call qstrip,$(BR2_HOST_DIR))
ifneq ($(HOST_DIR),$(BASE_DIR)/host)
HOST_DIR_SYMLINK = $(BASE_DIR)/host
$(HOST_DIR_SYMLINK): $(BASE_DIR)
ln -snf $(HOST_DIR) $(BASE_DIR)/host
endif
# Quotes are needed for spaces and all in the original PATH content. # Quotes are needed for spaces and all in the original PATH content.
BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(PATH)" BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(PATH)"
# Location of a file giving a big fat warning that output/target # Location of a file giving a big fat warning that output/target
# should not be used as the root filesystem. # should not be used as the root filesystem.
TARGET_DIR_WARNING_FILE = $(TARGET_DIR)/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM TARGET_DIR_WARNING_FILE = $(BASE_TARGET_DIR)/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM
ifeq ($(BR2_CCACHE),y) ifeq ($(BR2_CCACHE),y)
CCACHE := $(HOST_DIR)/bin/ccache CCACHE := $(HOST_DIR)/bin/ccache
@ -486,11 +509,17 @@ include package/Makefile.in
-include $(sort $(wildcard arch/arch.mk.*)) -include $(sort $(wildcard arch/arch.mk.*))
include support/dependencies/dependencies.mk include support/dependencies/dependencies.mk
PACKAGES += $(DEPENDENCIES_HOST_PREREQ)
include $(sort $(wildcard toolchain/*.mk)) include $(sort $(wildcard toolchain/*.mk))
include $(sort $(wildcard toolchain/*/*.mk)) include $(sort $(wildcard toolchain/*/*.mk))
ifeq ($(BR2_REPRODUCIBLE),y)
# If SOURCE_DATE_EPOCH has not been set then use the commit date, or the last
# release date if the source tree is not within a Git repository.
# See: https://reproducible-builds.org/specs/source-date-epoch/
BR2_VERSION_GIT_EPOCH := $(shell $(GIT) log -1 --format=%at 2> /dev/null)
export SOURCE_DATE_EPOCH ?= $(or $(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
endif
# Include the package override file if one has been provided in the # Include the package override file if one has been provided in the
# configuration. # configuration.
PACKAGE_OVERRIDE_FILE = $(call qstrip,$(BR2_PACKAGE_OVERRIDE_FILE)) PACKAGE_OVERRIDE_FILE = $(call qstrip,$(BR2_PACKAGE_OVERRIDE_FILE))
@ -543,8 +572,8 @@ $(foreach pkg,$(call UPPERCASE,$(PACKAGES)),\
endif endif
.PHONY: dirs .PHONY: dirs
dirs: $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \ dirs: $(BUILD_DIR) $(STAGING_DIR) $(BASE_TARGET_DIR) \
$(HOST_DIR) $(HOST_DIR)/usr $(HOST_DIR)/lib $(BINARIES_DIR) $(HOST_DIR) $(HOST_DIR_SYMLINK) $(BINARIES_DIR)
$(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG) $(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG)
$(MAKE1) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" silentoldconfig $(MAKE1) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" silentoldconfig
@ -561,19 +590,9 @@ sdk: world
$(TOPDIR)/support/scripts/fix-rpath host $(TOPDIR)/support/scripts/fix-rpath host
$(TOPDIR)/support/scripts/fix-rpath staging $(TOPDIR)/support/scripts/fix-rpath staging
$(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh $(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh
mkdir -p $(HOST_DIR)/share/buildroot
echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location
# Compatibility symlink in case a post-build script still uses $(HOST_DIR)/usr
$(HOST_DIR)/usr: $(HOST_DIR)
@ln -snf . $@
$(HOST_DIR)/lib: $(HOST_DIR)
@mkdir -p $@
@case $(HOSTARCH) in \
(*64) ln -snf lib $(@D)/lib64;; \
(*) ln -snf lib $(@D)/lib32;; \
esac
# Populating the staging with the base directories is handled by the skeleton package # Populating the staging with the base directories is handled by the skeleton package
$(STAGING_DIR): $(STAGING_DIR):
@mkdir -p $(STAGING_DIR) @mkdir -p $(STAGING_DIR)
@ -676,9 +695,16 @@ endif
$(TARGETS_ROOTFS): target-finalize $(TARGETS_ROOTFS): target-finalize
# Avoid the rootfs name leaking down the dependency chain
target-finalize: ROOTFS=
.PHONY: target-finalize .PHONY: target-finalize
target-finalize: $(PACKAGES) target-finalize: $(PACKAGES)
@$(call MESSAGE,"Finalizing target directory") @$(call MESSAGE,"Finalizing target directory")
# Check files that are touched by more than one package
./support/scripts/check-uniq-files -t target $(BUILD_DIR)/packages-file-list.txt
./support/scripts/check-uniq-files -t staging $(BUILD_DIR)/packages-file-list-staging.txt
./support/scripts/check-uniq-files -t host $(BUILD_DIR)/packages-file-list-host.txt
$(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep)) $(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep))
rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \ rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \
$(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \ $(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
@ -725,7 +751,8 @@ endif
echo "ID=buildroot"; \ echo "ID=buildroot"; \
echo "VERSION_ID=$(BR2_VERSION)"; \ echo "VERSION_ID=$(BR2_VERSION)"; \
echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \ echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \
) > $(TARGET_DIR)/etc/os-release ) > $(TARGET_DIR)/usr/lib/os-release
ln -sf ../usr/lib/os-release $(TARGET_DIR)/etc
@$(call MESSAGE,"Sanitizing RPATH in target tree") @$(call MESSAGE,"Sanitizing RPATH in target tree")
$(TOPDIR)/support/scripts/fix-rpath target $(TOPDIR)/support/scripts/fix-rpath target
@ -740,8 +767,11 @@ endif
$(call MESSAGE,"Executing post-build script $(s)"); \ $(call MESSAGE,"Executing post-build script $(s)"); \
$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep)) $(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
touch $(TARGET_DIR)/usr
.PHONY: target-post-image .PHONY: target-post-image
target-post-image: $(TARGETS_ROOTFS) target-finalize target-post-image: $(TARGETS_ROOTFS) target-finalize
@rm -f $(ROOTFS_COMMON_TAR)
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \ @$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \
$(call MESSAGE,"Executing post-image script $(s)"); \ $(call MESSAGE,"Executing post-image script $(s)"); \
$(EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep)) $(EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
@ -754,10 +784,6 @@ _external-deps: $(foreach p,$(PACKAGES),$(p)-all-external-deps)
external-deps: external-deps:
@$(MAKE1) -Bs $(EXTRAMAKEARGS) _external-deps | sort -u @$(MAKE1) -Bs $(EXTRAMAKEARGS) _external-deps | sort -u
# check if download URLs are outdated
.PHONY: source-check
source-check: $(foreach p,$(PACKAGES),$(p)-all-source-check)
.PHONY: legal-info-clean .PHONY: legal-info-clean
legal-info-clean: legal-info-clean:
@rm -fr $(LEGAL_INFO_DIR) @rm -fr $(LEGAL_INFO_DIR)
@ -789,7 +815,7 @@ legal-info: dirs legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p
.PHONY: show-targets .PHONY: show-targets
show-targets: show-targets:
@echo $(PACKAGES) $(TARGETS_ROOTFS) @echo $(sort $(PACKAGES)) $(sort $(TARGETS_ROOTFS))
.PHONY: show-build-order .PHONY: show-build-order
show-build-order: $(patsubst %,%-show-build-order,$(PACKAGES)) show-build-order: $(patsubst %,%-show-build-order,$(PACKAGES))
@ -935,6 +961,11 @@ savedefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
# #
################################################################################ ################################################################################
# staging and target directories do NOT list these as
# dependencies anywhere else
$(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST):
@mkdir -p $@
# outputmakefile generates a Makefile in the output directory, if using a # outputmakefile generates a Makefile in the output directory, if using a
# separate output directory. This allows convenient use of make in the # separate output directory. This allows convenient use of make in the
# output directory. # output directory.
@ -957,7 +988,8 @@ $(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
# displayed. # displayed.
.PHONY: printvars .PHONY: printvars
printvars: printvars:
@:$(foreach V, \ @:
$(foreach V, \
$(sort $(if $(VARS),$(filter $(VARS),$(.VARIABLES)),$(.VARIABLES))), \ $(sort $(if $(VARS),$(filter $(VARS),$(.VARIABLES)),$(.VARIABLES))), \
$(if $(filter-out environment% default automatic, \ $(if $(filter-out environment% default automatic, \
$(origin $V)), \ $(origin $V)), \
@ -968,7 +1000,7 @@ printvars:
.PHONY: clean .PHONY: clean
clean: clean:
rm -rf $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \ rm -rf $(BASE_TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) $(HOST_DIR_SYMLINK) \
$(BUILD_DIR) $(BASE_DIR)/staging \ $(BUILD_DIR) $(BASE_DIR)/staging \
$(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(LEGAL_INFO_DIR) $(GRAPHS_DIR)
@ -1000,8 +1032,8 @@ help:
@echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps' @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
@echo ' olddefconfig - Same as silentoldconfig but sets new symbols to their default value' @echo ' olddefconfig - Same as silentoldconfig but sets new symbols to their default value'
@echo ' randconfig - New config with random answer to all options' @echo ' randconfig - New config with random answer to all options'
@echo ' defconfig - New config with default answer to all options' @echo ' defconfig - New config with default answer to all options;'
@echo ' BR2_DEFCONFIG, if set, is used as input' @echo ' BR2_DEFCONFIG, if set on the command line, is used as input'
@echo ' savedefconfig - Save current config to BR2_DEFCONFIG (minimal config)' @echo ' savedefconfig - Save current config to BR2_DEFCONFIG (minimal config)'
@echo ' allyesconfig - New config where all options are accepted with yes' @echo ' allyesconfig - New config where all options are accepted with yes'
@echo ' allnoconfig - New config where all options are answered with no' @echo ' allnoconfig - New config where all options are answered with no'
@ -1020,6 +1052,10 @@ help:
@echo ' <pkg>-build - Build <pkg> up to the build step' @echo ' <pkg>-build - Build <pkg> up to the build step'
@echo ' <pkg>-show-depends - List packages on which <pkg> depends' @echo ' <pkg>-show-depends - List packages on which <pkg> depends'
@echo ' <pkg>-show-rdepends - List packages which have <pkg> as a dependency' @echo ' <pkg>-show-rdepends - List packages which have <pkg> as a dependency'
@echo ' <pkg>-show-recursive-depends'
@echo ' - Recursively list packages on which <pkg> depends'
@echo ' <pkg>-show-recursive-rdepends'
@echo ' - Recursively list packages which have <pkg> as a dependency'
@echo ' <pkg>-graph-depends - Generate a graph of <pkg>'\''s dependencies' @echo ' <pkg>-graph-depends - Generate a graph of <pkg>'\''s dependencies'
@echo ' <pkg>-graph-rdepends - Generate a graph of <pkg>'\''s reverse dependencies' @echo ' <pkg>-graph-rdepends - Generate a graph of <pkg>'\''s reverse dependencies'
@echo ' <pkg>-dirclean - Remove <pkg> build directory' @echo ' <pkg>-dirclean - Remove <pkg> build directory'
@ -1044,7 +1080,6 @@ help:
@echo @echo
@echo 'Miscellaneous:' @echo 'Miscellaneous:'
@echo ' source - download all sources needed for offline-build' @echo ' source - download all sources needed for offline-build'
@echo ' source-check - check selected packages for valid download URLs'
@echo ' external-deps - list external packages used' @echo ' external-deps - list external packages used'
@echo ' legal-info - generate info about license compliance' @echo ' legal-info - generate info about license compliance'
@echo ' printvars - dump all the internal variables' @echo ' printvars - dump all the internal variables'

View File

@ -15,9 +15,6 @@ config BR2_ARCH_HAS_MMU_MANDATORY
config BR2_ARCH_HAS_MMU_OPTIONAL config BR2_ARCH_HAS_MMU_OPTIONAL
bool bool
config BR2_ARCH_HAS_FDPIC_SUPPORT
bool
choice choice
prompt "Target Architecture" prompt "Target Architecture"
default BR2_i386 default BR2_i386
@ -28,24 +25,25 @@ config BR2_arcle
bool "ARC (little endian)" bool "ARC (little endian)"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
Synopsys' DesignWare ARC Processor Cores are a family of 32-bit CPUs Synopsys' DesignWare ARC Processor Cores are a family of
that can be used from deeply embedded to high performance host 32-bit CPUs that can be used from deeply embedded to high
applications. Little endian. performance host applications. Little endian.
config BR2_arceb config BR2_arceb
bool "ARC (big endian)" bool "ARC (big endian)"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
Synopsys' DesignWare ARC Processor Cores are a family of 32-bit CPUs Synopsys' DesignWare ARC Processor Cores are a family of
that can be used from deeply embedded to high performance host 32-bit CPUs that can be used from deeply embedded to high
applications. Big endian. performance host applications. Big endian.
config BR2_arm config BR2_arm
bool "ARM (little endian)" bool "ARM (little endian)"
# MMU support is set by the subarchitecture file, arch/Config.in.arm # MMU support is set by the subarchitecture file, arch/Config.in.arm
help help
ARM is a 32-bit reduced instruction set computer (RISC) instruction ARM is a 32-bit reduced instruction set computer (RISC)
set architecture (ISA) developed by ARM Holdings. Little endian. instruction set architecture (ISA) developed by ARM Holdings.
Little endian.
http://www.arm.com/ http://www.arm.com/
http://en.wikipedia.org/wiki/ARM http://en.wikipedia.org/wiki/ARM
@ -53,8 +51,9 @@ config BR2_armeb
bool "ARM (big endian)" bool "ARM (big endian)"
# MMU support is set by the subarchitecture file, arch/Config.in.arm # MMU support is set by the subarchitecture file, arch/Config.in.arm
help help
ARM is a 32-bit reduced instruction set computer (RISC) instruction ARM is a 32-bit reduced instruction set computer (RISC)
set architecture (ISA) developed by ARM Holdings. Big endian. instruction set architecture (ISA) developed by ARM Holdings.
Big endian.
http://www.arm.com/ http://www.arm.com/
http://en.wikipedia.org/wiki/ARM http://en.wikipedia.org/wiki/ARM
@ -76,15 +75,6 @@ config BR2_aarch64_be
http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
http://en.wikipedia.org/wiki/ARM http://en.wikipedia.org/wiki/ARM
config BR2_bfin
bool "Blackfin"
select BR2_ARCH_HAS_FDPIC_SUPPORT
help
The Blackfin is a family of 16 or 32-bit microprocessors developed,
manufactured and marketed by Analog Devices.
http://www.analog.com/
http://en.wikipedia.org/wiki/Blackfin
config BR2_csky config BR2_csky
bool "csky" bool "csky"
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
@ -112,8 +102,8 @@ config BR2_microblazeel
bool "Microblaze AXI (little endian)" bool "Microblaze AXI (little endian)"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
Soft processor core designed for Xilinx FPGAs from Xilinx. AXI bus Soft processor core designed for Xilinx FPGAs from Xilinx. AXI
based architecture (little endian) bus based architecture (little endian)
http://www.xilinx.com http://www.xilinx.com
http://en.wikipedia.org/wiki/Microblaze http://en.wikipedia.org/wiki/Microblaze
@ -121,8 +111,8 @@ config BR2_microblazebe
bool "Microblaze non-AXI (big endian)" bool "Microblaze non-AXI (big endian)"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
Soft processor core designed for Xilinx FPGAs from Xilinx. PLB bus Soft processor core designed for Xilinx FPGAs from Xilinx. PLB
based architecture (non-AXI, big endian) bus based architecture (non-AXI, big endian)
http://www.xilinx.com http://www.xilinx.com
http://en.wikipedia.org/wiki/Microblaze http://en.wikipedia.org/wiki/Microblaze
@ -130,7 +120,8 @@ config BR2_mips
bool "MIPS (big endian)" bool "MIPS (big endian)"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
MIPS is a RISC microprocessor from MIPS Technologies. Big endian. MIPS is a RISC microprocessor from MIPS Technologies. Big
endian.
http://www.mips.com/ http://www.mips.com/
http://en.wikipedia.org/wiki/MIPS_Technologies http://en.wikipedia.org/wiki/MIPS_Technologies
@ -138,7 +129,8 @@ config BR2_mipsel
bool "MIPS (little endian)" bool "MIPS (little endian)"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
MIPS is a RISC microprocessor from MIPS Technologies. Little endian. MIPS is a RISC microprocessor from MIPS Technologies. Little
endian.
http://www.mips.com/ http://www.mips.com/
http://en.wikipedia.org/wiki/MIPS_Technologies http://en.wikipedia.org/wiki/MIPS_Technologies
@ -147,7 +139,8 @@ config BR2_mips64
select BR2_ARCH_IS_64 select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
MIPS is a RISC microprocessor from MIPS Technologies. Big endian. MIPS is a RISC microprocessor from MIPS Technologies. Big
endian.
http://www.mips.com/ http://www.mips.com/
http://en.wikipedia.org/wiki/MIPS_Technologies http://en.wikipedia.org/wiki/MIPS_Technologies
@ -156,7 +149,8 @@ config BR2_mips64el
select BR2_ARCH_IS_64 select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
MIPS is a RISC microprocessor from MIPS Technologies. Little endian. MIPS is a RISC microprocessor from MIPS Technologies. Little
endian.
http://www.mips.com/ http://www.mips.com/
http://en.wikipedia.org/wiki/MIPS_Technologies http://en.wikipedia.org/wiki/MIPS_Technologies
@ -179,8 +173,8 @@ config BR2_powerpc
bool "PowerPC" bool "PowerPC"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance. PowerPC is a RISC architecture created by Apple-IBM-Motorola
Big endian. alliance. Big endian.
http://www.power.org/ http://www.power.org/
http://en.wikipedia.org/wiki/Powerpc http://en.wikipedia.org/wiki/Powerpc
@ -189,8 +183,8 @@ config BR2_powerpc64
select BR2_ARCH_IS_64 select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance. PowerPC is a RISC architecture created by Apple-IBM-Motorola
Big endian. alliance. Big endian.
http://www.power.org/ http://www.power.org/
http://en.wikipedia.org/wiki/Powerpc http://en.wikipedia.org/wiki/Powerpc
@ -199,8 +193,8 @@ config BR2_powerpc64le
select BR2_ARCH_IS_64 select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance. PowerPC is a RISC architecture created by Apple-IBM-Motorola
Little endian. alliance. Little endian.
http://www.power.org/ http://www.power.org/
http://en.wikipedia.org/wiki/Powerpc http://en.wikipedia.org/wiki/Powerpc
@ -208,8 +202,9 @@ config BR2_sh
bool "SuperH" bool "SuperH"
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
help help
SuperH (or SH) is a 32-bit reduced instruction set computer (RISC) SuperH (or SH) is a 32-bit reduced instruction set computer
instruction set architecture (ISA) developed by Hitachi. (RISC) instruction set architecture (ISA) developed by
Hitachi.
http://www.hitachi.com/ http://www.hitachi.com/
http://en.wikipedia.org/wiki/SuperH http://en.wikipedia.org/wiki/SuperH
@ -217,8 +212,9 @@ config BR2_sparc
bool "SPARC" bool "SPARC"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
SPARC (from Scalable Processor Architecture) is a RISC instruction SPARC (from Scalable Processor Architecture) is a RISC
set architecture (ISA) developed by Sun Microsystems. instruction set architecture (ISA) developed by Sun
Microsystems.
http://www.oracle.com/sun http://www.oracle.com/sun
http://en.wikipedia.org/wiki/Sparc http://en.wikipedia.org/wiki/Sparc
@ -227,8 +223,9 @@ config BR2_sparc64
select BR2_ARCH_IS_64 select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
help help
SPARC (from Scalable Processor Architecture) is a RISC instruction SPARC (from Scalable Processor Architecture) is a RISC
set architecture (ISA) developed by Sun Microsystems. instruction set architecture (ISA) developed by Sun
Microsystems.
http://www.oracle.com/sun http://www.oracle.com/sun
http://en.wikipedia.org/wiki/Sparc http://en.wikipedia.org/wiki/Sparc
@ -261,6 +258,31 @@ config BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT
bool bool
default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
# The following symbols are selected by the individual
# Config.in.$ARCH files
config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
bool
config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
config BR2_ARCH_NEEDS_GCC_AT_LEAST_5
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_ARCH_NEEDS_GCC_AT_LEAST_6
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_ARCH_NEEDS_GCC_AT_LEAST_7
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_ARCH_NEEDS_GCC_AT_LEAST_8
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
# The following string values are defined by the individual # The following string values are defined by the individual
# Config.in.$ARCH files # Config.in.$ARCH files
config BR2_ARCH config BR2_ARCH
@ -319,7 +341,6 @@ config BR2_READELF_ARCH_NAME
choice choice
prompt "Target Binary Format" prompt "Target Binary Format"
default BR2_BINFMT_ELF if BR2_USE_MMU default BR2_BINFMT_ELF if BR2_USE_MMU
default BR2_BINFMT_FDPIC if BR2_ARCH_HAS_FDPIC_SUPPORT
default BR2_BINFMT_FLAT default BR2_BINFMT_FLAT
config BR2_BINFMT_ELF config BR2_BINFMT_ELF
@ -327,56 +348,34 @@ config BR2_BINFMT_ELF
depends on BR2_USE_MMU depends on BR2_USE_MMU
select BR2_BINFMT_SUPPORTS_SHARED select BR2_BINFMT_SUPPORTS_SHARED
help help
ELF (Executable and Linkable Format) is a format for libraries and ELF (Executable and Linkable Format) is a format for libraries
executables used across different architectures and operating and executables used across different architectures and
systems. operating systems.
config BR2_BINFMT_FDPIC
bool "FDPIC"
depends on BR2_ARCH_HAS_FDPIC_SUPPORT
select BR2_BINFMT_SUPPORTS_SHARED
help
ELF FDPIC binaries are based on ELF, but allow the individual load
segments of a binary to be located in memory independently of each
other. This makes this format ideal for use in environments where no
MMU is available.
config BR2_BINFMT_FLAT config BR2_BINFMT_FLAT
bool "FLAT" bool "FLAT"
depends on !BR2_USE_MMU depends on !BR2_USE_MMU
help help
FLAT binary is a relatively simple and lightweight executable format FLAT binary is a relatively simple and lightweight executable
based on the original a.out format. It is widely used in environment format based on the original a.out format. It is widely used
where no MMU is available. in environment where no MMU is available.
endchoice endchoice
# Set up flat binary type # Set up flat binary type
choice choice
prompt "FLAT Binary type" prompt "FLAT Binary type"
depends on BR2_BINFMT_FLAT
default BR2_BINFMT_FLAT_ONE default BR2_BINFMT_FLAT_ONE
depends on BR2_BINFMT_FLAT
config BR2_BINFMT_FLAT_ONE config BR2_BINFMT_FLAT_ONE
bool "One memory region" bool "One memory region"
help help
All segments are linked into one memory region. All segments are linked into one memory region.
config BR2_BINFMT_FLAT_SEP_DATA
bool "Separate data and code region"
# this FLAT binary type technically exists on m68k, but fails
# to build numerous packages: due to architecture limitation,
# big functions cannot be built in this mode. They cause build
# failures such as "Tried to convert PC relative branch to
# absolute jump" or "error: value -yyyyy out of range".
depends on BR2_bfin
help
Allow for the data and text segments to be separated and placed in
different regions of memory.
config BR2_BINFMT_FLAT_SHARED config BR2_BINFMT_FLAT_SHARED
bool "Shared binary" bool "Shared binary"
depends on BR2_m68k || BR2_bfin depends on BR2_m68k
# Even though this really generates shared binaries, there is no libdl # Even though this really generates shared binaries, there is no libdl
# and dlopen() cannot be used. So packages that require shared # and dlopen() cannot be used. So packages that require shared
# libraries cannot be built. Therefore, we don't select # libraries cannot be built. Therefore, we don't select
@ -396,10 +395,6 @@ if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.arm" source "arch/Config.in.arm"
endif endif
if BR2_bfin
source "arch/Config.in.bfin"
endif
if BR2_csky if BR2_csky
source "arch/Config.in.csky" source "arch/Config.in.csky"
endif endif

View File

@ -1,7 +1,7 @@
choice choice
prompt "Target CPU" prompt "Target CPU"
depends on BR2_arc
default BR2_arc770d default BR2_arc770d
depends on BR2_arc
help help
Specific CPU to use Specific CPU to use

View File

@ -6,12 +6,21 @@ config BR2_ARM_CPU_HAS_NEON
config BR2_ARM_CPU_MAYBE_HAS_NEON config BR2_ARM_CPU_MAYBE_HAS_NEON
bool bool
# For some cores, the FPU is optional
config BR2_ARM_CPU_MAYBE_HAS_FPU
bool
config BR2_ARM_CPU_HAS_FPU
bool
# for some cores, VFPv2 is optional # for some cores, VFPv2 is optional
config BR2_ARM_CPU_MAYBE_HAS_VFPV2 config BR2_ARM_CPU_MAYBE_HAS_VFPV2
bool bool
select BR2_ARM_CPU_MAYBE_HAS_FPU
config BR2_ARM_CPU_HAS_VFPV2 config BR2_ARM_CPU_HAS_VFPV2
bool bool
select BR2_ARM_CPU_HAS_FPU
# for some cores, VFPv3 is optional # for some cores, VFPv3 is optional
config BR2_ARM_CPU_MAYBE_HAS_VFPV3 config BR2_ARM_CPU_MAYBE_HAS_VFPV3
@ -31,6 +40,24 @@ config BR2_ARM_CPU_HAS_VFPV4
bool bool
select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_HAS_VFPV3
# FPv4 is always optional
config BR2_ARM_CPU_MAYBE_HAS_FPV4
bool
select BR2_ARM_CPU_MAYBE_HAS_FPU
config BR2_ARM_CPU_HAS_FPV4
bool
select BR2_ARM_CPU_HAS_FPU
# FPv5 is always optional
config BR2_ARM_CPU_MAYBE_HAS_FPV5
bool
select BR2_ARM_CPU_MAYBE_HAS_FPV4
config BR2_ARM_CPU_HAS_FPV5
bool
select BR2_ARM_CPU_HAS_FPV4
config BR2_ARM_CPU_HAS_FP_ARMV8 config BR2_ARM_CPU_HAS_FP_ARMV8
bool bool
select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_VFPV4
@ -59,29 +86,42 @@ config BR2_ARM_CPU_ARMV7A
config BR2_ARM_CPU_ARMV7M config BR2_ARM_CPU_ARMV7M
bool bool
config BR2_ARM_CPU_ARMV8 config BR2_ARM_CPU_ARMV8A
bool bool
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
default BR2_cortex_a53 if BR2_ARCH_IS_64
default BR2_arm926t default BR2_arm926t
help help
Specific CPU variant to use Specific CPU variant to use
if !BR2_ARCH_IS_64
comment "armv4 cores"
config BR2_arm920t config BR2_arm920t
bool "arm920t" bool "arm920t"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV4 select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm922t config BR2_arm922t
bool "arm922t" bool "arm922t"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV4 select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64 config BR2_fa526
bool "fa526/626"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_strongarm
bool "strongarm sa110/sa1100"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
comment "armv5 cores"
config BR2_arm926t config BR2_arm926t
bool "arm926t" bool "arm926t"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -89,14 +129,25 @@ config BR2_arm926t
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV5 select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64 config BR2_iwmmxt
bool "iwmmxt"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_xscale
bool "xscale"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL
comment "armv6 cores"
config BR2_arm1136j_s config BR2_arm1136j_s
bool "arm1136j-s" bool "arm1136j-s"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1136jf_s config BR2_arm1136jf_s
bool "arm1136jf-s" bool "arm1136jf-s"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -104,14 +155,12 @@ config BR2_arm1136jf_s
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1176jz_s config BR2_arm1176jz_s
bool "arm1176jz-s" bool "arm1176jz-s"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm1176jzf_s config BR2_arm1176jzf_s
bool "arm1176jzf-s" bool "arm1176jzf-s"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -119,7 +168,6 @@ config BR2_arm1176jzf_s
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_arm11mpcore config BR2_arm11mpcore
bool "mpcore" bool "mpcore"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -127,7 +175,8 @@ config BR2_arm11mpcore
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
comment "armv7a cores"
config BR2_cortex_a5 config BR2_cortex_a5
bool "cortex-A5" bool "cortex-A5"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -136,7 +185,6 @@ config BR2_cortex_a5
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a7 config BR2_cortex_a7
bool "cortex-A7" bool "cortex-A7"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -145,7 +193,6 @@ config BR2_cortex_a7
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a8 config BR2_cortex_a8
bool "cortex-A8" bool "cortex-A8"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -154,7 +201,6 @@ config BR2_cortex_a8
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a9 config BR2_cortex_a9
bool "cortex-A9" bool "cortex-A9"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -163,7 +209,6 @@ config BR2_cortex_a9
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a12 config BR2_cortex_a12
bool "cortex-A12" bool "cortex-A12"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -172,7 +217,6 @@ config BR2_cortex_a12
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a15 config BR2_cortex_a15
bool "cortex-A15" bool "cortex-A15"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -181,7 +225,6 @@ config BR2_cortex_a15
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64
config BR2_cortex_a15_a7 config BR2_cortex_a15_a7
bool "cortex-A15/A7 big.LITTLE" bool "cortex-A15/A7 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -190,7 +233,7 @@ config BR2_cortex_a15_a7
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64 select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_cortex_a17 config BR2_cortex_a17
bool "cortex-A17" bool "cortex-A17"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -199,7 +242,7 @@ config BR2_cortex_a17
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_cortex_a17_a7 config BR2_cortex_a17_a7
bool "cortex-A17/A7 big.LITTLE" bool "cortex-A17/A7 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -208,14 +251,59 @@ config BR2_cortex_a17_a7
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_pj4
bool "pj4"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_VFPV3
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
comment "armv7m cores"
config BR2_cortex_m3
bool "cortex-M3"
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7M
config BR2_cortex_m4
bool "cortex-M4"
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_MAYBE_HAS_FPV4
select BR2_ARM_CPU_ARMV7M
config BR2_cortex_m7
bool "cortex-M7"
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_MAYBE_HAS_FPV5
select BR2_ARM_CPU_ARMV7M
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
endif # !BR2_ARCH_IS_64
comment "armv8 cores"
config BR2_cortex_a32
bool "cortex-A32"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_NEON
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_cortex_a35
bool "cortex-A35"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_cortex_a53 config BR2_cortex_a53
bool "cortex-A53" bool "cortex-A53"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8 select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a57 config BR2_cortex_a57
bool "cortex-A57" bool "cortex-A57"
@ -223,7 +311,7 @@ config BR2_cortex_a57
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8 select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a57_a53 config BR2_cortex_a57_a53
bool "cortex-A57/A53 big.LITTLE" bool "cortex-A57/A53 big.LITTLE"
@ -231,66 +319,153 @@ config BR2_cortex_a57_a53
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8 select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_cortex_a72 config BR2_cortex_a72
bool "cortex-A72" bool "cortex-A72"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8 select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_cortex_a72_a53 config BR2_cortex_a72_a53
bool "cortex-A72/A53 big.LITTLE" bool "cortex-A72/A53 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8 select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8 select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_m3 select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
bool "cortex-M3" config BR2_cortex_a73
select BR2_ARM_CPU_HAS_THUMB2 bool "cortex-A73"
select BR2_ARM_CPU_ARMV7M select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
depends on !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
config BR2_cortex_m4 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
bool "cortex-M4" select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_ARMV8A
select BR2_ARM_CPU_ARMV7M
depends on !BR2_ARCH_IS_64
config BR2_fa526
bool "fa526/626"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64 select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_pj4 config BR2_cortex_a73_a35
bool "pj4" bool "cortex-A73/A35 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64 select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_strongarm config BR2_cortex_a73_a53
bool "strongarm sa110/sa1100" bool "cortex-A73/A53 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_ARMV4 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64 select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_xscale config BR2_exynos_m1
bool "xscale" bool "exynos-m1"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_ARMV5 select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64 select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_iwmmxt config BR2_falkor
bool "iwmmxt" bool "falkor"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_ARMV5 select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
depends on !BR2_ARCH_IS_64 select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_qdf24xx
bool "qdf24xx"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
if BR2_ARCH_IS_64
config BR2_thunderx
bool "thunderx"
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_thunderxt81
bool "thunderxt81"
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderxt83
bool "thunderxt83"
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderxt88
bool "thunderxt88"
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderxt88p1
bool "thunderxt88p1"
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
endif # BR2_ARCH_IS_64
config BR2_xgene1
bool "xgene1"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
if BR2_ARCH_IS_64
comment "armv8.1a cores"
config BR2_thunderx2t99
bool "thunderx2t99"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderx2t99p1
bool "thunderx2t99p1"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_vulcan
bool "vulcan"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
endif # BR2_ARCH_IS_64
endchoice endchoice
config BR2_ARM_ENABLE_NEON config BR2_ARM_ENABLE_NEON
@ -304,7 +479,9 @@ config BR2_ARM_ENABLE_NEON
config BR2_ARM_ENABLE_VFP config BR2_ARM_ENABLE_VFP
bool "Enable VFP extension support" bool "Enable VFP extension support"
depends on BR2_ARM_CPU_MAYBE_HAS_VFPV2 depends on BR2_ARM_CPU_MAYBE_HAS_FPU
select BR2_ARM_CPU_HAS_FPV5 if BR2_ARM_CPU_MAYBE_HAS_FPV5
select BR2_ARM_CPU_HAS_FPV4 if BR2_ARM_CPU_MAYBE_HAS_FPV4
select BR2_ARM_CPU_HAS_VFPV4 if BR2_ARM_CPU_MAYBE_HAS_VFPV4 select BR2_ARM_CPU_HAS_VFPV4 if BR2_ARM_CPU_MAYBE_HAS_VFPV4
select BR2_ARM_CPU_HAS_VFPV3 if BR2_ARM_CPU_MAYBE_HAS_VFPV3 select BR2_ARM_CPU_HAS_VFPV3 if BR2_ARM_CPU_MAYBE_HAS_VFPV3
select BR2_ARM_CPU_HAS_VFPV2 if BR2_ARM_CPU_MAYBE_HAS_VFPV2 select BR2_ARM_CPU_HAS_VFPV2 if BR2_ARM_CPU_MAYBE_HAS_VFPV2
@ -315,9 +492,9 @@ config BR2_ARM_ENABLE_VFP
choice choice
prompt "Target ABI" prompt "Target ABI"
depends on BR2_arm || BR2_armeb default BR2_ARM_EABIHF if BR2_ARM_CPU_HAS_FPU
default BR2_ARM_EABIHF if BR2_ARM_CPU_HAS_VFPV2
default BR2_ARM_EABI default BR2_ARM_EABI
depends on BR2_arm || BR2_armeb
help help
Application Binary Interface to use. The Application Binary Application Binary Interface to use. The Application Binary
Interface describes the calling conventions (how arguments Interface describes the calling conventions (how arguments
@ -350,7 +527,7 @@ config BR2_ARM_EABI
config BR2_ARM_EABIHF config BR2_ARM_EABIHF
bool "EABIhf" bool "EABIhf"
depends on BR2_ARM_CPU_HAS_VFPV2 depends on BR2_ARM_CPU_HAS_FPU
help help
The EABIhf is an extension of EABI which supports the 'hard' The EABIhf is an extension of EABI which supports the 'hard'
floating point model. This model uses the floating point floating point model. This model uses the floating point
@ -371,10 +548,12 @@ endchoice
choice choice
prompt "Floating point strategy" prompt "Floating point strategy"
default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8 default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8
default BR2_ARM_FPU_FPV5D16 if BR2_ARM_CPU_HAS_FPV5
default BR2_ARM_FPU_FPV4D16 if BR2_ARM_CPU_HAS_FPV4
default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4 default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4
default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3 default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3
default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2 default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2
default BR2_ARM_SOFT_FLOAT if !BR2_ARM_CPU_HAS_VFPV2 default BR2_ARM_SOFT_FLOAT if !BR2_ARM_CPU_HAS_FPU
config BR2_ARM_SOFT_FLOAT config BR2_ARM_SOFT_FLOAT
bool "Soft float" bool "Soft float"
@ -481,6 +660,38 @@ config BR2_ARM_FPU_NEON_VFPV4
example on Cortex-A5 and Cortex-A7, support for VFPv4 and example on Cortex-A5 and Cortex-A7, support for VFPv4 and
NEON is optional. NEON is optional.
config BR2_ARM_FPU_FPV4D16
bool "FPv4-D16"
depends on BR2_ARM_CPU_HAS_FPV4
help
This option allows to use the FPv4-SP (single precision)
floating point unit, as available in some ARMv7m processors
(Cortex-M4).
config BR2_ARM_FPU_FPV5D16
bool "FPv5-D16"
depends on BR2_ARM_CPU_HAS_FPV5
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
help
This option allows to use the FPv5-SP (single precision)
floating point unit, as available in some ARMv7m processors
(Cortex-M7).
Note that if you want binary code that works on the earlier
Cortex-M4, you should instead select FPv4-D16.
config BR2_ARM_FPU_FPV5DPD16
bool "FPv5-DP-D16"
depends on BR2_ARM_CPU_HAS_FPV5
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
help
This option allows to use the FPv5-DP (double precision)
floating point unit, as available in some ARMv7m processors
(Cortex-M7).
Note that if you want binary code that works on the earlier
Cortex-M4, you should instead select FPv4-D16.
config BR2_ARM_FPU_FP_ARMV8 config BR2_ARM_FPU_FP_ARMV8
bool "FP-ARMv8" bool "FP-ARMv8"
depends on BR2_ARM_CPU_HAS_FP_ARMV8 depends on BR2_ARM_CPU_HAS_FP_ARMV8
@ -545,15 +756,23 @@ config BR2_ENDIAN
default "BIG" if (BR2_armeb || BR2_aarch64_be) default "BIG" if (BR2_armeb || BR2_aarch64_be)
config BR2_GCC_TARGET_CPU config BR2_GCC_TARGET_CPU
# armv4
default "arm920t" if BR2_arm920t default "arm920t" if BR2_arm920t
default "arm922t" if BR2_arm922t default "arm922t" if BR2_arm922t
default "fa526" if BR2_fa526
default "strongarm" if BR2_strongarm
# armv5
default "arm926ej-s" if BR2_arm926t default "arm926ej-s" if BR2_arm926t
default "iwmmxt" if BR2_iwmmxt
default "xscale" if BR2_xscale
# armv6
default "arm1136j-s" if BR2_arm1136j_s default "arm1136j-s" if BR2_arm1136j_s
default "arm1136jf-s" if BR2_arm1136jf_s default "arm1136jf-s" if BR2_arm1136jf_s
default "arm1176jz-s" if BR2_arm1176jz_s default "arm1176jz-s" if BR2_arm1176jz_s
default "arm1176jzf-s" if BR2_arm1176jzf_s default "arm1176jzf-s" if BR2_arm1176jzf_s
default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2 default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2
default "mpcorenovfp" if BR2_arm11mpcore default "mpcorenovfp" if BR2_arm11mpcore
# armv7a
default "cortex-a5" if BR2_cortex_a5 default "cortex-a5" if BR2_cortex_a5
default "cortex-a7" if BR2_cortex_a7 default "cortex-a7" if BR2_cortex_a7
default "cortex-a8" if BR2_cortex_a8 default "cortex-a8" if BR2_cortex_a8
@ -563,25 +782,41 @@ config BR2_GCC_TARGET_CPU
default "cortex-a15.cortex-a7" if BR2_cortex_a15_a7 default "cortex-a15.cortex-a7" if BR2_cortex_a15_a7
default "cortex-a17" if BR2_cortex_a17 default "cortex-a17" if BR2_cortex_a17
default "cortex-a17.cortex-a7" if BR2_cortex_a17_a7 default "cortex-a17.cortex-a7" if BR2_cortex_a17_a7
default "marvell-pj4" if BR2_pj4
# armv7m
default "cortex-m3" if BR2_cortex_m3 default "cortex-m3" if BR2_cortex_m3
default "cortex-m4" if BR2_cortex_m4 default "cortex-m4" if BR2_cortex_m4
default "fa526" if BR2_fa526 default "cortex-m7" if BR2_cortex_m7
default "marvell-pj4" if BR2_pj4 # armv8a
default "strongarm" if BR2_strongarm default "cortex-a32" if BR2_cortex_a32
default "xscale" if BR2_xscale default "cortex-a35" if BR2_cortex_a35
default "iwmmxt" if BR2_iwmmxt
default "cortex-a53" if BR2_cortex_a53 default "cortex-a53" if BR2_cortex_a53
default "cortex-a57" if BR2_cortex_a57 default "cortex-a57" if BR2_cortex_a57
default "cortex-a57.cortex-a53" if BR2_cortex_a57_a53 default "cortex-a57.cortex-a53" if BR2_cortex_a57_a53
default "cortex-a72" if BR2_cortex_a72 default "cortex-a72" if BR2_cortex_a72
default "cortex-a72.cortex-a53" if BR2_cortex_a72_a53 default "cortex-a72.cortex-a53" if BR2_cortex_a72_a53
default "cortex-a73" if BR2_cortex_a73
default "cortex-a73.cortex-a35" if BR2_cortex_a73_a35
default "cortex-a73.cortex-a53" if BR2_cortex_a73_a53
default "exynos-m1" if BR2_exynos_m1
default "falkor" if BR2_falkor
default "qdf24xx" if BR2_qdf24xx
default "thunderx" if BR2_thunderx
default "thunderxt81" if BR2_thunderxt81
default "thunderxt83" if BR2_thunderxt83
default "thunderxt88" if BR2_thunderxt88
default "thunderxt88p1" if BR2_thunderxt88p1
default "xgene1" if BR2_xgene1
# armv8.1a
default "thunderx2t99" if BR2_thunderx2t99
default "thunderx2t99p1" if BR2_thunderx2t99p1
default "vulcan" if BR2_vulcan
config BR2_GCC_TARGET_ABI config BR2_GCC_TARGET_ABI
default "aapcs-linux" if BR2_arm || BR2_armeb default "aapcs-linux" if BR2_arm || BR2_armeb
default "lp64" if BR2_aarch64 || BR2_aarch64_be default "lp64" if BR2_aarch64 || BR2_aarch64_be
config BR2_GCC_TARGET_FPU config BR2_GCC_TARGET_FPU
depends on BR2_arm || BR2_armeb
default "vfp" if BR2_ARM_FPU_VFPV2 default "vfp" if BR2_ARM_FPU_VFPV2
default "vfpv3" if BR2_ARM_FPU_VFPV3 default "vfpv3" if BR2_ARM_FPU_VFPV3
default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16 default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16
@ -589,8 +824,12 @@ config BR2_GCC_TARGET_FPU
default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16 default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16
default "neon" if BR2_ARM_FPU_NEON default "neon" if BR2_ARM_FPU_NEON
default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4 default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4
default "fpv4-sp-d16" if BR2_ARM_FPU_FPV4D16
default "fpv5-sp-d16" if BR2_ARM_FPU_FPV5D16
default "fpv5-d16" if BR2_ARM_FPU_FPV5DPD16
default "fp-armv8" if BR2_ARM_FPU_FP_ARMV8 default "fp-armv8" if BR2_ARM_FPU_FP_ARMV8
default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8 default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8
depends on BR2_arm || BR2_armeb
config BR2_GCC_TARGET_FLOAT_ABI config BR2_GCC_TARGET_FLOAT_ABI
default "soft" if BR2_ARM_SOFT_FLOAT default "soft" if BR2_ARM_SOFT_FLOAT

View File

@ -1,102 +0,0 @@
choice
prompt "Target CPU"
depends on BR2_bfin
default BR2_bf532
help
Specify target CPU
config BR2_bf512
bool "bf512"
config BR2_bf514
bool "bf514"
config BR2_bf516
bool "bf516"
config BR2_bf518
bool "bf518"
config BR2_bf522
bool "bf522"
config BR2_bf523
bool "bf523"
config BR2_bf524
bool "bf524"
config BR2_bf525
bool "bf525"
config BR2_bf526
bool "bf526"
config BR2_bf527
bool "bf527"
config BR2_bf531
bool "bf531"
config BR2_bf532
bool "bf532"
config BR2_bf533
bool "bf533"
config BR2_bf534
bool "bf534"
config BR2_bf536
bool "bf536"
config BR2_bf537
bool "bf537"
config BR2_bf538
bool "bf538"
config BR2_bf539
bool "bf539"
config BR2_bf542
bool "bf542"
config BR2_bf544
bool "bf544"
config BR2_bf547
bool "bf547"
config BR2_bf548
bool "bf548"
config BR2_bf549
bool "bf549"
config BR2_bf561
bool "bf561"
endchoice
config BR2_ARCH
default "bfin"
config BR2_ENDIAN
default "LITTLE"
config BR2_GCC_TARGET_CPU
default bf606 if BR2_bf606
default bf607 if BR2_bf607
default bf608 if BR2_bf608
default bf609 if BR2_bf609
default bf512 if BR2_bf512
default bf514 if BR2_bf514
default bf516 if BR2_bf516
default bf518 if BR2_bf518
default bf522 if BR2_bf522
default bf523 if BR2_bf523
default bf524 if BR2_bf524
default bf525 if BR2_bf525
default bf526 if BR2_bf526
default bf527 if BR2_bf527
default bf531 if BR2_bf531
default bf532 if BR2_bf532
default bf533 if BR2_bf533
default bf534 if BR2_bf534
default bf536 if BR2_bf536
default bf537 if BR2_bf537
default bf538 if BR2_bf538
default bf539 if BR2_bf539
default bf542 if BR2_bf542
default bf544 if BR2_bf544
default bf547 if BR2_bf547
default bf548 if BR2_bf548
default bf549 if BR2_bf549
default bf561 if BR2_bf561
config BR2_GCC_TARGET_CPU_REVISION
string "Target CPU revision"
help
Specify a target CPU revision, which will be appended to the
value of the -mcpu option. For example, if the selected CPU is
bf609, and then selected CPU revision is "0.0", then gcc will
receive the -mcpu=bf609-0.0 option.
config BR2_READELF_ARCH_NAME
default "Analog Devices Blackfin"

View File

@ -15,8 +15,8 @@ config BR2_m68k_cf
# coldfire variants will be added later # coldfire variants will be added later
choice choice
prompt "Target CPU" prompt "Target CPU"
depends on BR2_m68k
default BR2_m68k_68040 default BR2_m68k_68040
depends on BR2_m68k
help help
Specific CPU variant to use Specific CPU variant to use

View File

@ -7,9 +7,11 @@ config BR2_MIPS_CPU_MIPS32R2
select BR2_MIPS_NAN_LEGACY select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_CPU_MIPS32R5 config BR2_MIPS_CPU_MIPS32R5
bool bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_MIPS_CPU_MIPS32R6 config BR2_MIPS_CPU_MIPS32R6
bool bool
select BR2_MIPS_NAN_2008 select BR2_MIPS_NAN_2008
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_MIPS_CPU_MIPS64 config BR2_MIPS_CPU_MIPS64
bool bool
select BR2_MIPS_NAN_LEGACY select BR2_MIPS_NAN_LEGACY
@ -18,15 +20,17 @@ config BR2_MIPS_CPU_MIPS64R2
select BR2_MIPS_NAN_LEGACY select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_CPU_MIPS64R5 config BR2_MIPS_CPU_MIPS64R5
bool bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_MIPS_CPU_MIPS64R6 config BR2_MIPS_CPU_MIPS64R6
bool bool
select BR2_MIPS_NAN_2008 select BR2_MIPS_NAN_2008
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
default BR2_mips_32 if BR2_mips || BR2_mipsel default BR2_mips_32 if BR2_mips || BR2_mipsel
default BR2_mips_64 if BR2_mips64 || BR2_mips64el default BR2_mips_64 if BR2_mips64 || BR2_mips64el
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
help help
Specific CPU variant to use Specific CPU variant to use
@ -53,11 +57,13 @@ config BR2_mips_interaptiv
bool "interAptiv" bool "interAptiv"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R2 select BR2_MIPS_CPU_MIPS32R2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_mips_m5150 config BR2_mips_m5150
bool "M5150" bool "M5150"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5 select BR2_MIPS_CPU_MIPS32R5
select BR2_MIPS_NAN_2008 select BR2_MIPS_NAN_2008
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_mips_m6250 config BR2_mips_m6250
bool "M6250" bool "M6250"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
@ -101,6 +107,7 @@ config BR2_mips_i6400
bool "I6400" bool "I6400"
depends on BR2_ARCH_IS_64 depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R6 select BR2_MIPS_CPU_MIPS64R6
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_mips_p6600 config BR2_mips_p6600
bool "P6600" bool "P6600"
depends on BR2_ARCH_IS_64 depends on BR2_ARCH_IS_64
@ -108,11 +115,10 @@ config BR2_mips_p6600
select BR2_MIPS_CPU_MIPS64R6 select BR2_MIPS_CPU_MIPS64R6
endchoice endchoice
choice choice
prompt "Target ABI" prompt "Target ABI"
depends on BR2_mips64 || BR2_mips64el
default BR2_MIPS_NABI32 default BR2_MIPS_NABI32
depends on BR2_mips64 || BR2_mips64el
help help
Application Binary Interface to use Application Binary Interface to use
@ -138,11 +144,11 @@ config BR2_MIPS_SOFT_FLOAT
choice choice
prompt "FP mode" prompt "FP mode"
default BR2_MIPS_FP32_MODE_XX
depends on !BR2_ARCH_IS_64 && !BR2_MIPS_SOFT_FLOAT depends on !BR2_ARCH_IS_64 && !BR2_MIPS_SOFT_FLOAT
default BR2_MIPS_FP32_MODE_XX if BR2_TOOLCHAIN_HAS_MFPXX_OPTION
help help
MIPS32 supports different FP modes (32,xx,64). Information about FP MIPS32 supports different FP modes (32,xx,64). Information
modes can be found here: about FP modes can be found here:
https://sourceware.org/binutils/docs/as/MIPS-Options.html https://sourceware.org/binutils/docs/as/MIPS-Options.html
https://dmz-portal.imgtec.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking#5._Generating_modeless_code https://dmz-portal.imgtec.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking#5._Generating_modeless_code
@ -152,7 +158,7 @@ config BR2_MIPS_FP32_MODE_32
config BR2_MIPS_FP32_MODE_XX config BR2_MIPS_FP32_MODE_XX
bool "xx" bool "xx"
depends on BR2_TOOLCHAIN_HAS_MFPXX_OPTION select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_MIPS_FP32_MODE_64 config BR2_MIPS_FP32_MODE_64
bool "64" bool "64"
@ -169,12 +175,12 @@ config BR2_MIPS_NAN_LEGACY
config BR2_MIPS_NAN_2008 config BR2_MIPS_NAN_2008
bool bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
choice choice
prompt "Target NaN" prompt "Target NaN"
depends on BR2_TOOLCHAIN_HAS_MNAN_OPTION
depends on BR2_mips_32r5 || BR2_mips_64r5
default BR2_MIPS_ENABLE_NAN_2008 default BR2_MIPS_ENABLE_NAN_2008
depends on BR2_mips_32r5 || BR2_mips_64r5
help help
MIPS supports two different NaN encodings, legacy and 2008. MIPS supports two different NaN encodings, legacy and 2008.
Information about MIPS NaN encodings can be found here: Information about MIPS NaN encodings can be found here:

View File

@ -71,12 +71,12 @@ config BR2_powerpc_740
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
config BR2_powerpc_7400 config BR2_powerpc_7400
bool "7400" bool "7400"
select BR2_POWERPC_CPU_HAS_ALTIVEC
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_POWERPC_CPU_HAS_ALTIVEC
config BR2_powerpc_7450 config BR2_powerpc_7450
bool "7450" bool "7450"
select BR2_POWERPC_CPU_HAS_ALTIVEC
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_POWERPC_CPU_HAS_ALTIVEC
config BR2_powerpc_750 config BR2_powerpc_750
bool "750" bool "750"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64

View File

@ -1,7 +1,7 @@
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
depends on BR2_sh
default BR2_sh4 default BR2_sh4
depends on BR2_sh
help help
Specific CPU variant to use Specific CPU variant to use

View File

@ -1,8 +1,8 @@
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
depends on BR2_sparc || BR2_sparc64
default BR2_sparc_v8 if BR2_sparc default BR2_sparc_v8 if BR2_sparc
default BR2_sparc_v9 if BR2_sparc64 default BR2_sparc_v9 if BR2_sparc64
depends on BR2_sparc || BR2_sparc64
help help
Specific CPU variant to use Specific CPU variant to use

View File

@ -20,8 +20,8 @@ config BR2_X86_CPU_HAS_AVX2
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
depends on BR2_i386 || BR2_x86_64
default BR2_x86_i586 if BR2_i386 default BR2_x86_i586 if BR2_i386
depends on BR2_i386 || BR2_x86_64
help help
Specific CPU variant to use Specific CPU variant to use
@ -50,35 +50,35 @@ config BR2_x86_pentiumpro
depends on !BR2_x86_64 depends on !BR2_x86_64
config BR2_x86_pentium_mmx config BR2_x86_pentium_mmx
bool "pentium MMX" bool "pentium MMX"
select BR2_X86_CPU_HAS_MMX
depends on !BR2_x86_64 depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
config BR2_x86_pentium_m config BR2_x86_pentium_m
bool "pentium mobile" bool "pentium mobile"
depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE
depends on !BR2_x86_64
config BR2_x86_pentium2 config BR2_x86_pentium2
bool "pentium2" bool "pentium2"
select BR2_X86_CPU_HAS_MMX
depends on !BR2_x86_64 depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
config BR2_x86_pentium3 config BR2_x86_pentium3
bool "pentium3" bool "pentium3"
depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE
depends on !BR2_x86_64
config BR2_x86_pentium4 config BR2_x86_pentium4
bool "pentium4" bool "pentium4"
depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE2
depends on !BR2_x86_64
config BR2_x86_prescott config BR2_x86_prescott
bool "prescott" bool "prescott"
depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSE3
depends on !BR2_x86_64
config BR2_x86_nocona config BR2_x86_nocona
bool "nocona" bool "nocona"
select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_MMX
@ -129,23 +129,32 @@ config BR2_x86_atom
select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3 select BR2_X86_CPU_HAS_SSSE3
config BR2_x86_k6 config BR2_x86_silvermont
bool "k6" bool "silvermont"
select BR2_X86_CPU_HAS_MMX
depends on !BR2_x86_64
config BR2_x86_k6_2
bool "k6-2"
select BR2_X86_CPU_HAS_MMX
depends on !BR2_x86_64
config BR2_x86_athlon
bool "athlon"
select BR2_X86_CPU_HAS_MMX
depends on !BR2_x86_64
config BR2_x86_athlon_4
bool "athlon-4"
select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
config BR2_x86_k6
bool "k6"
depends on !BR2_x86_64 depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
config BR2_x86_k6_2
bool "k6-2"
depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
config BR2_x86_athlon
bool "athlon"
depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
config BR2_x86_athlon_4
bool "athlon-4"
depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
config BR2_x86_opteron config BR2_x86_opteron
bool "opteron" bool "opteron"
select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_MMX
@ -189,21 +198,21 @@ config BR2_x86_geode
depends on !BR2_x86_64 depends on !BR2_x86_64
config BR2_x86_c3 config BR2_x86_c3
bool "Via/Cyrix C3 (Samuel/Ezra cores)" bool "Via/Cyrix C3 (Samuel/Ezra cores)"
select BR2_X86_CPU_HAS_MMX
depends on !BR2_x86_64 depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
config BR2_x86_c32 config BR2_x86_c32
bool "Via C3-2 (Nehemiah cores)" bool "Via C3-2 (Nehemiah cores)"
depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE select BR2_X86_CPU_HAS_SSE
depends on !BR2_x86_64
config BR2_x86_winchip_c6 config BR2_x86_winchip_c6
bool "IDT Winchip C6" bool "IDT Winchip C6"
select BR2_X86_CPU_HAS_MMX
depends on !BR2_x86_64 depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
config BR2_x86_winchip2 config BR2_x86_winchip2
bool "IDT Winchip 2" bool "IDT Winchip 2"
select BR2_X86_CPU_HAS_MMX
depends on !BR2_x86_64 depends on !BR2_x86_64
select BR2_X86_CPU_HAS_MMX
endchoice endchoice
config BR2_ARCH config BR2_ARCH
@ -229,6 +238,7 @@ config BR2_ARCH
default "i686" if BR2_x86_corei7_avx && BR2_i386 default "i686" if BR2_x86_corei7_avx && BR2_i386
default "i686" if BR2_x86_corei7_avx2 && BR2_i386 default "i686" if BR2_x86_corei7_avx2 && BR2_i386
default "i686" if BR2_x86_atom && BR2_i386 default "i686" if BR2_x86_atom && BR2_i386
default "i686" if BR2_x86_silvermont && BR2_i386
default "i686" if BR2_x86_opteron && BR2_i386 default "i686" if BR2_x86_opteron && BR2_i386
default "i686" if BR2_x86_opteron_sse3 && BR2_i386 default "i686" if BR2_x86_opteron_sse3 && BR2_i386
default "i686" if BR2_x86_barcelona && BR2_i386 default "i686" if BR2_x86_barcelona && BR2_i386
@ -261,6 +271,7 @@ config BR2_GCC_TARGET_ARCH
default "corei7-avx" if BR2_x86_corei7_avx default "corei7-avx" if BR2_x86_corei7_avx
default "core-avx2" if BR2_x86_core_avx2 default "core-avx2" if BR2_x86_core_avx2
default "atom" if BR2_x86_atom default "atom" if BR2_x86_atom
default "silvermont" if BR2_x86_silvermont
default "k8" if BR2_x86_opteron default "k8" if BR2_x86_opteron
default "k8-sse3" if BR2_x86_opteron_sse3 default "k8-sse3" if BR2_x86_opteron_sse3
default "barcelona" if BR2_x86_barcelona default "barcelona" if BR2_x86_barcelona

View File

@ -1,15 +1,15 @@
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
depends on BR2_xtensa
default BR2_xtensa_fsf default BR2_xtensa_fsf
depends on BR2_xtensa
config BR2_XTENSA_CUSTOM config BR2_XTENSA_CUSTOM
select BR2_ARCH_HAS_MMU_OPTIONAL
bool "Custom Xtensa processor configuration" bool "Custom Xtensa processor configuration"
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_xtensa_fsf config BR2_xtensa_fsf
select BR2_ARCH_HAS_MMU_MANDATORY
bool "fsf - Default configuration" bool "fsf - Default configuration"
select BR2_ARCH_HAS_MMU_MANDATORY
endchoice endchoice
@ -20,18 +20,18 @@ config BR2_XTENSA_OVERLAY_FILE
Enter the path to the overlay tarball for a custom processor Enter the path to the overlay tarball for a custom processor
configuration. configuration.
These overlay files are tar packages with updated configuration These overlay files are tar packages with updated
files for various toolchain packages and Xtensa processor configuration files for various toolchain packages and Xtensa
configurations. They are provided by the processor vendor or processor configurations. They are provided by the processor
directly from Tensilica. vendor or directly from Tensilica.
The path can be either absolute, or relative to the top directory The path can be either absolute, or relative to the top
of buildroot. directory of buildroot.
choice choice
prompt "Target Architecture Endianness" prompt "Target Architecture Endianness"
depends on BR2_XTENSA_CUSTOM
default BR2_XTENSA_LITTLE_ENDIAN default BR2_XTENSA_LITTLE_ENDIAN
depends on BR2_XTENSA_CUSTOM
config BR2_XTENSA_LITTLE_ENDIAN config BR2_XTENSA_LITTLE_ENDIAN
bool "Little endian" bool "Little endian"

View File

@ -12,7 +12,7 @@
BR_ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE)) BR_ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE))
ifneq ($(filter http://% https://% ftp://% scp://%,$(BR_ARCH_XTENSA_OVERLAY_FILE)),) ifneq ($(filter http://% https://% ftp://% scp://%,$(BR_ARCH_XTENSA_OVERLAY_FILE)),)
ARCH_XTENSA_OVERLAY_URL = $(BR_ARCH_XTENSA_OVERLAY_FILE) ARCH_XTENSA_OVERLAY_URL = $(BR_ARCH_XTENSA_OVERLAY_FILE)
ARCH_XTENSA_OVERLAY_FILE = $(DL_DIR)/$(notdir $(BR_ARCH_XTENSA_OVERLAY_FILE)) ARCH_XTENSA_OVERLAY_FILE = $($(PKG)_DL_DIR)/$(notdir $(BR_ARCH_XTENSA_OVERLAY_FILE))
# Do not check that file, we can't know its hash # Do not check that file, we can't know its hash
BR_NO_CHECK_HASH_FOR += $(notdir $(ARCH_XTENSA_OVERLAY_URL)) BR_NO_CHECK_HASH_FOR += $(notdir $(ARCH_XTENSA_OVERLAY_URL))
else else

View File

@ -1 +0,0 @@
bananapi

View File

@ -0,0 +1 @@
bananapim1

View File

@ -1,40 +1,40 @@
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Busybox version: 1.26.2 # Busybox version: 1.29.2
# Sun Jul 9 17:42:36 2017 # Wed Nov 14 23:22:52 2018
# #
CONFIG_HAVE_DOT_CONFIG=y CONFIG_HAVE_DOT_CONFIG=y
# #
# Busybox Settings # Settings
# #
CONFIG_DESKTOP=y CONFIG_DESKTOP=y
# CONFIG_EXTRA_COMPAT is not set # CONFIG_EXTRA_COMPAT is not set
# CONFIG_FEDORA_COMPAT is not set
CONFIG_INCLUDE_SUSv2=y CONFIG_INCLUDE_SUSv2=y
# CONFIG_USE_PORTABLE_CODE is not set CONFIG_LONG_OPTS=y
CONFIG_PLATFORM_LINUX=y
CONFIG_SHOW_USAGE=y CONFIG_SHOW_USAGE=y
CONFIG_FEATURE_VERBOSE_USAGE=y CONFIG_FEATURE_VERBOSE_USAGE=y
# CONFIG_FEATURE_COMPRESS_USAGE is not set # CONFIG_FEATURE_COMPRESS_USAGE is not set
CONFIG_BUSYBOX=y CONFIG_LFS=y
CONFIG_FEATURE_INSTALLER=y
# CONFIG_INSTALL_NO_USR is not set
# CONFIG_PAM is not set # CONFIG_PAM is not set
CONFIG_LONG_OPTS=y
CONFIG_FEATURE_DEVPTS=y CONFIG_FEATURE_DEVPTS=y
CONFIG_FEATURE_CLEAN_UP=y
CONFIG_FEATURE_UTMP=y CONFIG_FEATURE_UTMP=y
CONFIG_FEATURE_WTMP=y CONFIG_FEATURE_WTMP=y
# CONFIG_FEATURE_PIDFILE is not set # CONFIG_FEATURE_PIDFILE is not set
CONFIG_PID_FILE_PATH="" CONFIG_PID_FILE_PATH=""
CONFIG_BUSYBOX=y
CONFIG_FEATURE_INSTALLER=y
# CONFIG_INSTALL_NO_USR is not set
CONFIG_FEATURE_SUID=y CONFIG_FEATURE_SUID=y
# CONFIG_FEATURE_SUID_CONFIG is not set # CONFIG_FEATURE_SUID_CONFIG is not set
# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
# CONFIG_SELINUX is not set
# CONFIG_FEATURE_PREFER_APPLETS is not set # CONFIG_FEATURE_PREFER_APPLETS is not set
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
# CONFIG_SELINUX is not set
# CONFIG_FEATURE_CLEAN_UP is not set
CONFIG_FEATURE_SYSLOG=y CONFIG_FEATURE_SYSLOG=y
# CONFIG_FEATURE_HAVE_RPC is not set CONFIG_PLATFORM_LINUX=y
# #
# Build Options # Build Options
@ -43,14 +43,16 @@ CONFIG_FEATURE_SYSLOG=y
# CONFIG_PIE is not set # CONFIG_PIE is not set
# CONFIG_NOMMU is not set # CONFIG_NOMMU is not set
# CONFIG_BUILD_LIBBUSYBOX is not set # CONFIG_BUILD_LIBBUSYBOX is not set
# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set
# CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_INDIVIDUAL is not set
# CONFIG_FEATURE_SHARED_BUSYBOX is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set
CONFIG_LFS=y
CONFIG_CROSS_COMPILER_PREFIX="" CONFIG_CROSS_COMPILER_PREFIX=""
CONFIG_SYSROOT="" CONFIG_SYSROOT=""
CONFIG_EXTRA_CFLAGS="" CONFIG_EXTRA_CFLAGS=""
CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS="" CONFIG_EXTRA_LDLIBS=""
# CONFIG_USE_PORTABLE_CODE is not set
CONFIG_STACK_OPTIMIZATION_386=y
# #
# Installation Options ("make install" behavior) # Installation Options ("make install" behavior)
@ -77,7 +79,7 @@ CONFIG_NO_DEBUG_LIB=y
# CONFIG_EFENCE is not set # CONFIG_EFENCE is not set
# #
# Busybox Library Tuning # Library Tuning
# #
# CONFIG_FEATURE_USE_BSS_TAIL is not set # CONFIG_FEATURE_USE_BSS_TAIL is not set
CONFIG_FEATURE_RTMINMAX=y CONFIG_FEATURE_RTMINMAX=y
@ -89,7 +91,7 @@ CONFIG_MD5_SMALL=1
CONFIG_SHA3_SMALL=1 CONFIG_SHA3_SMALL=1
# CONFIG_FEATURE_FAST_TOP is not set # CONFIG_FEATURE_FAST_TOP is not set
# CONFIG_FEATURE_ETC_NETWORKS is not set # CONFIG_FEATURE_ETC_NETWORKS is not set
CONFIG_FEATURE_USE_TERMIOS=y # CONFIG_FEATURE_ETC_SERVICES is not set
CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024 CONFIG_FEATURE_EDITING_MAX_LEN=1024
CONFIG_FEATURE_EDITING_VI=y CONFIG_FEATURE_EDITING_VI=y
@ -100,6 +102,7 @@ CONFIG_FEATURE_REVERSE_SEARCH=y
CONFIG_FEATURE_TAB_COMPLETION=y CONFIG_FEATURE_TAB_COMPLETION=y
# CONFIG_FEATURE_USERNAME_COMPLETION is not set # CONFIG_FEATURE_USERNAME_COMPLETION is not set
CONFIG_FEATURE_EDITING_FANCY_PROMPT=y CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
CONFIG_FEATURE_EDITING_WINCH=y
# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
# CONFIG_LOCALE_SUPPORT is not set # CONFIG_LOCALE_SUPPORT is not set
# CONFIG_UNICODE_SUPPORT is not set # CONFIG_UNICODE_SUPPORT is not set
@ -145,11 +148,12 @@ CONFIG_BZCAT=y
# CONFIG_UNLZMA is not set # CONFIG_UNLZMA is not set
CONFIG_LZCAT=y CONFIG_LZCAT=y
# CONFIG_LZMA is not set # CONFIG_LZMA is not set
# CONFIG_FEATURE_LZMA_FAST is not set
# CONFIG_UNXZ is not set # CONFIG_UNXZ is not set
CONFIG_XZCAT=y CONFIG_XZCAT=y
# CONFIG_XZ is not set # CONFIG_XZ is not set
# CONFIG_BZIP2 is not set # CONFIG_BZIP2 is not set
CONFIG_BZIP2_SMALL=0
CONFIG_FEATURE_BZIP2_DECOMPRESS=y
# CONFIG_CPIO is not set # CONFIG_CPIO is not set
# CONFIG_FEATURE_CPIO_O is not set # CONFIG_FEATURE_CPIO_O is not set
# CONFIG_FEATURE_CPIO_P is not set # CONFIG_FEATURE_CPIO_P is not set
@ -159,33 +163,39 @@ CONFIG_XZCAT=y
# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
CONFIG_GZIP_FAST=0 CONFIG_GZIP_FAST=0
# CONFIG_FEATURE_GZIP_LEVELS is not set # CONFIG_FEATURE_GZIP_LEVELS is not set
CONFIG_FEATURE_GZIP_DECOMPRESS=y
# CONFIG_LZOP is not set # CONFIG_LZOP is not set
CONFIG_UNLZOP=y CONFIG_UNLZOP=y
CONFIG_LZOPCAT=y CONFIG_LZOPCAT=y
# CONFIG_LZOP_COMPR_HIGH is not set # CONFIG_LZOP_COMPR_HIGH is not set
# CONFIG_RPM2CPIO is not set
# CONFIG_RPM is not set # CONFIG_RPM is not set
# CONFIG_RPM2CPIO is not set
# CONFIG_TAR is not set # CONFIG_TAR is not set
# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
# CONFIG_FEATURE_TAR_CREATE is not set # CONFIG_FEATURE_TAR_CREATE is not set
# CONFIG_FEATURE_TAR_AUTODETECT is not set # CONFIG_FEATURE_TAR_AUTODETECT is not set
# CONFIG_FEATURE_TAR_FROM is not set # CONFIG_FEATURE_TAR_FROM is not set
# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set # CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set # CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set # CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
# CONFIG_FEATURE_TAR_TO_COMMAND is not set # CONFIG_FEATURE_TAR_TO_COMMAND is not set
# CONFIG_FEATURE_TAR_UNAME_GNAME is not set # CONFIG_FEATURE_TAR_UNAME_GNAME is not set
# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set # CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
# CONFIG_FEATURE_TAR_SELINUX is not set # CONFIG_FEATURE_TAR_SELINUX is not set
# CONFIG_UNZIP is not set # CONFIG_UNZIP is not set
# CONFIG_FEATURE_UNZIP_CDF is not set
# CONFIG_FEATURE_UNZIP_BZIP2 is not set
# CONFIG_FEATURE_UNZIP_LZMA is not set
# CONFIG_FEATURE_UNZIP_XZ is not set
# CONFIG_FEATURE_LZMA_FAST is not set
# #
# Coreutils # Coreutils
# #
CONFIG_BASENAME=y CONFIG_BASENAME=y
# CONFIG_CAL is not set
CONFIG_CAT=y CONFIG_CAT=y
CONFIG_CATV=y CONFIG_FEATURE_CATN=y
CONFIG_FEATURE_CATV=y
CONFIG_CHGRP=y CONFIG_CHGRP=y
CONFIG_CHMOD=y CONFIG_CHMOD=y
CONFIG_CHOWN=y CONFIG_CHOWN=y
@ -215,13 +225,11 @@ CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
CONFIG_ECHO=y CONFIG_ECHO=y
CONFIG_FEATURE_FANCY_ECHO=y CONFIG_FEATURE_FANCY_ECHO=y
CONFIG_ENV=y CONFIG_ENV=y
# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
# CONFIG_EXPAND is not set # CONFIG_EXPAND is not set
# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
# CONFIG_UNEXPAND is not set # CONFIG_UNEXPAND is not set
# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
CONFIG_EXPR=y CONFIG_EXPR=y
CONFIG_EXPR_MATH_SUPPORT_64=y CONFIG_EXPR_MATH_SUPPORT_64=y
CONFIG_FACTOR=y
CONFIG_FALSE=y CONFIG_FALSE=y
CONFIG_FOLD=y CONFIG_FOLD=y
# CONFIG_FSYNC is not set # CONFIG_FSYNC is not set
@ -232,12 +240,14 @@ CONFIG_ID=y
# CONFIG_GROUPS is not set # CONFIG_GROUPS is not set
CONFIG_INSTALL=y CONFIG_INSTALL=y
CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
CONFIG_LINK=y
CONFIG_LN=y CONFIG_LN=y
CONFIG_LOGNAME=y CONFIG_LOGNAME=y
CONFIG_LS=y CONFIG_LS=y
CONFIG_FEATURE_LS_FILETYPES=y CONFIG_FEATURE_LS_FILETYPES=y
CONFIG_FEATURE_LS_FOLLOWLINKS=y CONFIG_FEATURE_LS_FOLLOWLINKS=y
CONFIG_FEATURE_LS_RECURSIVE=y CONFIG_FEATURE_LS_RECURSIVE=y
CONFIG_FEATURE_LS_WIDTH=y
CONFIG_FEATURE_LS_SORTFILES=y CONFIG_FEATURE_LS_SORTFILES=y
CONFIG_FEATURE_LS_TIMESTAMPS=y CONFIG_FEATURE_LS_TIMESTAMPS=y
CONFIG_FEATURE_LS_USERNAME=y CONFIG_FEATURE_LS_USERNAME=y
@ -254,14 +264,16 @@ CONFIG_SHA3SUM=y
# #
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
CONFIG_MKDIR=y CONFIG_MKDIR=y
CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
CONFIG_MKFIFO=y CONFIG_MKFIFO=y
CONFIG_MKNOD=y CONFIG_MKNOD=y
# CONFIG_MKTEMP is not set
CONFIG_MV=y CONFIG_MV=y
CONFIG_FEATURE_MV_LONG_OPTIONS=y
CONFIG_NICE=y CONFIG_NICE=y
CONFIG_NL=y
CONFIG_NOHUP=y CONFIG_NOHUP=y
CONFIG_NPROC=y
CONFIG_OD=y CONFIG_OD=y
CONFIG_PASTE=y
CONFIG_PRINTENV=y CONFIG_PRINTENV=y
CONFIG_PRINTF=y CONFIG_PRINTF=y
CONFIG_PWD=y CONFIG_PWD=y
@ -270,14 +282,15 @@ CONFIG_FEATURE_READLINK_FOLLOW=y
CONFIG_REALPATH=y CONFIG_REALPATH=y
CONFIG_RM=y CONFIG_RM=y
CONFIG_RMDIR=y CONFIG_RMDIR=y
# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
CONFIG_SEQ=y CONFIG_SEQ=y
CONFIG_SHRED=y
# CONFIG_SHUF is not set # CONFIG_SHUF is not set
CONFIG_SLEEP=y CONFIG_SLEEP=y
# CONFIG_FEATURE_FANCY_SLEEP is not set # CONFIG_FEATURE_FANCY_SLEEP is not set
# CONFIG_FEATURE_FLOAT_SLEEP is not set # CONFIG_FEATURE_FLOAT_SLEEP is not set
CONFIG_SORT=y CONFIG_SORT=y
CONFIG_FEATURE_SORT_BIG=y CONFIG_FEATURE_SORT_BIG=y
# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set
# CONFIG_SPLIT is not set # CONFIG_SPLIT is not set
# CONFIG_FEATURE_SPLIT_FANCY is not set # CONFIG_FEATURE_SPLIT_FANCY is not set
CONFIG_STAT=y CONFIG_STAT=y
@ -296,6 +309,7 @@ CONFIG_TEST=y
CONFIG_TEST1=y CONFIG_TEST1=y
CONFIG_TEST2=y CONFIG_TEST2=y
CONFIG_FEATURE_TEST_64=y CONFIG_FEATURE_TEST_64=y
CONFIG_TIMEOUT=y
CONFIG_TOUCH=y CONFIG_TOUCH=y
# CONFIG_FEATURE_TOUCH_NODEREF is not set # CONFIG_FEATURE_TOUCH_NODEREF is not set
CONFIG_FEATURE_TOUCH_SUSV3=y CONFIG_FEATURE_TOUCH_SUSV3=y
@ -307,6 +321,7 @@ CONFIG_TRUNCATE=y
CONFIG_TTY=y CONFIG_TTY=y
CONFIG_UNAME=y CONFIG_UNAME=y
CONFIG_UNAME_OSNAME="GNU/Linux" CONFIG_UNAME_OSNAME="GNU/Linux"
CONFIG_BB_ARCH=y
CONFIG_UNIQ=y CONFIG_UNIQ=y
CONFIG_UNLINK=y CONFIG_UNLINK=y
CONFIG_USLEEP=y CONFIG_USLEEP=y
@ -317,6 +332,7 @@ CONFIG_WC=y
# CONFIG_FEATURE_WC_LARGE is not set # CONFIG_FEATURE_WC_LARGE is not set
CONFIG_WHOAMI=y CONFIG_WHOAMI=y
CONFIG_WHO=y CONFIG_WHO=y
CONFIG_W=y
# CONFIG_USERS is not set # CONFIG_USERS is not set
CONFIG_YES=y CONFIG_YES=y
@ -330,11 +346,6 @@ CONFIG_FEATURE_VERBOSE=y
# #
CONFIG_FEATURE_PRESERVE_HARDLINKS=y CONFIG_FEATURE_PRESERVE_HARDLINKS=y
#
# Common options for ls, more and telnet
#
CONFIG_FEATURE_AUTOWIDTH=y
# #
# Common options for df, du, ls # Common options for df, du, ls
# #
@ -369,16 +380,23 @@ CONFIG_RESET=y
# #
# Debian Utilities # Debian Utilities
# #
# CONFIG_MKTEMP is not set
# CONFIG_PIPE_PROGRESS is not set # CONFIG_PIPE_PROGRESS is not set
# CONFIG_RUN_PARTS is not set # CONFIG_RUN_PARTS is not set
# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set # CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
# CONFIG_FEATURE_RUN_PARTS_FANCY is not set # CONFIG_FEATURE_RUN_PARTS_FANCY is not set
CONFIG_START_STOP_DAEMON=y CONFIG_START_STOP_DAEMON=y
CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
CONFIG_WHICH=y CONFIG_WHICH=y
#
# klibc-utils
#
# CONFIG_MINIPS is not set
CONFIG_NUKE=y
CONFIG_RESUME=y
CONFIG_RUN_INIT=y
# #
# Editors # Editors
# #
@ -448,6 +466,8 @@ CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y
CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y
CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y
# #
# Init Utilities # Init Utilities
@ -458,6 +478,7 @@ CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y
CONFIG_HALT=y CONFIG_HALT=y
CONFIG_POWEROFF=y CONFIG_POWEROFF=y
CONFIG_REBOOT=y CONFIG_REBOOT=y
CONFIG_FEATURE_WAIT_FOR_INIT=y
# CONFIG_FEATURE_CALL_TELINIT is not set # CONFIG_FEATURE_CALL_TELINIT is not set
CONFIG_TELINIT_PATH="" CONFIG_TELINIT_PATH=""
CONFIG_INIT=y CONFIG_INIT=y
@ -467,12 +488,10 @@ CONFIG_FEATURE_KILL_REMOVED=y
CONFIG_FEATURE_KILL_DELAY=0 CONFIG_FEATURE_KILL_DELAY=0
CONFIG_FEATURE_INIT_SCTTY=y CONFIG_FEATURE_INIT_SCTTY=y
CONFIG_FEATURE_INIT_SYSLOG=y CONFIG_FEATURE_INIT_SYSLOG=y
CONFIG_FEATURE_EXTRA_QUIET=y CONFIG_FEATURE_INIT_QUIET=y
# CONFIG_FEATURE_INIT_COREDUMPS is not set # CONFIG_FEATURE_INIT_COREDUMPS is not set
CONFIG_INIT_TERMINAL_TYPE="linux" CONFIG_INIT_TERMINAL_TYPE="linux"
CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y CONFIG_FEATURE_INIT_MODIFY_CMDLINE=y
CONFIG_MESG=y
CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
# #
# Login/Password Management Utilities # Login/Password Management Utilities
@ -483,12 +502,10 @@ CONFIG_FEATURE_SHADOWPASSWDS=y
CONFIG_USE_BB_CRYPT=y CONFIG_USE_BB_CRYPT=y
# CONFIG_USE_BB_CRYPT_SHA is not set # CONFIG_USE_BB_CRYPT_SHA is not set
# CONFIG_ADDGROUP is not set # CONFIG_ADDGROUP is not set
# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set # CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
# CONFIG_ADD_SHELL is not set # CONFIG_ADD_SHELL is not set
# CONFIG_REMOVE_SHELL is not set # CONFIG_REMOVE_SHELL is not set
# CONFIG_ADDUSER is not set # CONFIG_ADDUSER is not set
# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
# CONFIG_FEATURE_CHECK_NAMES is not set # CONFIG_FEATURE_CHECK_NAMES is not set
CONFIG_LAST_ID=0 CONFIG_LAST_ID=0
CONFIG_FIRST_SYSTEM_ID=0 CONFIG_FIRST_SYSTEM_ID=0
@ -507,10 +524,11 @@ CONFIG_LOGIN=y
CONFIG_FEATURE_NOLOGIN=y CONFIG_FEATURE_NOLOGIN=y
CONFIG_FEATURE_SECURETTY=y CONFIG_FEATURE_SECURETTY=y
CONFIG_PASSWD=y CONFIG_PASSWD=y
CONFIG_FEATURE_PASSWD_WEAK_CHECK=y # CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
# CONFIG_SU is not set # CONFIG_SU is not set
# CONFIG_FEATURE_SU_SYSLOG is not set # CONFIG_FEATURE_SU_SYSLOG is not set
# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set # CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set
# CONFIG_SULOGIN is not set # CONFIG_SULOGIN is not set
CONFIG_VLOCK=y CONFIG_VLOCK=y
@ -533,21 +551,21 @@ CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
# CONFIG_MODINFO is not set # CONFIG_MODINFO is not set
CONFIG_MODPROBE=y CONFIG_MODPROBE=y
CONFIG_FEATURE_MODPROBE_BLACKLIST=y CONFIG_FEATURE_MODPROBE_BLACKLIST=y
# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
CONFIG_RMMOD=y CONFIG_RMMOD=y
# #
# Options common to multiple modutils # Options common to multiple modutils
# #
CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y
# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
# CONFIG_FEATURE_2_4_MODULES is not set # CONFIG_FEATURE_2_4_MODULES is not set
# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
CONFIG_FEATURE_CHECK_TAINTED_MODULE=y CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
CONFIG_FEATURE_MODUTILS_ALIAS=y CONFIG_FEATURE_MODUTILS_ALIAS=y
CONFIG_FEATURE_MODUTILS_SYMBOLS=y CONFIG_FEATURE_MODUTILS_SYMBOLS=y
CONFIG_DEFAULT_MODULES_DIR="/lib/modules" CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
@ -562,8 +580,13 @@ CONFIG_BLKDISCARD=y
# CONFIG_BLKID is not set # CONFIG_BLKID is not set
# CONFIG_FEATURE_BLKID_TYPE is not set # CONFIG_FEATURE_BLKID_TYPE is not set
# CONFIG_BLOCKDEV is not set # CONFIG_BLOCKDEV is not set
# CONFIG_CAL is not set
# CONFIG_CHRT is not set
CONFIG_DMESG=y CONFIG_DMESG=y
CONFIG_FEATURE_DMESG_PRETTY=y CONFIG_FEATURE_DMESG_PRETTY=y
CONFIG_EJECT=y
# CONFIG_FEATURE_EJECT_SCSI is not set
CONFIG_FALLOCATE=y
CONFIG_FATATTR=y CONFIG_FATATTR=y
# CONFIG_FBSET is not set # CONFIG_FBSET is not set
# CONFIG_FEATURE_FBSET_FANCY is not set # CONFIG_FEATURE_FBSET_FANCY is not set
@ -583,17 +606,21 @@ CONFIG_FATATTR=y
# CONFIG_FDFLUSH is not set # CONFIG_FDFLUSH is not set
# CONFIG_FREERAMDISK is not set # CONFIG_FREERAMDISK is not set
# CONFIG_FSCK_MINIX is not set # CONFIG_FSCK_MINIX is not set
CONFIG_FSFREEZE=y
# CONFIG_FSTRIM is not set # CONFIG_FSTRIM is not set
# CONFIG_GETOPT is not set # CONFIG_GETOPT is not set
# CONFIG_FEATURE_GETOPT_LONG is not set # CONFIG_FEATURE_GETOPT_LONG is not set
CONFIG_HEXDUMP=y CONFIG_HEXDUMP=y
# CONFIG_FEATURE_HEXDUMP_REVERSE is not set # CONFIG_FEATURE_HEXDUMP_REVERSE is not set
# CONFIG_HD is not set # CONFIG_HD is not set
CONFIG_XXD=y
CONFIG_HWCLOCK=y CONFIG_HWCLOCK=y
CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
# CONFIG_IONICE is not set
# CONFIG_IPCRM is not set # CONFIG_IPCRM is not set
# CONFIG_IPCS is not set # CONFIG_IPCS is not set
# CONFIG_LAST is not set
# CONFIG_FEATURE_LAST_FANCY is not set
# CONFIG_LOSETUP is not set # CONFIG_LOSETUP is not set
# CONFIG_LSPCI is not set # CONFIG_LSPCI is not set
CONFIG_LSUSB=y CONFIG_LSUSB=y
@ -603,6 +630,8 @@ CONFIG_LSUSB=y
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set # CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
CONFIG_MESG=y
CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
CONFIG_MKE2FS=y CONFIG_MKE2FS=y
# CONFIG_MKFS_EXT2 is not set # CONFIG_MKFS_EXT2 is not set
# CONFIG_MKFS_MINIX is not set # CONFIG_MKFS_MINIX is not set
@ -623,12 +652,13 @@ CONFIG_FEATURE_MOUNT_CIFS=y
CONFIG_FEATURE_MOUNT_FLAGS=y CONFIG_FEATURE_MOUNT_FLAGS=y
CONFIG_FEATURE_MOUNT_FSTAB=y CONFIG_FEATURE_MOUNT_FSTAB=y
CONFIG_FEATURE_MOUNT_OTHERTAB=y CONFIG_FEATURE_MOUNT_OTHERTAB=y
# CONFIG_MOUNTPOINT is not set
CONFIG_NSENTER=y CONFIG_NSENTER=y
CONFIG_FEATURE_NSENTER_LONG_OPTS=y
# CONFIG_PIVOT_ROOT is not set # CONFIG_PIVOT_ROOT is not set
# CONFIG_RDATE is not set # CONFIG_RDATE is not set
# CONFIG_RDEV is not set # CONFIG_RDEV is not set
# CONFIG_READPROFILE is not set # CONFIG_READPROFILE is not set
CONFIG_RENICE=y
# CONFIG_REV is not set # CONFIG_REV is not set
# CONFIG_RTCWAKE is not set # CONFIG_RTCWAKE is not set
# CONFIG_SCRIPT is not set # CONFIG_SCRIPT is not set
@ -636,15 +666,24 @@ CONFIG_FEATURE_NSENTER_LONG_OPTS=y
# CONFIG_SETARCH is not set # CONFIG_SETARCH is not set
CONFIG_LINUX32=y CONFIG_LINUX32=y
CONFIG_LINUX64=y CONFIG_LINUX64=y
CONFIG_SETPRIV=y
CONFIG_FEATURE_SETPRIV_DUMP=y
CONFIG_FEATURE_SETPRIV_CAPABILITIES=y
CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y
# CONFIG_SETSID is not set
CONFIG_SWAPON=y CONFIG_SWAPON=y
# CONFIG_FEATURE_SWAPON_DISCARD is not set # CONFIG_FEATURE_SWAPON_DISCARD is not set
# CONFIG_FEATURE_SWAPON_PRI is not set # CONFIG_FEATURE_SWAPON_PRI is not set
CONFIG_SWAPOFF=y CONFIG_SWAPOFF=y
CONFIG_FEATURE_SWAPONOFF_LABEL=y
# CONFIG_SWITCH_ROOT is not set # CONFIG_SWITCH_ROOT is not set
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
CONFIG_UEVENT=y CONFIG_UEVENT=y
CONFIG_UMOUNT=y CONFIG_UMOUNT=y
CONFIG_FEATURE_UMOUNT_ALL=y CONFIG_FEATURE_UMOUNT_ALL=y
CONFIG_UNSHARE=y CONFIG_UNSHARE=y
# CONFIG_WALL is not set
# #
# Common options for mount/umount # Common options for mount/umount
@ -652,7 +691,11 @@ CONFIG_UNSHARE=y
CONFIG_FEATURE_MOUNT_LOOP=y CONFIG_FEATURE_MOUNT_LOOP=y
CONFIG_FEATURE_MOUNT_LOOP_CREATE=y CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
# CONFIG_FEATURE_MTAB_SUPPORT is not set # CONFIG_FEATURE_MTAB_SUPPORT is not set
# CONFIG_VOLUMEID is not set CONFIG_VOLUMEID=y
#
# Filesystem/Volume identification
#
# CONFIG_FEATURE_VOLUMEID_BCACHE is not set # CONFIG_FEATURE_VOLUMEID_BCACHE is not set
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set # CONFIG_FEATURE_VOLUMEID_BTRFS is not set
# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set # CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
@ -663,9 +706,11 @@ CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
# CONFIG_FEATURE_VOLUMEID_HFS is not set # CONFIG_FEATURE_VOLUMEID_HFS is not set
# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set # CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
# CONFIG_FEATURE_VOLUMEID_JFS is not set # CONFIG_FEATURE_VOLUMEID_JFS is not set
# CONFIG_FEATURE_VOLUMEID_LFS is not set
# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set # CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set # CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
# CONFIG_FEATURE_VOLUMEID_LUKS is not set # CONFIG_FEATURE_VOLUMEID_LUKS is not set
CONFIG_FEATURE_VOLUMEID_MINIX=y
# CONFIG_FEATURE_VOLUMEID_NILFS is not set # CONFIG_FEATURE_VOLUMEID_NILFS is not set
# CONFIG_FEATURE_VOLUMEID_NTFS is not set # CONFIG_FEATURE_VOLUMEID_NTFS is not set
# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set # CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
@ -694,11 +739,11 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=0
# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set # CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set # CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
# CONFIG_FEATURE_CHAT_CLR_ABORT is not set # CONFIG_FEATURE_CHAT_CLR_ABORT is not set
# CONFIG_CHRT is not set
# CONFIG_CONSPY is not set # CONFIG_CONSPY is not set
CONFIG_CROND=y CONFIG_CROND=y
CONFIG_FEATURE_CROND_D=y CONFIG_FEATURE_CROND_D=y
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
CONFIG_FEATURE_CROND_SPECIAL_TIMES=y
CONFIG_FEATURE_CROND_DIR="/data/etc" CONFIG_FEATURE_CROND_DIR="/data/etc"
CONFIG_CRONTAB=y CONFIG_CRONTAB=y
# CONFIG_DC is not set # CONFIG_DC is not set
@ -709,8 +754,6 @@ CONFIG_CRONTAB=y
# CONFIG_DEVFSD_VERBOSE is not set # CONFIG_DEVFSD_VERBOSE is not set
# CONFIG_FEATURE_DEVFS is not set # CONFIG_FEATURE_DEVFS is not set
# CONFIG_DEVMEM is not set # CONFIG_DEVMEM is not set
CONFIG_EJECT=y
# CONFIG_FEATURE_EJECT_SCSI is not set
# CONFIG_FBSPLASH is not set # CONFIG_FBSPLASH is not set
# CONFIG_FLASHCP is not set # CONFIG_FLASHCP is not set
# CONFIG_FLASH_ERASEALL is not set # CONFIG_FLASH_ERASEALL is not set
@ -723,14 +766,12 @@ CONFIG_EJECT=y
# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set # CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set # CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set # CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
CONFIG_HEXEDIT=y
CONFIG_I2CGET=y CONFIG_I2CGET=y
CONFIG_I2CSET=y CONFIG_I2CSET=y
CONFIG_I2CDUMP=y CONFIG_I2CDUMP=y
CONFIG_I2CDETECT=y CONFIG_I2CDETECT=y
# CONFIG_INOTIFYD is not set # CONFIG_INOTIFYD is not set
# CONFIG_IONICE is not set
# CONFIG_LAST is not set
# CONFIG_FEATURE_LAST_FANCY is not set
CONFIG_LESS=y CONFIG_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999 CONFIG_FEATURE_LESS_MAXLINES=9999999
CONFIG_FEATURE_LESS_BRACKETS=y CONFIG_FEATURE_LESS_BRACKETS=y
@ -742,27 +783,27 @@ CONFIG_FEATURE_LESS_REGEXP=y
# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set # CONFIG_FEATURE_LESS_ASK_TERMINAL is not set
# CONFIG_FEATURE_LESS_DASHCMD is not set # CONFIG_FEATURE_LESS_DASHCMD is not set
# CONFIG_FEATURE_LESS_LINENUMS is not set # CONFIG_FEATURE_LESS_LINENUMS is not set
# CONFIG_FEATURE_LESS_RAW is not set
# CONFIG_FEATURE_LESS_ENV is not set
CONFIG_LSSCSI=y
CONFIG_MAKEDEVS=y CONFIG_MAKEDEVS=y
# CONFIG_FEATURE_MAKEDEVS_LEAF is not set # CONFIG_FEATURE_MAKEDEVS_LEAF is not set
CONFIG_FEATURE_MAKEDEVS_TABLE=y CONFIG_FEATURE_MAKEDEVS_TABLE=y
# CONFIG_MAN is not set # CONFIG_MAN is not set
# CONFIG_MICROCOM is not set # CONFIG_MICROCOM is not set
# CONFIG_MOUNTPOINT is not set
# CONFIG_MT is not set # CONFIG_MT is not set
# CONFIG_NANDWRITE is not set # CONFIG_NANDWRITE is not set
# CONFIG_NANDDUMP is not set # CONFIG_NANDDUMP is not set
CONFIG_PARTPROBE=y
# CONFIG_RAIDAUTORUN is not set # CONFIG_RAIDAUTORUN is not set
# CONFIG_READAHEAD is not set # CONFIG_READAHEAD is not set
# CONFIG_RFKILL is not set # CONFIG_RFKILL is not set
# CONFIG_RUNLEVEL is not set # CONFIG_RUNLEVEL is not set
# CONFIG_RX is not set # CONFIG_RX is not set
CONFIG_SETFATTR=y
# CONFIG_SETSERIAL is not set # CONFIG_SETSERIAL is not set
# CONFIG_SETSID is not set
# CONFIG_STRINGS is not set # CONFIG_STRINGS is not set
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
CONFIG_TIME=y CONFIG_TIME=y
CONFIG_TIMEOUT=y
# CONFIG_TTYSIZE is not set # CONFIG_TTYSIZE is not set
CONFIG_UBIRENAME=y CONFIG_UBIRENAME=y
# CONFIG_UBIATTACH is not set # CONFIG_UBIATTACH is not set
@ -772,7 +813,6 @@ CONFIG_UBIRENAME=y
# CONFIG_UBIRSVOL is not set # CONFIG_UBIRSVOL is not set
# CONFIG_UBIUPDATEVOL is not set # CONFIG_UBIUPDATEVOL is not set
# CONFIG_VOLNAME is not set # CONFIG_VOLNAME is not set
# CONFIG_WALL is not set
CONFIG_WATCHDOG=y CONFIG_WATCHDOG=y
# #
@ -849,13 +889,14 @@ CONFIG_FEATURE_IP_RULE=y
CONFIG_FEATURE_IP_NEIGH=y CONFIG_FEATURE_IP_NEIGH=y
# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
# CONFIG_IPCALC is not set # CONFIG_IPCALC is not set
# CONFIG_FEATURE_IPCALC_FANCY is not set
# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
# CONFIG_FEATURE_IPCALC_FANCY is not set
# CONFIG_FAKEIDENTD is not set # CONFIG_FAKEIDENTD is not set
CONFIG_NAMEIF=y CONFIG_NAMEIF=y
# CONFIG_FEATURE_NAMEIF_EXTENDED is not set # CONFIG_FEATURE_NAMEIF_EXTENDED is not set
# CONFIG_NBDCLIENT is not set # CONFIG_NBDCLIENT is not set
# CONFIG_NC is not set # CONFIG_NC is not set
# CONFIG_NETCAT is not set
# CONFIG_NC_SERVER is not set # CONFIG_NC_SERVER is not set
# CONFIG_NC_EXTRA is not set # CONFIG_NC_EXTRA is not set
# CONFIG_NC_110_COMPAT is not set # CONFIG_NC_110_COMPAT is not set
@ -863,6 +904,8 @@ CONFIG_NETSTAT=y
# CONFIG_FEATURE_NETSTAT_WIDE is not set # CONFIG_FEATURE_NETSTAT_WIDE is not set
# CONFIG_FEATURE_NETSTAT_PRG is not set # CONFIG_FEATURE_NETSTAT_PRG is not set
CONFIG_NSLOOKUP=y CONFIG_NSLOOKUP=y
CONFIG_FEATURE_NSLOOKUP_BIG=y
CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y
# CONFIG_NTPD is not set # CONFIG_NTPD is not set
# CONFIG_FEATURE_NTPD_SERVER is not set # CONFIG_FEATURE_NTPD_SERVER is not set
# CONFIG_FEATURE_NTPD_CONF is not set # CONFIG_FEATURE_NTPD_CONF is not set
@ -872,21 +915,26 @@ CONFIG_FEATURE_FANCY_PING=y
# CONFIG_PSCAN is not set # CONFIG_PSCAN is not set
CONFIG_ROUTE=y CONFIG_ROUTE=y
# CONFIG_SLATTACH is not set # CONFIG_SLATTACH is not set
CONFIG_SSL_CLIENT=y
CONFIG_TC=y
CONFIG_FEATURE_TC_INGRESS=y
# CONFIG_TCPSVD is not set # CONFIG_TCPSVD is not set
# CONFIG_UDPSVD is not set # CONFIG_UDPSVD is not set
# CONFIG_TELNET is not set # CONFIG_TELNET is not set
# CONFIG_FEATURE_TELNET_TTYPE is not set # CONFIG_FEATURE_TELNET_TTYPE is not set
# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set # CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
# CONFIG_FEATURE_TELNET_WIDTH is not set
# CONFIG_TELNETD is not set # CONFIG_TELNETD is not set
# CONFIG_FEATURE_TELNETD_STANDALONE is not set # CONFIG_FEATURE_TELNETD_STANDALONE is not set
# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
# CONFIG_TFTP is not set # CONFIG_TFTP is not set
# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
# CONFIG_TFTPD is not set # CONFIG_TFTPD is not set
# CONFIG_FEATURE_TFTP_GET is not set # CONFIG_FEATURE_TFTP_GET is not set
# CONFIG_FEATURE_TFTP_PUT is not set # CONFIG_FEATURE_TFTP_PUT is not set
# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set # CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
# CONFIG_TFTP_DEBUG is not set # CONFIG_TFTP_DEBUG is not set
CONFIG_TLS=y
CONFIG_TRACEROUTE=y CONFIG_TRACEROUTE=y
# CONFIG_TRACEROUTE6 is not set # CONFIG_TRACEROUTE6 is not set
# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
@ -895,30 +943,34 @@ CONFIG_TRACEROUTE=y
# CONFIG_FEATURE_TUNCTL_UG is not set # CONFIG_FEATURE_TUNCTL_UG is not set
# CONFIG_VCONFIG is not set # CONFIG_VCONFIG is not set
# CONFIG_WGET is not set # CONFIG_WGET is not set
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_FEATURE_WGET_STATUSBAR is not set # CONFIG_FEATURE_WGET_STATUSBAR is not set
# CONFIG_FEATURE_WGET_AUTHENTICATION is not set # CONFIG_FEATURE_WGET_AUTHENTICATION is not set
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_FEATURE_WGET_TIMEOUT is not set # CONFIG_FEATURE_WGET_TIMEOUT is not set
# CONFIG_FEATURE_WGET_HTTPS is not set
# CONFIG_FEATURE_WGET_OPENSSL is not set # CONFIG_FEATURE_WGET_OPENSSL is not set
# CONFIG_FEATURE_WGET_SSL_HELPER is not set
# CONFIG_WHOIS is not set # CONFIG_WHOIS is not set
# CONFIG_ZCIP is not set # CONFIG_ZCIP is not set
# CONFIG_UDHCPC6 is not set
# CONFIG_UDHCPD is not set # CONFIG_UDHCPD is not set
# CONFIG_DHCPRELAY is not set
# CONFIG_DUMPLEASES is not set
# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
CONFIG_DHCPD_LEASES_FILE="" CONFIG_DHCPD_LEASES_FILE=""
# CONFIG_DUMPLEASES is not set
# CONFIG_DHCPRELAY is not set
# CONFIG_UDHCPC is not set # CONFIG_UDHCPC is not set
# CONFIG_FEATURE_UDHCPC_ARPING is not set # CONFIG_FEATURE_UDHCPC_ARPING is not set
# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set # CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set
CONFIG_UDHCPC_DEFAULT_SCRIPT=""
# CONFIG_UDHCPC6 is not set
# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set
# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set
# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set
# CONFIG_FEATURE_UDHCPC6_RFC5970 is not set
# CONFIG_FEATURE_UDHCP_PORT is not set # CONFIG_FEATURE_UDHCP_PORT is not set
CONFIG_UDHCP_DEBUG=0 CONFIG_UDHCP_DEBUG=0
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
# CONFIG_FEATURE_UDHCP_RFC3397 is not set # CONFIG_FEATURE_UDHCP_RFC3397 is not set
# CONFIG_FEATURE_UDHCP_8021Q is not set # CONFIG_FEATURE_UDHCP_8021Q is not set
CONFIG_UDHCPC_DEFAULT_SCRIPT=""
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
# #
@ -958,18 +1010,19 @@ CONFIG_FEATURE_PIDOF_SINGLE=y
CONFIG_FEATURE_PIDOF_OMIT=y CONFIG_FEATURE_PIDOF_OMIT=y
# CONFIG_PMAP is not set # CONFIG_PMAP is not set
# CONFIG_POWERTOP is not set # CONFIG_POWERTOP is not set
# CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set
CONFIG_PS=y CONFIG_PS=y
# CONFIG_FEATURE_PS_WIDE is not set # CONFIG_FEATURE_PS_WIDE is not set
# CONFIG_FEATURE_PS_LONG is not set # CONFIG_FEATURE_PS_LONG is not set
# CONFIG_FEATURE_PS_TIME is not set # CONFIG_FEATURE_PS_TIME is not set
# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
# CONFIG_PSTREE is not set # CONFIG_PSTREE is not set
# CONFIG_PWDX is not set # CONFIG_PWDX is not set
CONFIG_RENICE=y
# CONFIG_SMEMCAP is not set # CONFIG_SMEMCAP is not set
CONFIG_BB_SYSCTL=y CONFIG_BB_SYSCTL=y
CONFIG_TOP=y CONFIG_TOP=y
CONFIG_FEATURE_TOP_INTERACTIVE=y
CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
# CONFIG_FEATURE_TOP_SMP_CPU is not set # CONFIG_FEATURE_TOP_SMP_CPU is not set
@ -995,15 +1048,14 @@ CONFIG_WATCH=y
# CONFIG_SV is not set # CONFIG_SV is not set
CONFIG_SV_DEFAULT_SERVICE_DIR="" CONFIG_SV_DEFAULT_SERVICE_DIR=""
CONFIG_SVC=y CONFIG_SVC=y
CONFIG_SVOK=y
# CONFIG_SVLOGD is not set # CONFIG_SVLOGD is not set
# CONFIG_CHCON is not set # CONFIG_CHCON is not set
# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
# CONFIG_GETENFORCE is not set # CONFIG_GETENFORCE is not set
# CONFIG_GETSEBOOL is not set # CONFIG_GETSEBOOL is not set
# CONFIG_LOAD_POLICY is not set # CONFIG_LOAD_POLICY is not set
# CONFIG_MATCHPATHCON is not set # CONFIG_MATCHPATHCON is not set
# CONFIG_RUNCON is not set # CONFIG_RUNCON is not set
# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
# CONFIG_SELINUXENABLED is not set # CONFIG_SELINUXENABLED is not set
# CONFIG_SESTATUS is not set # CONFIG_SESTATUS is not set
# CONFIG_SETENFORCE is not set # CONFIG_SETENFORCE is not set
@ -1024,24 +1076,27 @@ CONFIG_BASH_IS_NONE=y
# CONFIG_ASH is not set # CONFIG_ASH is not set
# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
CONFIG_ASH_INTERNAL_GLOB=y CONFIG_ASH_INTERNAL_GLOB=y
# CONFIG_ASH_RANDOM_SUPPORT is not set
# CONFIG_ASH_EXPAND_PRMT is not set
# CONFIG_ASH_BASH_COMPAT is not set # CONFIG_ASH_BASH_COMPAT is not set
# CONFIG_ASH_IDLE_TIMEOUT is not set # CONFIG_ASH_BASH_SOURCE_CURDIR is not set
# CONFIG_ASH_BASH_NOT_FOUND_HOOK is not set
# CONFIG_ASH_JOB_CONTROL is not set # CONFIG_ASH_JOB_CONTROL is not set
# CONFIG_ASH_ALIAS is not set # CONFIG_ASH_ALIAS is not set
# CONFIG_ASH_GETOPTS is not set # CONFIG_ASH_RANDOM_SUPPORT is not set
# CONFIG_ASH_BUILTIN_ECHO is not set # CONFIG_ASH_EXPAND_PRMT is not set
# CONFIG_ASH_BUILTIN_PRINTF is not set # CONFIG_ASH_IDLE_TIMEOUT is not set
# CONFIG_ASH_BUILTIN_TEST is not set
# CONFIG_ASH_HELP is not set
# CONFIG_ASH_CMDCMD is not set
# CONFIG_ASH_MAIL is not set # CONFIG_ASH_MAIL is not set
CONFIG_ASH_ECHO=y
CONFIG_ASH_PRINTF=y
CONFIG_ASH_TEST=y
# CONFIG_ASH_HELP is not set
# CONFIG_ASH_GETOPTS is not set
# CONFIG_ASH_CMDCMD is not set
# CONFIG_CTTYHACK is not set # CONFIG_CTTYHACK is not set
# CONFIG_HUSH is not set # CONFIG_HUSH is not set
# CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BASH_COMPAT is not set
# CONFIG_HUSH_BRACE_EXPANSION is not set # CONFIG_HUSH_BRACE_EXPANSION is not set
# CONFIG_HUSH_HELP is not set # CONFIG_HUSH_LINENO_VAR is not set
# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set
# CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_INTERACTIVE is not set
# CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_SAVEHISTORY is not set
# CONFIG_HUSH_JOB is not set # CONFIG_HUSH_JOB is not set
@ -1052,14 +1107,37 @@ CONFIG_ASH_INTERNAL_GLOB=y
# CONFIG_HUSH_FUNCTIONS is not set # CONFIG_HUSH_FUNCTIONS is not set
# CONFIG_HUSH_LOCAL is not set # CONFIG_HUSH_LOCAL is not set
# CONFIG_HUSH_RANDOM_SUPPORT is not set # CONFIG_HUSH_RANDOM_SUPPORT is not set
# CONFIG_HUSH_EXPORT_N is not set
# CONFIG_HUSH_MODE_X is not set # CONFIG_HUSH_MODE_X is not set
# CONFIG_MSH is not set # CONFIG_HUSH_ECHO is not set
# CONFIG_HUSH_PRINTF is not set
# CONFIG_HUSH_TEST is not set
# CONFIG_HUSH_HELP is not set
# CONFIG_HUSH_EXPORT is not set
# CONFIG_HUSH_EXPORT_N is not set
# CONFIG_HUSH_READONLY is not set
# CONFIG_HUSH_KILL is not set
# CONFIG_HUSH_WAIT is not set
# CONFIG_HUSH_COMMAND is not set
# CONFIG_HUSH_TRAP is not set
# CONFIG_HUSH_TYPE is not set
# CONFIG_HUSH_TIMES is not set
# CONFIG_HUSH_READ is not set
# CONFIG_HUSH_SET is not set
# CONFIG_HUSH_UNSET is not set
# CONFIG_HUSH_ULIMIT is not set
# CONFIG_HUSH_UMASK is not set
# CONFIG_HUSH_GETOPTS is not set
# CONFIG_HUSH_MEMLEAK is not set
#
# Options common to all shells
#
CONFIG_FEATURE_SH_MATH=y CONFIG_FEATURE_SH_MATH=y
CONFIG_FEATURE_SH_MATH_64=y CONFIG_FEATURE_SH_MATH_64=y
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set # CONFIG_FEATURE_SH_EXTRA_QUIET is not set
# CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_STANDALONE is not set
# CONFIG_FEATURE_SH_NOFORK is not set # CONFIG_FEATURE_SH_NOFORK is not set
CONFIG_FEATURE_SH_READ_FRAC=y
# CONFIG_FEATURE_SH_HISTFILESIZE is not set # CONFIG_FEATURE_SH_HISTFILESIZE is not set
# #

View File

@ -2,6 +2,8 @@
test -n "$os_version" || source /etc/init.d/base test -n "$os_version" || source /etc/init.d/base
case "$1" in
start)
msg_begin "Detecting disk device" msg_begin "Detecting disk device"
root_dev=$(cat /proc/cmdline | grep -oE 'root=[/a-z0-9]+' | cut -d '=' -f 2) root_dev=$(cat /proc/cmdline | grep -oE 'root=[/a-z0-9]+' | cut -d '=' -f 2)
if [[ "$root_dev" =~ ^([/a-z0-9]+)(p[0-9])$ ]]; then # e.g. /dev/mmcblk0p2 if [[ "$root_dev" =~ ^([/a-z0-9]+)(p[0-9])$ ]]; then # e.g. /dev/mmcblk0p2
@ -20,8 +22,6 @@ msg_done "$disk_dev"
test -b $data_dev && exit 0 test -b $data_dev && exit 0
case "$1" in
start)
msg_begin "Creating data partition" msg_begin "Creating data partition"
root_end=$(partx -s -g -o END $root_dev) root_end=$(partx -s -g -o END $root_dev)
data_start=$(($root_end + 1)) data_start=$(($root_end + 1))
@ -68,5 +68,3 @@ case "$1" in
exit 1 exit 1
esac esac
# always exit with a successful status
exit 0

View File

@ -6,7 +6,7 @@ mount_fs() {
msg_begin "Mounting filesystems" msg_begin "Mounting filesystems"
/bin/mount -T /etc/fstab.disk -a && /bin/mount -T /etc/fstab.disk -a &&
/bin/mount -T /etc/fstab.extra -a && /bin/mount -T /etc/fstab.extra -a &&
if [ -r /data/etc/fstab.user ]; then /bin/mount -T /data/etc/fstab.user -a; fi if [[ -r /data/etc/fstab.user ]]; then /bin/mount -T /data/etc/fstab.user -a; fi
test $? == 0 && msg_done || msg_fail test $? == 0 && msg_done || msg_fail
} }
@ -29,6 +29,8 @@ mk_tty_login() {
case "$1" in case "$1" in
start) start)
mount_fs mount_fs
# we need to source conf again, now that /data is available
test -n "$os_debug" || source /etc/init.d/conf test -n "$os_debug" || source /etc/init.d/conf
test "$os_debug" == "true" && remount_rw test "$os_debug" == "true" && remount_rw
mk_tty_login mk_tty_login

View File

@ -9,11 +9,11 @@ case "$1" in
start) start)
msg_begin "Loading kernel modules" msg_begin "Loading kernel modules"
if [ -r $sys_modules_file ]; then if [[ -r $sys_modules_file ]]; then
cat $sys_modules_file | while read line; do test -n "$line" && /sbin/modprobe $line &>/dev/null; done cat $sys_modules_file | while read line; do test -n "$line" && /sbin/modprobe $line &>/dev/null; done
fi fi
if [ -r $modules_file ]; then if [[ -r $modules_file ]]; then
cat $modules_file | while read line; do test -n "$line" && /sbin/modprobe $line &>/dev/null; done cat $modules_file | while read line; do test -n "$line" && /sbin/modprobe $line &>/dev/null; done
fi fi

View File

@ -10,15 +10,15 @@ case "$1" in
start) start)
msg_begin "Setting hostname" msg_begin "Setting hostname"
if ! [ -f $hostname_file ]; then if ! [[ -f $hostname_file ]]; then
if [ -f $boot_hostname_file ]; then if [[ -f $boot_hostname_file ]]; then
cp $boot_hostname_file $hostname_file cp $boot_hostname_file $hostname_file
elif [ -f $sys_hostname_file ]; then elif [[ -f $sys_hostname_file ]]; then
cp $sys_hostname_file $hostname_file cp $sys_hostname_file $hostname_file
fi fi
fi fi
if [ -f $hostname_file ]; then if [[ -f $hostname_file ]]; then
hostname=$(cat $hostname_file) hostname=$(cat $hostname_file)
else else
hostname="$os_prefix-$board_sn" hostname="$os_prefix-$board_sn"

View File

@ -16,7 +16,7 @@ test "$hash" == "$sys_hash" && exit 0
test -d $post_upgrade_dir || exit 0 test -d $post_upgrade_dir || exit 0
function version_gt() { function version_gt() {
if [ "$1" != "$2" ] && [ $(echo -e "$2\n$1" | sort -t . | head -n 1) == "$2" ]; then if [[ "$1" != "$2" ]] && [[ $(echo -e "$2\n$1" | sort -t . | head -n 1) == "$2" ]]; then
return 0 return 0
else else
return 1 return 1
@ -29,7 +29,7 @@ function run_post_upgrade() {
versions=$(ls -1 $post_upgrade_dir | cut -d '.' -f 1) versions=$(ls -1 $post_upgrade_dir | cut -d '.' -f 1)
for v in $versions; do for v in $versions; do
if [ -z "$version" ] || version_gt $v $version; then if [[ -z "$version" ]] || version_gt $v $version; then
msg_begin "Post-upgrading to version $v" msg_begin "Post-upgrading to version $v"
out=$($post_upgrade_dir/$v.sh 2>&1) out=$($post_upgrade_dir/$v.sh 2>&1)
test $? == 0 && msg_done || msg_fail test $? == 0 && msg_done || msg_fail

View File

@ -13,6 +13,7 @@ test -n "$os_version" || source /etc/init.d/base
start() { start() {
mkdir -p /tmp/dbus mkdir -p /tmp/dbus
mkdir -p /var/lib/dbus
msg_begin "Starting dbus" msg_begin "Starting dbus"

View File

@ -14,10 +14,10 @@ link_watch_timeout=20
test -f $watch_conf && source $watch_conf test -f $watch_conf && source $watch_conf
if ! [ -f $conf ]; then if ! [[ -f $conf ]]; then
if [ -f $boot_conf ]; then if [[ -f $boot_conf ]]; then
cp $boot_conf $conf cp $boot_conf $conf
elif [ -f $sys_conf ]; then elif [[ -f $sys_conf ]]; then
cp $sys_conf $conf cp $sys_conf $conf
fi fi
fi fi
@ -34,8 +34,8 @@ watch() {
while true; do while true; do
sleep 5 sleep 5
if ! running; then if ! running; then
logger -t hostapd -s "dead, rebooting" logger -t hostapd -s "dead, calling panic action"
reboot panic_action hostapd
break break
fi fi
done done
@ -49,7 +49,7 @@ start() {
while ! ifconfig $iface >/dev/null 2>&1; do while ! ifconfig $iface >/dev/null 2>&1; do
sleep 1 sleep 1
count=$(($count + 1)) count=$(($count + 1))
if [ $count -ge 5 ]; then if [[ $count -ge 5 ]]; then
msg_fail "no device" msg_fail "no device"
return 1 return 1
fi fi
@ -61,7 +61,7 @@ start() {
iwconfig $iface power off &> /dev/null iwconfig $iface power off &> /dev/null
$prog $conf &> $log & $prog $conf &> $log &
if [ "$link_watch" == "yes" ]; then if [[ "$link_watch" == "yes" ]]; then
watch & watch &
fi fi

View File

@ -12,20 +12,20 @@ sys_watch_conf="/etc/watch.conf"
boot_watch_conf="/boot/watch.conf" boot_watch_conf="/boot/watch.conf"
watch_conf="/data/etc/watch.conf" watch_conf="/data/etc/watch.conf"
if ! [ -f $watch_conf ]; then if ! [[ -f $watch_conf ]]; then
if [ -f $boot_watch_conf ]; then if [[ -f $boot_watch_conf ]]; then
cp $boot_watch_conf $watch_conf cp $boot_watch_conf $watch_conf
elif [ -f $sys_watch_conf ]; then elif [[ -f $sys_watch_conf ]]; then
cp $sys_watch_conf $watch_conf cp $sys_watch_conf $watch_conf
fi fi
fi fi
source $watch_conf source $watch_conf
if ! [ -f $conf ]; then if ! [[ -f $conf ]]; then
if [ -f $boot_conf ]; then if [[ -f $boot_conf ]]; then
cp $boot_conf $conf cp $boot_conf $conf
elif [ -f $sys_conf ]; then elif [[ -f $sys_conf ]]; then
cp $sys_conf $conf cp $sys_conf $conf
fi fi
fi fi
@ -39,7 +39,6 @@ ssid=$(cat $conf | grep ssid | grep -v scan_ssid | cut -d '"' -f 2)
test -n "$ssid" || exit 0 test -n "$ssid" || exit 0
test -n "$os_version" || source /etc/init.d/base test -n "$os_version" || source /etc/init.d/base
test -n "$os_debug" || source /etc/init.d/conf
test "$os_networkless" == "true" && exit 0 test "$os_networkless" == "true" && exit 0
@ -54,12 +53,12 @@ watch() {
if connected; then if connected; then
count=0 count=0
else else
if [ $count -lt $link_watch_timeout ]; then if [[ $count -lt $link_watch_timeout ]]; then
count=$(($count + 5)) count=$(($count + 5))
logger -t wifi -s "disconnected" logger -t wifi -s "disconnected"
else else
logger -t wifi -s "disconnected for $link_watch_timeout seconds, rebooting" logger -t wifi -s "disconnected for $link_watch_timeout seconds, calling panic action"
reboot panic_action wifi
fi fi
fi fi
done done
@ -75,7 +74,7 @@ start() {
while ! ifconfig $os_wlan >/dev/null 2>&1; do while ! ifconfig $os_wlan >/dev/null 2>&1; do
sleep 1 sleep 1
count=$(($count + 1)) count=$(($count + 1))
if [ $count -ge 5 ]; then if [[ $count -ge 5 ]]; then
msg_fail "no device" msg_fail "no device"
return 1 return 1
fi fi
@ -94,7 +93,7 @@ start() {
break break
fi fi
if [ $count -gt $link_watch_timeout ] || ! pidof wpa_supplicant > /dev/null; then if [[ $count -gt $link_watch_timeout ]] || ! pidof wpa_supplicant > /dev/null; then
test -n "$module" && msg_fail "failed ($module)"|| msg_fail test -n "$module" && msg_fail "failed ($module)"|| msg_fail
return 1 return 1
fi fi
@ -102,7 +101,7 @@ start() {
count=$(($count + 1)) count=$(($count + 1))
done done
if [ "$link_watch" == "true" ]; then if [[ "$link_watch" == "true" ]]; then
watch & watch &
fi fi

View File

@ -11,10 +11,10 @@ watch_conf="/data/etc/watch.conf"
source $watch_conf source $watch_conf
if ! [ -d $conf ]; then if ! [[ -d $conf ]]; then
if [ -d $boot_conf ]; then if [[ -d $boot_conf ]]; then
cp -r $boot_conf $conf cp -r $boot_conf $conf
elif [ -d $sys_conf ]; then elif [[ -d $sys_conf ]]; then
cp -r $sys_conf $conf cp -r $sys_conf $conf
fi fi
fi fi
@ -23,7 +23,6 @@ test -e $conf/modem || exit 0
test -e $conf/apn || exit 0 test -e $conf/apn || exit 0
test -n "$os_version" || source /etc/init.d/base test -n "$os_version" || source /etc/init.d/base
test -n "$os_debug" || source /etc/init.d/conf
test "$os_networkless" == "true" && exit 0 test "$os_networkless" == "true" && exit 0
@ -38,12 +37,12 @@ watch() {
if connected; then if connected; then
count=0 count=0
else else
if [ $count -lt $link_watch_timeout ]; then if [[ $count -lt $link_watch_timeout ]]; then
count=$(($count + 5)) count=$(($count + 5))
logger -t ppp -s "disconnected" logger -t ppp -s "disconnected"
else else
logger -t ppp -s "disconnected for $link_watch_timeout seconds, rebooting" logger -t ppp -s "disconnected for $link_watch_timeout seconds, calling panic action"
reboot panic_action ppp
fi fi
fi fi
done done
@ -65,13 +64,13 @@ start() {
# wait for modem # wait for modem
modem=$(head -n 1 $conf/modem) modem=$(head -n 1 $conf/modem)
if ! [ -e /dev/$modem ]; then if ! [[ -e /dev/$modem ]]; then
udev_trigger_add 4 & udev_trigger_add 4 &
fi fi
count=0 count=0
while true; do while true; do
if [ -e /dev/$modem ] || [ $count -gt $link_watch_timeout ]; then if [[ -e /dev/$modem ]] || [[ $count -gt $link_watch_timeout ]]; then
break break
fi fi
@ -79,7 +78,7 @@ start() {
sleep 1 sleep 1
done done
if ! [ -e /dev/$modem ]; then if ! [[ -e /dev/$modem ]]; then
msg_fail "modem /dev/$modem not present" msg_fail "modem /dev/$modem not present"
return return
fi fi
@ -93,7 +92,7 @@ start() {
break break
fi fi
if [ $count -gt $link_watch_timeout ] || ! pidof pppd > /dev/null; then if [[ $count -gt $link_watch_timeout ]] || ! pidof pppd > /dev/null; then
msg_fail msg_fail
return return
fi fi
@ -101,7 +100,7 @@ start() {
count=$(($count + 1)) count=$(($count + 1))
done done
if [ "$link_watch" == "true" ]; then if [[ "$link_watch" == "true" ]]; then
watch & watch &
fi fi

View File

@ -4,10 +4,10 @@ sys_conf="/etc/bluetooth.conf"
boot_conf="/boot/bluetooth.conf" boot_conf="/boot/bluetooth.conf"
conf="/data/etc/bluetooth.conf" conf="/data/etc/bluetooth.conf"
if ! [ -f $conf ]; then if ! [[ -f $conf ]]; then
if [ -f $boot_conf ]; then if [[ -f $boot_conf ]]; then
cp $boot_conf $conf cp $boot_conf $conf
elif [ -f $sys_conf ]; then elif [[ -f $sys_conf ]]; then
cp $sys_conf $conf cp $sys_conf $conf
fi fi
fi fi
@ -46,10 +46,10 @@ start() {
while ! hciconfig $hci &>/dev/null; do while ! hciconfig $hci &>/dev/null; do
sleep 1 sleep 1
count=$(($count + 1)) count=$(($count + 1))
if [ $count -ge 10 ]; then if [[ $count -ge 10 ]]; then
msg_fail "no device" msg_fail "no device"
logger -t bluetooth -s "bluetooth device not available, rebooting" logger -t bluetooth -s "bluetooth device not available, calling panic action"
reboot panic_action bluetooth
return 1 return 1
fi fi
done done

View File

@ -11,10 +11,10 @@ link_nego_timeout=10
source $watch_conf source $watch_conf
if ! [ -f $static_conf ]; then if ! [[ -f $static_conf ]]; then
if [ -f $boot_static_conf ]; then if [[ -f $boot_static_conf ]]; then
cp $boot_static_conf $static_conf cp $boot_static_conf $static_conf
elif [ -f $sys_static_conf ]; then elif [[ -f $sys_static_conf ]]; then
cp $sys_static_conf $static_conf cp $sys_static_conf $static_conf
fi fi
fi fi
@ -22,21 +22,20 @@ fi
test -r $static_conf && source $static_conf test -r $static_conf && source $static_conf
test -n "$os_version" || source /etc/init.d/base test -n "$os_version" || source /etc/init.d/base
test -n "$os_debug" || source /etc/init.d/conf
watch_eth() { watch_eth() {
count=0 count=0
while true; do while true; do
sleep 5 sleep 5
if [ "$(cat /sys/class/net/$os_eth/operstate 2>/dev/null)" == "up" ]; then if [[ "$(cat /sys/class/net/$os_eth/operstate 2>/dev/null)" == "up" ]]; then
count=0 count=0
else else
if [ $count -lt $link_watch_timeout ]; then if [[ $count -lt $link_watch_timeout ]]; then
count=$(($count + 5)) count=$(($count + 5))
logger -t ethernet -s "disconnected" logger -t ethernet -s "disconnected"
else else
logger -t ethernet -s "disconnected for $link_watch_timeout seconds, rebooting" logger -t ethernet -s "disconnected for $link_watch_timeout seconds, calling panic action"
reboot panic_action network
fi fi
fi fi
done done
@ -50,12 +49,12 @@ watch_ip() {
if ip addr show dev $iface | grep inet &>/dev/null; then if ip addr show dev $iface | grep inet &>/dev/null; then
count=0 count=0
else else
if [ $count -lt $ip_watch_timeout ]; then if [[ $count -lt $ip_watch_timeout ]]; then
count=$(($count + 5)) count=$(($count + 5))
logger -t network -s "$iface has no IP address" logger -t network -s "$iface has no IP address"
else else
logger -t network -s "$iface had no IP address for $ip_watch_timeout seconds, rebooting" logger -t network -s "$iface had no IP address for $ip_watch_timeout seconds, calling panic action"
reboot panic_action network
fi fi
fi fi
done done
@ -72,16 +71,16 @@ start_wlan() {
return 1 return 1
fi fi
if [ "$(cat /sys/class/net/$os_wlan/carrier 2>/dev/null)" != "1" ]; then if [[ "$(cat /sys/class/net/$os_wlan/carrier 2>/dev/null)" != "1" ]]; then
msg_fail "no link" msg_fail "no link"
return 1 return 1
fi fi
if [ -n "$mtu" ]; then if [[ -n "$mtu" ]]; then
ip link set mtu $mtu dev $os_wlan ip link set mtu $mtu dev $os_wlan
fi fi
if [ -n "$static_ip" ]; then if [[ -n "$static_ip" ]]; then
msg_done $static_ip msg_done $static_ip
ifconfig $os_wlan $static_ip up ifconfig $os_wlan $static_ip up
static_ip="" # won't be used again static_ip="" # won't be used again
@ -90,7 +89,7 @@ start_wlan() {
dhclient -cf "$dh_conf" $os_wlan dhclient -cf "$dh_conf" $os_wlan
fi fi
if [ "$ip_watch" == "true" ] && ip addr show dev $os_wlan | grep inet &>/dev/null; then if [[ "$ip_watch" == "true" ]] && ip addr show dev $os_wlan | grep inet &>/dev/null; then
watch_ip $os_wlan & watch_ip $os_wlan &
fi fi
} }
@ -104,7 +103,7 @@ start_eth() {
while ! ifconfig $os_eth >/dev/null 2>&1; do while ! ifconfig $os_eth >/dev/null 2>&1; do
sleep 1 sleep 1
count=$(($count + 1)) count=$(($count + 1))
if [ $count -ge $w ]; then if [[ $count -ge $w ]]; then
msg_done "no device" msg_done "no device"
return 1 return 1
fi fi
@ -116,10 +115,10 @@ start_eth() {
# wait for operstate # wait for operstate
w=3 w=3
count=0 count=0
while [ "$(cat /sys/class/net/$os_eth/operstate 2>&1)" == "unknown" ]; do while [[ "$(cat /sys/class/net/$os_eth/operstate 2>&1)" == "unknown" ]]; do
sleep 1 sleep 1
count=$(($count + 1)) count=$(($count + 1))
if [ $count -ge $w ]; then if [[ $count -ge $w ]]; then
msg_done "no link" msg_done "no link"
return 1 return 1
fi fi
@ -128,20 +127,20 @@ start_eth() {
# wait for link # wait for link
test "$link_watch" == "true" || link_nego_timeout=5 test "$link_watch" == "true" || link_nego_timeout=5
count=0 count=0
while [ "$(cat /sys/class/net/$os_eth/carrier 2>&1)" != "1" ]; do while [[ "$(cat /sys/class/net/$os_eth/carrier 2>&1)" != "1" ]]; do
sleep 1 sleep 1
count=$(($count + 1)) count=$(($count + 1))
if [ $count -ge $link_nego_timeout ]; then if [[ $count -ge $link_nego_timeout ]]; then
msg_done "no link" msg_done "no link"
return 1 return 1
fi fi
done done
if [ -n "$mtu" ]; then if [[ -n "$mtu" ]]; then
ip link set mtu $mtu dev $os_eth ip link set mtu $mtu dev $os_eth
fi fi
if [ -n "$static_ip" ]; then if [[ -n "$static_ip" ]]; then
msg_done $static_ip msg_done $static_ip
ifconfig $os_eth $static_ip up ifconfig $os_eth $static_ip up
static_ip="" # won't be used again static_ip="" # won't be used again
@ -150,11 +149,11 @@ start_eth() {
dhclient -cf "$dh_conf" $os_eth dhclient -cf "$dh_conf" $os_eth
fi fi
if [ "$link_watch" == "true" ]; then if [[ "$link_watch" == "true" ]]; then
watch_eth & watch_eth &
fi fi
if [ "$ip_watch" == "true" ] && ip addr show dev $os_eth | grep inet &>/dev/null; then if [[ "$ip_watch" == "true" ]] && ip addr show dev $os_eth | grep inet &>/dev/null; then
watch_ip $os_eth & watch_ip $os_eth &
fi fi
} }
@ -173,16 +172,16 @@ start() {
test -r /data/etc/ppp/modem && ifconfig | grep $os_ppp &>/dev/null && ppp_ok="ok" test -r /data/etc/ppp/modem && ifconfig | grep $os_ppp &>/dev/null && ppp_ok="ok"
# if wifi or ppp link ok, start eth in background # if wifi or ppp link ok, start eth in background
if [ "$wlan_ok" == "ok" ] || [ "$ppp_ok" == "ok" ]; then if [[ "$wlan_ok" == "ok" ]] || [[ "$ppp_ok" == "ok" ]]; then
start_eth &>/dev/null & start_eth &>/dev/null &
else else
start_eth && eth_ok="ok" start_eth && eth_ok="ok"
fi fi
if [ "$eth_ok" != "ok" ] && [ "$wlan_ok" != "ok" ] && [ "$ppp_ok" != "ok" ]; then if [[ "$eth_ok" != "ok" ]] && [[ "$wlan_ok" != "ok" ]] && [[ "$ppp_ok" != "ok" ]]; then
if [ "$link_watch" == "true" ]; then if [[ "$link_watch" == "true" ]]; then
logger -t network -s "no network connection available, rebooting" logger -t network -s "no network connection available, calling panic action"
reboot panic_action network
return 1 return 1
else else
logger -t network -s "no network connection available" logger -t network -s "no network connection available"
@ -190,13 +189,13 @@ start() {
fi fi
fi fi
if [ -n "$static_gw" ]; then if [[ -n "$static_gw" ]]; then
msg_begin "Setting static gateway to $static_gw" msg_begin "Setting static gateway to $static_gw"
ip route add default via $static_gw ip route add default via $static_gw
test $? == 0 && msg_done || msg_fail test $? == 0 && msg_done || msg_fail
fi fi
if [ -n "$static_dns" ]; then if [[ -n "$static_dns" ]]; then
msg_begin "Setting static DNS server to $static_dns" msg_begin "Setting static DNS server to $static_dns"
echo "nameserver $static_dns" > /etc/resolv.conf echo "nameserver $static_dns" > /etc/resolv.conf
test $? == 0 && msg_done || msg_fail test $? == 0 && msg_done || msg_fail

View File

@ -7,12 +7,11 @@ netwatch_interval=20
test -f $watch_conf && source $watch_conf || exit 0 test -f $watch_conf && source $watch_conf || exit 0
if [ -z "$netwatch_host" ] || [ -z "$netwatch_port" ]; then if [[ -z "$netwatch_host" ]] || [[ -z "$netwatch_port" ]]; then
exit 0 exit 0
fi fi
test -n "$os_version" || source /etc/init.d/base test -n "$os_version" || source /etc/init.d/base
test -n "$os_debug" || source /etc/init.d/conf
test "$os_networkless" == "true" && exit 0 test "$os_networkless" == "true" && exit 0
@ -24,13 +23,13 @@ watch() {
if nc -z -w $netwatch_timeout $netwatch_host $netwatch_port </dev/null >/dev/null 2>&1; then if nc -z -w $netwatch_timeout $netwatch_host $netwatch_port </dev/null >/dev/null 2>&1; then
count=0 count=0
else else
if [ $count -lt $netwatch_retries ]; then if [[ $count -lt $netwatch_retries ]]; then
logger -t netwatch -s "cannot connect to $netwatch_host:$netwatch_port" logger -t netwatch -s "cannot connect to $netwatch_host:$netwatch_port"
count=$(($count + 1)) count=$(($count + 1))
continue continue
else else
logger -t netwatch -s "cannot connect to $netwatch_host:$netwatch_port, rebooting" logger -t netwatch -s "cannot connect to $netwatch_host:$netwatch_port, calling panic action"
reboot panic_action netwatch
fi fi
fi fi
done done

View File

@ -4,10 +4,10 @@ sys_conf="/etc/firewall.sh"
boot_conf="/boot/firewall.sh" boot_conf="/boot/firewall.sh"
conf="/data/etc/firewall.sh" conf="/data/etc/firewall.sh"
if ! [ -f $conf ]; then if ! [[ -f $conf ]]; then
if [ -f $boot_conf ]; then if [[ -f $boot_conf ]]; then
cp $boot_conf $conf cp $boot_conf $conf
elif [ -f $sys_conf ]; then elif [[ -f $sys_conf ]]; then
cp $sys_conf $conf cp $sys_conf $conf
fi fi
fi fi

View File

@ -7,10 +7,10 @@ conf="/data/etc/dnsmasq.conf"
log="/var/log/dnsmasq.log" log="/var/log/dnsmasq.log"
prog="/usr/sbin/dnsmasq" prog="/usr/sbin/dnsmasq"
if ! [ -f $conf ]; then if ! [[ -f $conf ]]; then
if [ -f $boot_conf ]; then if [[ -f $boot_conf ]]; then
cp $boot_conf $conf cp $boot_conf $conf
elif [ -f $sys_conf ]; then elif [[ -f $sys_conf ]]; then
cp $sys_conf $conf cp $sys_conf $conf
fi fi
fi fi

View File

@ -11,18 +11,18 @@ sys_ntp_conf="/etc/ntp.conf"
boot_ntp_conf="/boot/ntp.conf" boot_ntp_conf="/boot/ntp.conf"
ntp_conf="/data/etc/ntp.conf" ntp_conf="/data/etc/ntp.conf"
if ! [ -f $conf ]; then if ! [[ -f $conf ]]; then
if [ -f $boot_conf ]; then if [[ -f $boot_conf ]]; then
cp $boot_conf $conf cp $boot_conf $conf
elif [ -f $sys_conf ]; then elif [[ -f $sys_conf ]]; then
cp $sys_conf $conf cp $sys_conf $conf
fi fi
fi fi
if ! [ -f $ntp_conf ]; then if ! [[ -f $ntp_conf ]]; then
if [ -f $boot_ntp_conf ]; then if [[ -f $boot_ntp_conf ]]; then
cp $boot_ntp_conf $ntp_conf cp $boot_ntp_conf $ntp_conf
elif [ -f $sys_ntp_conf ]; then elif [[ -f $sys_ntp_conf ]]; then
cp $sys_ntp_conf $ntp_conf cp $sys_ntp_conf $ntp_conf
fi fi
fi fi
@ -30,7 +30,6 @@ fi
test -f $conf || exit 0 test -f $conf || exit 0
test -n "$os_version" || source /etc/init.d/base test -n "$os_version" || source /etc/init.d/base
test -n "$os_debug" || source /etc/init.d/conf
test "$os_networkless" == "true" && exit 0 test "$os_networkless" == "true" && exit 0
@ -70,7 +69,7 @@ start_ntp() {
cat $ntp_conf | grep -v iburst > ${ntp_conf}.tmp cat $ntp_conf | grep -v iburst > ${ntp_conf}.tmp
if [ -n "$date_ntp_server" ]; then if [[ -n "$date_ntp_server" ]]; then
echo "server $date_ntp_server iburst" > $ntp_conf echo "server $date_ntp_server iburst" > $ntp_conf
else else
cat $sys_ntp_conf | grep iburst > $ntp_conf cat $sys_ntp_conf | grep iburst > $ntp_conf
@ -101,7 +100,7 @@ stop_ntp() {
} }
start() { start() {
if [ "$date_method" == "http" ]; then if [[ "$date_method" == "http" ]]; then
start_http start_http
else else
start_ntp start_ntp
@ -111,7 +110,7 @@ start() {
} }
stop() { stop() {
if [ "$date_method" == "http" ]; then if [[ "$date_method" == "http" ]]; then
stop_http stop_http
else else
stop_ntp stop_ntp

View File

@ -8,7 +8,7 @@ test -n "$os_version" || source /etc/init.d/base
start() { start() {
msg_begin "Starting crond" msg_begin "Starting crond"
if [ -d $sys_conf ]; then if [[ -d $sys_conf ]]; then
/usr/sbin/crond -c $sys_conf /usr/sbin/crond -c $sys_conf
fi fi

View File

@ -5,7 +5,6 @@ conf="/etc/sshd_config"
test -f $conf || exit 0 test -f $conf || exit 0
test -n "$os_version" || source /etc/init.d/base test -n "$os_version" || source /etc/init.d/base
test -n "$os_debug" || source /etc/init.d/conf
test "$os_networkless" == "true" && exit 0 test "$os_networkless" == "true" && exit 0

View File

@ -1,7 +1,6 @@
#!/bin/bash #!/bin/bash
test -n "$os_version" || source /etc/init.d/base test -n "$os_version" || source /etc/init.d/base
test -n "$os_debug" || source /etc/init.d/conf
msg_info() { msg_info() {
echo " # $1" echo " # $1"

View File

@ -4,6 +4,10 @@ source /etc/version
board_sn=$(/etc/init.d/boardsn) board_sn=$(/etc/init.d/boardsn)
board_name=$(cat /etc/board) board_name=$(cat /etc/board)
test -n "$os_debug" || source /etc/init.d/conf
source /etc/init.d/panic
msg_begin() { msg_begin() {
echo -n " * $1: " echo -n " * $1: "
} }

View File

@ -0,0 +1,7 @@
#!/bin/bash
source /etc/init.d/panic
# reset panic counter after a successful boot
echo 0 > ${_PANIC_COUNTER_FILE}

View File

@ -4,26 +4,26 @@ _sys_conf="/etc/os.conf"
_boot_conf="/boot/os.conf" _boot_conf="/boot/os.conf"
_conf="/data/etc/os.conf" _conf="/data/etc/os.conf"
if ! [ -f $_conf ]; then if ! [[ -d /data/etc ]]; then
if [ -f $_boot_conf ]; then # use boot/system variants if we don't have the data partition mounted
if [[ -f $_boot_conf ]]; then
source $_boot_conf
elif [[ -f $_sys_conf ]]; then
source $_sys_conf
fi
return
fi
if ! [[ -f $_conf ]]; then
if [[ -f $_boot_conf ]]; then
cp $_boot_conf $_conf cp $_boot_conf $_conf
elif [ -f $_sys_conf ]; then elif [[ -f $_sys_conf ]]; then
cp $_sys_conf $_conf cp $_sys_conf $_conf
fi fi
fi fi
if [[ -f $_conf ]]; then
source $_conf source $_conf
has_net_conn() {
test "$os_networkless" == "true" && return 1
addr_eth=$(ip addr show dev $os_eth 2>/dev/null | grep inet | tr -s ' ' | sed -r 's/^\s+//' | cut -d ' ' -f 2)
addr_wlan=$(ip addr show dev $os_wlan 2>/dev/null | grep inet | tr -s ' ' | sed -r 's/^\s+//' | cut -d ' ' -f 2)
if [ -n "$addr_eth" ] || [ -n "$addr_wlan" ]; then
return 0
else
return 1
fi fi
}

View File

@ -0,0 +1,28 @@
#!/bin/bash
_PANIC_COUNTER_FILE="/var/lib/panic_counter"
_PANIC_REBOOT_DELAY_FACTOR=10
_PANIC_REBOOT_DELAY_MAX=3600 # reboot at least once an hour in case of panic
panic_action() {
# read counter from file
panic_counter=$(cat ${_PANIC_COUNTER_FILE} 2>/dev/null || echo 0)
# write increased counter back to file
echo $((panic_counter + 1)) > ${_PANIC_COUNTER_FILE}
delay=$((_PANIC_REBOOT_DELAY_FACTOR * panic_counter))
if [[ "${delay}" -gt "${_PANIC_REBOOT_DELAY_MAX}" ]]; then
delay=${_PANIC_REBOOT_DELAY_MAX}
fi
if [[ "${delay}" -gt 0 ]]; then
logger -t panic -s "rebooting in ${delay} seconds (caused by $1)"
sleep ${delay}
fi
logger -t panic -s "rebooting (caused by $1)"
/sbin/reboot
}

View File

@ -10,8 +10,8 @@ echo "---- shutting down $os_name $os_version ----" >> $boot_log
# stop all init scripts in /etc/init.d, # stop all init scripts in /etc/init.d,
# executing them in reverse numerical order. # executing them in reverse numerical order.
(for i in $(ls -r /etc/init.d/S??*); do (for i in $(ls -r /etc/init.d/S??*); do
[ ! -x "$i" ] && continue if ! [[ -x "$i" ]]; then continue; fi
[ -f /data/etc/no_$(basename $i) ] && continue if [[ -f /data/etc/no_$(basename $i) ]]; then continue; fi
$i stop $i stop
done& echo $! > $pid_file) | tee -a $boot_log & done& echo $! > $pid_file) | tee -a $boot_log &

View File

@ -10,9 +10,9 @@ echo "---- booting $os_name $os_version ----" >> $tmp_boot_log
# start all init scripts in /etc/init.d, # start all init scripts in /etc/init.d,
# executing them in numerical order. # executing them in numerical order.
(for i in /etc/init.d/S??*; do (for i in /etc/init.d/S??* /etc/init.d/bootdone; do
[ ! -x "$i" ] && continue if ! [[ -x "$i" ]]; then continue; fi
[ -f /data/etc/no_$(basename $i) ] && continue if [[ -f /data/etc/no_$(basename $i) ]]; then continue; fi
$i start || break $i start || break
done& echo $! > $pid_file) | tee -a $tmp_boot_log & done& echo $! > $pid_file) | tee -a $tmp_boot_log &

View File

@ -1,16 +0,0 @@
root:x:0:0:root:/root:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:100:sync:/bin:/bin/sync
mail:x:8:8:mail:/var/spool/mail:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
operator:x:37:37:Operator:/var:/bin/sh
haldaemon:x:68:68:hald:/:/bin/sh
dbus:x:81:81:dbus:/var/run/dbus:/bin/sh
ftp:x:83:83:ftp:/home/ftp:/bin/sh
sshd:x:103:99:sshd:/var:/bin/sh
nobody:x:99:99:nobody:/home:/bin/sh
admin:x:0:0::/root:/bin/sh

View File

@ -1,4 +1,4 @@
os_name="thingOS" os_name="thingOS"
os_short_name="thingos" os_short_name="thingos"
os_prefix="thing" os_prefix="thing"
os_version="20171008" os_version="unknown"

View File

@ -4,7 +4,7 @@
#### usage #### #### usage ####
function exit_usage() { function exit_usage() {
echo "Usage: fwupdate versions (lists available versions)" echo "Usage: fwupdate versions [-j] (lists available versions, optionally outputting json)"
echo " fwupdate current (shows the current version" echo " fwupdate current (shows the current version"
echo " fwupdate download <version|url> (downloads a firmware version)" echo " fwupdate download <version|url> (downloads a firmware version)"
echo " fwupdate extract (extracts the downloaded firmware archive)" echo " fwupdate extract (extracts the downloaded firmware archive)"
@ -66,14 +66,14 @@ DD_PID_FILE=dd.pid
function show_versions() { function show_versions() {
source $OS_CONF source $OS_CONF
board=$(cat $SYS_BOARD_FILE) board=$(cat $SYS_BOARD_FILE)
show_url=$1 show_json=$1
# the /usr/libexec/list-versions-* helpers return a table with the following format: # the /usr/libexec/list-versions-* helpers return a table with the following format:
# <version>|<prerelease>|<board>|<url> # <version>|<prerelease>|<board>|<url>
versions=$(FW_USERNAME=$os_firmware_username FW_PASSWORD=$os_firmware_password \ versions=$(FW_USERNAME=$os_firmware_username FW_PASSWORD=$os_firmware_password \
/usr/libexec/list-versions-$os_firmware_method $os_firmware_repo) /usr/libexec/list-versions-$os_firmware_method $os_firmware_repo)
for version in $versions; do for version in ${versions[@]}; do
OIFS=$IFS OIFS=$IFS
IFS="|" IFS="|"
varr=($version) varr=($version)
@ -85,8 +85,12 @@ function show_versions() {
continue # skip other boards continue # skip other boards
fi fi
if [ "$show_url" == "true" ]; then if [ "$show_json" == "true" ]; then
echo ${varr[0]} ${varr[3]} echo "{\"version\": \"${varr[0]}\"," \
"\"url\": \"${varr[3]}\"," \
"\"board\": \"${varr[2]}\"," \
"\"prerelease\": ${varr[1]}," \
"\"date\": \"${varr[4]}\"}"
else else
echo ${varr[0]} echo ${varr[0]}
fi fi
@ -115,7 +119,7 @@ function do_download() {
version=$1 version=$1
if ! [[ "$url" == http* ]]; then # a version was given if ! [[ "$url" == http* ]]; then # a version was given
url=$(show_versions true | sed -rn '/^'"$version"' http.*\.img\.[a-z]+$/ {; /.*\.xz$/ {;s/^'"$version"' (.*)/\1/ p;q;}; /.*\.gz$/ {;h;b finish;};}; :finish; $ {;x;s/^'"$version"' (.*)/\1/ p;}') url=$(show_versions true | jq -r ". | select(.version==\"$version\") | .url")
else else
version="custom" version="custom"
fi fi
@ -394,7 +398,9 @@ function new_version() {
case "$1" in case "$1" in
versions) versions)
show_versions show_json="false"
test "$2" == "-j" && show_json="true"
show_versions $show_json
;; ;;
current) current)

View File

@ -1,7 +1,15 @@
#!/bin/bash #!/bin/bash
# carry on with the script in case of error
set +e set +e
# write buffers to disk
/bin/sync /bin/sync
(sleep 10 && /usr/bin/killall -STOP watchdog) &
# allow the shutdown script 20 seconds to shut down,
# after which we stop feeding the watchdog
(sleep 20 && /usr/bin/killall -STOP watchdog) &
# actual reboot command
/bin/busybox reboot /bin/busybox reboot

View File

@ -5,14 +5,24 @@ if [ -z "$1" ]; then
exit -1 exit -1
fi fi
function check_prerelease() {
read line
if [[ "$line" =~ ^[0-9._]+\| ]]; then
echo "$line"
else
echo "$line" | sed 's/|false|/|true|/'
fi
}
extensions=".img.gz .img.xz .img" extensions=".img.gz .img.xz .img"
opts="-s -S -f" opts="-s -S -f"
test -n "$FW_USERNAME" && opts+=" --user $FW_USERNAME:$FW_PASSWORD" test -n "$FW_USERNAME" && opts+=" --user $FW_USERNAME:$FW_PASSWORD"
url="https://api.bitbucket.org/2.0/repositories/$1/downloads?pagelen=100&_=$(date +%s)" url="https://api.bitbucket.org/2.0/repositories/$1/downloads?pagelen=100&_=$(date +%s)"
rtrimstr=$(for e in $extensions; do echo -n " | rtrimstr(\"$e\")"; done) rtrimstr=$(for e in $extensions; do echo -n " | rtrimstr(\"$e\")"; done)
jq_expr=".values[] | [{a: .name | split(\"-\"), url: .links.self.href}] | map((.a[2] $rtrimstr), \"false\", .a[1], .url) | join(\"|\")" jq_expr=".values[] | [{a: .name | split(\"-\"), url: .links.self.href, date: .created_on | split(\"T\")[0]}] |
map((.a[2] $rtrimstr), \"false\", .a[1], .url, .date) | join(\"|\")"
curl $opts $url | jq --raw-output "$jq_expr" curl $opts $url | jq --raw-output "$jq_expr" | while read line; do echo "$line" | check_prerelease; done
exit ${PIPESTATUS[0]} exit ${PIPESTATUS[0]}

View File

@ -8,7 +8,10 @@ fi
opts="-s -S -f" opts="-s -S -f"
test -n "$FW_USERNAME" && opts+=" --user $FW_USERNAME:$FW_PASSWORD" test -n "$FW_USERNAME" && opts+=" --user $FW_USERNAME:$FW_PASSWORD"
url=https://api.github.com/repos/$1/releases url=https://api.github.com/repos/$1/releases
jq_expr='.[] | {version: .name, prerelease: .prerelease | tostring} + (.assets[] | {name: .name | split("-")[1], url: .browser_download_url}) | flatten | join("|")'
jq_expr='.[] | {version: .name, prerelease: .prerelease | tostring} +
(.assets[] | {name: .name | split("-")[1], url: .browser_download_url}) +
({date: .created_at | split("T")[0]}) | flatten | join("|")'
curl $opts $url | jq --raw-output "$jq_expr" curl $opts $url | jq --raw-output "$jq_expr"
exit ${PIPESTATUS[0]} exit ${PIPESTATUS[0]}

View File

@ -0,0 +1,48 @@
#!/bin/bash
# expected final S3 URL:
# https://s3.amazonaws.com/${bucket}/${path}/${version}/${os_short_name}-${board}-${version}.img.xz
if [ -z "$1" ]; then
echo "Usage: $0 <bucket/path>" 1>&2
exit -1
fi
bucket_path=$1
bucket=$(echo ${bucket_path} | cut -d '/' -f 1)
path=${bucket_path:${#bucket} + 1}
opts="-s -S -f"
test -n "${FW_USERNAME}" && opts+=" --user ${FW_USERNAME}:${FW_PASSWORD}"
url=https://s3.amazonaws.com/${bucket}
xml_result=$(curl ${opts} ${url})
keys=$(echo "${xml_result}" | grep -oE '<Key>[^<]+<\/Key>' | sed 's/<Key>\(.*\)<\/Key>/\1/')
dates=$(echo "${xml_result}" | grep -oE '<LastModified>[^<]+<\/LastModified>' | sed 's/<LastModified>\(.*\)<\/LastModified>/\1/')
dates=(${dates})
files=$(echo "${keys}" | grep "^${path}/" | sed "s/^${path}\///" | sed '/^$/d')
i=0
for file in ${files}; do
version=$(echo ${file} | cut -d '/' -f 1)
fname=$(echo ${file} | cut -d '/' -f 2)
i=$((i + 1))
if [[ -z "${fname}" ]]; then
continue # version folder
fi
prerelease=false
if [[ "${version}" =~ ^.*[ab][0-9]+$ ]]; then # e.g. 0.4.1b2
prerelease=true
fi
if [[ "${version}" =~ ^dev.*$ ]]; then # e.g. dev20180314
prerelease=true
fi
final_url=${url}/${path}/${version}/${fname}
board=$(echo ${fname} | cut -d '-' -f 2)
date=$(echo ${dates[${i}]} | cut -d 'T' -f 1)
echo "${version}|${prerelease}|${board}|${final_url}|${date}"
done | sort -t '|' -k 5,3 -r

View File

@ -1 +0,0 @@
../tmp/log

View File

@ -1,6 +0,0 @@
# when leaving the console clear the screen to increase privacy
case "`tty`" in
/dev/tty[0-9]*) clear
esac

View File

@ -1,6 +0,0 @@
umask 022
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

View File

@ -1 +0,0 @@
tmp

View File

@ -1 +0,0 @@

Some files were not shown because too many files have changed in this diff Show More