merged buildroot201702

This commit is contained in:
Calin Crisan 2017-02-19 11:53:16 +02:00
parent 38f5847207
commit 2287f0cd0c
3469 changed files with 67215 additions and 14552 deletions

10
.br-external.mk Normal file
View File

@ -0,0 +1,10 @@
#
# Automatically generated file; DO NOT EDIT.
#
BR2_EXTERNAL ?=
BR2_EXTERNAL_NAMES =
BR2_EXTERNAL_DIRS =
BR2_EXTERNAL_MKS =
# No br2-external tree defined.

399
Config.in
View File

@ -14,18 +14,23 @@ config BR2_HOSTARCH
string string
option env="HOSTARCH" option env="HOSTARCH"
config BR2_EXTERNAL config BR2_BUILD_DIR
string string
option env="BR2_EXTERNAL" option env="BUILD_DIR"
# Hidden config symbols for packages to check system gcc version # Hidden config symbols for packages to check system gcc version
config BR2_HOST_GCC_VERSION config BR2_HOST_GCC_VERSION
string string
option env="HOST_GCC_VERSION" option env="HOST_GCC_VERSION"
config BR2_HOST_GCC_AT_LEAST_4_5
bool
default y if BR2_HOST_GCC_VERSION = "4 5"
config BR2_HOST_GCC_AT_LEAST_4_6 config BR2_HOST_GCC_AT_LEAST_4_6
bool bool
default y if BR2_HOST_GCC_VERSION = "4 6" default y if BR2_HOST_GCC_VERSION = "4 6"
select BR2_HOST_GCC_AT_LEAST_4_5
config BR2_HOST_GCC_AT_LEAST_4_7 config BR2_HOST_GCC_AT_LEAST_4_7
bool bool
@ -47,6 +52,11 @@ config BR2_HOST_GCC_AT_LEAST_5
default y if BR2_HOST_GCC_VERSION = "5" default y if BR2_HOST_GCC_VERSION = "5"
select BR2_HOST_GCC_AT_LEAST_4_9 select BR2_HOST_GCC_AT_LEAST_4_9
config BR2_HOST_GCC_AT_LEAST_6
bool
default y if BR2_HOST_GCC_VERSION = "6"
select BR2_HOST_GCC_AT_LEAST_5
# 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: xbmc) # (example: xbmc)
config BR2_NEEDS_HOST_JAVA config BR2_NEEDS_HOST_JAVA
@ -74,6 +84,11 @@ config BR2_HOSTARCH_NEEDS_IA32_LIBS
config BR2_HOSTARCH_NEEDS_IA32_COMPILER config BR2_HOSTARCH_NEEDS_IA32_COMPILER
bool bool
# Hidden boolean selected by packages that need the host to have an
# UTF8 locale.
config BR2_NEEDS_HOST_UTF8_LOCALE
bool
source "arch/Config.in" source "arch/Config.in"
menu "Build options" menu "Build options"
@ -120,9 +135,9 @@ config BR2_ZCAT
string "zcat command" string "zcat command"
default "gzip -d -c" default "gzip -d -c"
help help
Command to be used to extract a gzip'ed file to stdout. Command to be used to extract a gzip'ed file to stdout. zcat
zcat is identical to gunzip -c except that the former may is identical to gunzip -c except that the former may not be
not be available on your system. available on your system.
Default is "gzip -d -c" Default is "gzip -d -c"
Other possible values include "gunzip -c" or "zcat". Other possible values include "gunzip -c" or "zcat".
@ -162,8 +177,8 @@ config BR2_DEFCONFIG
default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != "" default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
default "$(CONFIG_DIR)/defconfig" default "$(CONFIG_DIR)/defconfig"
help help
When running 'make savedefconfig', the defconfig file will be saved When running 'make savedefconfig', the defconfig file will be
in this location. saved in this location.
config BR2_DL_DIR config BR2_DL_DIR
string "Download dir" string "Download dir"
@ -171,7 +186,8 @@ config BR2_DL_DIR
help help
Directory to store all the source files that we need to fetch. Directory to store all the source files that we need to fetch.
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 item. environment variable, then this overrides this configuration
item.
The default is $(TOPDIR)/dl The default is $(TOPDIR)/dl
@ -179,9 +195,9 @@ config BR2_HOST_DIR
string "Host dir" string "Host dir"
default "$(BASE_DIR)/host" default "$(BASE_DIR)/host"
help help
Directory to store all the binary files that are built for the host. Directory to store all the binary files that are built for the
This includes the cross compilation toolchain when building the host. This includes the cross compilation toolchain when
internal buildroot toolchain. building the internal buildroot toolchain.
The default is $(BASE_DIR)/host The default is $(BASE_DIR)/host
@ -191,9 +207,9 @@ config BR2_PRIMARY_SITE
string "Primary download site" string "Primary download site"
default "" default ""
help help
Primary site to download from. If this option is set then buildroot Primary site to download from. If this option is set then
will try to download package source first from this site and try the buildroot will try to download package source first from this
default if the file is not found. site and try the default if the file is not found.
Valid URIs are: Valid URIs are:
- URIs recognized by $(WGET) - URIs recognized by $(WGET)
- local URIs of the form file://absolutepath - local URIs of the form file://absolutepath
@ -206,11 +222,11 @@ config BR2_PRIMARY_SITE_ONLY
If this option is enabled, downloads will only be attempted If this option is enabled, downloads will only be attempted
from the primary download site. Other locations, like the from the primary download site. Other locations, like the
package's official download location or the backup download package's official download location or the backup download
site, will not be considered. Therefore, if the package is site, will not be considered. Therefore, if the package is not
not present on the primary site, the download fails. present on the primary site, the download fails.
This is useful for project developers who want to ensure This is useful for project developers who want to ensure that
that the project can be built even if the upstream tarball the project can be built even if the upstream tarball
locations disappear. locations disappear.
if !BR2_PRIMARY_SITE_ONLY if !BR2_PRIMARY_SITE_ONLY
@ -219,32 +235,36 @@ config BR2_BACKUP_SITE
string "Backup download site" string "Backup download site"
default "http://sources.buildroot.net" default "http://sources.buildroot.net"
help help
Backup site to download from. If this option is set then buildroot Backup site to download from. If this option is set then
will fall back to download package sources from here if the buildroot will fall back to download package sources from here
normal location fails. if the normal location fails.
config BR2_KERNEL_MIRROR config BR2_KERNEL_MIRROR
string "Kernel.org mirror" string "Kernel.org mirror"
default "https://www.kernel.org/pub" default "https://cdn.kernel.org/pub"
help help
kernel.org is mirrored on a number of servers around the world. kernel.org is mirrored on a number of servers around the
The following allows you to select your preferred mirror. world. The following allows you to select your preferred
mirror. By default, a CDN is used, which automatically
redirects to a mirror geographically close to you.
Have a look on the kernel.org site for a list of mirrors, then enter Have a look on the kernel.org site for a list of mirrors, then
the URL to the base directory. Examples: enter the URL to the base directory. Examples:
http://www.XX.kernel.org/pub (XX = country code) http://www.XX.kernel.org/pub (XX = country code)
http://mirror.aarnet.edu.au/pub/ftp.kernel.org http://mirror.aarnet.edu.au/pub/ftp.kernel.org
config BR2_GNU_MIRROR config BR2_GNU_MIRROR
string "GNU Software mirror" string "GNU Software mirror"
default "http://ftp.gnu.org/pub/gnu" default "http://ftpmirror.gnu.org"
help help
GNU has multiple software mirrors scattered around the world. GNU has multiple software mirrors scattered around the
The following allows you to select your preferred mirror. world. The following allows you to select your preferred
mirror. By default, a generic address is used, which
automatically selects an up-to-date and local mirror.
Have a look on the gnu.org site for a list of mirrors, then enter Have a look on the gnu.org site for a list of mirrors, then
the URL to the base directory. Examples: enter the URL to the base directory. Examples:
http://ftp.gnu.org/pub/gnu http://ftp.gnu.org/pub/gnu
http://mirror.aarnet.edu.au/pub/gnu http://mirror.aarnet.edu.au/pub/gnu
@ -261,8 +281,8 @@ config BR2_CPAN_MIRROR
string "CPAN mirror (Perl packages)" string "CPAN mirror (Perl packages)"
default "http://cpan.metacpan.org" default "http://cpan.metacpan.org"
help help
CPAN (Comprehensive Perl Archive Network) is a repository CPAN (Comprehensive Perl Archive Network) is a repository of
of Perl packages. It has multiple software mirrors scattered Perl packages. It has multiple software mirrors scattered
around the world. This option allows you to select a mirror. around the world. This option allows you to select a mirror.
The list of mirrors is available at: The list of mirrors is available at:
@ -277,23 +297,21 @@ config BR2_JLEVEL
default "0" default "0"
help help
Number of jobs to run simultaneously. If 0, determine Number of jobs to run simultaneously. If 0, determine
automatically according to number of CPUs on the host automatically according to number of CPUs on the host system.
system.
config BR2_CCACHE config BR2_CCACHE
bool "Enable compiler cache" bool "Enable compiler cache"
help help
This option will enable the use of ccache, a compiler This option will enable the use of ccache, a compiler cache.
cache. It will cache the result of previous builds to speed It will cache the result of previous builds to speed up future
up future builds. By default, the cache is stored in builds. By default, the cache is stored in
$HOME/.buildroot-ccache. $HOME/.buildroot-ccache.
Note that Buildroot does not try to invalidate the cache Note that Buildroot does not try to invalidate the cache
contents when the compiler changes in an incompatible contents when the compiler changes in an incompatible way.
way. Therefore, if you make a change to the compiler version Therefore, if you make a change to the compiler version and/or
and/or configuration, you are responsible for purging the configuration, you are responsible for purging the ccache
ccache cache by removing the $HOME/.buildroot-ccache cache by removing the $HOME/.buildroot-ccache directory.
directory.
if BR2_CCACHE if BR2_CCACHE
@ -306,16 +324,19 @@ config BR2_CCACHE_DIR
config BR2_CCACHE_INITIAL_SETUP config BR2_CCACHE_INITIAL_SETUP
string "Compiler cache initial setup" string "Compiler cache initial setup"
help help
Initial ccache settings to apply, such as --max-files or --max-size. Initial ccache settings to apply, such as --max-files or
--max-size.
For example, if your project is known to require more space than the For example, if your project is known to require more space
default max cache size, then you might want to increase the cache size than the default max cache size, then you might want to
to a suitable amount using the -M (--max-size) option. increase the cache size to a suitable amount using the -M
(--max-size) option.
The string you specify here is passed verbatim to ccache. Refer to The string you specify here is passed verbatim to ccache.
ccache documentation for more details. Refer to ccache documentation for more details.
These initial settings are applied after ccache has been compiled. These initial settings are applied after ccache has been
compiled.
config BR2_CCACHE_USE_BASEDIR config BR2_CCACHE_USE_BASEDIR
bool "Use relative paths" bool "Use relative paths"
@ -324,55 +345,25 @@ config BR2_CCACHE_USE_BASEDIR
Allow ccache to convert absolute paths within the output Allow ccache to convert absolute paths within the output
directory into relative paths. directory into relative paths.
During the build, many -I include directives are given with During the build, many -I include directives are given with an
an absolute path. These absolute paths end up in the hashes absolute path. These absolute paths end up in the hashes that
that are computed by ccache. Therefore, when you build from a are computed by ccache. Therefore, when you build from a
different directory, the hash will be different and the different directory, the hash will be different and the cached
cached object will not be used. object will not be used.
To improve cache performance, set this option to y. This To improve cache performance, set this option to y. This
allows ccache to rewrite absolute paths within the output allows ccache to rewrite absolute paths within the output
directory into relative paths. Note that only paths within directory into relative paths. Note that only paths within the
the output directory will be rewritten; therefore, if you output directory will be rewritten; therefore, if you change
change BR2_HOST_DIR to point outside the output directory and BR2_HOST_DIR to point outside the output directory and
subsequently move it to a different location, this will lead subsequently move it to a different location, this will lead
to cache misses. to cache misses.
This option has as a result that the debug information in the This option has as a result that the debug information in the
object files also has only relative paths. Therefore, make object files also has only relative paths. Therefore, make
sure you cd to the build directory before starting gdb. See sure you cd to the build directory before starting gdb. See
the section "COMPILING IN DIFFERENT DIRECTORIES" in the the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache
ccache manual for more information. manual for more information.
endif
config BR2_DEPRECATED
bool "Show options and packages that are deprecated or obsolete"
help
This option shows outdated/obsolete versions of packages and
options that are otherwise hidden.
if BR2_DEPRECATED
config BR2_DEPRECATED_SINCE_2015_05
bool
default y
config BR2_DEPRECATED_SINCE_2015_08
bool
default y
config BR2_DEPRECATED_SINCE_2015_11
bool
default y
config BR2_DEPRECATED_SINCE_2016_02
bool
default y
config BR2_DEPRECATED_SINCE_2016_05
bool
default y
endif endif
@ -396,11 +387,11 @@ choice
config BR2_DEBUG_1 config BR2_DEBUG_1
bool "debug level 1" bool "debug level 1"
help help
Debug level 1 produces minimal information, enough Debug level 1 produces minimal information, enough for making
for making backtraces in parts of the program that backtraces in parts of the program that you don't plan to
you don't plan to debug. This includes descriptions debug. This includes descriptions of functions and external
of functions and external variables, but no information variables, but no information about local variables and no
about local variables and no line numbers. line numbers.
config BR2_DEBUG_2 config BR2_DEBUG_2
bool "debug level 2" bool "debug level 2"
@ -410,9 +401,9 @@ config BR2_DEBUG_2
config BR2_DEBUG_3 config BR2_DEBUG_3
bool "debug level 3" bool "debug level 3"
help help
Level 3 includes extra information, such as all the Level 3 includes extra information, such as all the macro
macro definitions present in the program. Some debuggers definitions present in the program. Some debuggers support
support macro expansion when you use -g3. macro expansion when you use -g3.
endchoice endchoice
endif endif
@ -425,16 +416,15 @@ config BR2_STRIP_strip
depends on !BR2_PACKAGE_HOST_ELF2FLT 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 stripped using the normal 'strip' command. This allows to save
save space, mainly by removing debugging symbols. Debugging space, mainly by removing debugging symbols. Debugging symbols
symbols on the target are needed for native debugging, but on the target are needed for native debugging, but not when
not when remote debugging is used. remote debugging is used.
config BR2_STRIP_none config BR2_STRIP_none
bool "none" bool "none"
help help
Do not strip binaries and libraries in the target Do not strip binaries and libraries in the target filesystem.
filesystem.
endchoice endchoice
config BR2_STRIP_EXCLUDE_FILES config BR2_STRIP_EXCLUDE_FILES
@ -442,19 +432,19 @@ config BR2_STRIP_EXCLUDE_FILES
depends on !BR2_STRIP_none depends on !BR2_STRIP_none
default "" default ""
help help
You may specify a space-separated list of binaries and libraries You may specify a space-separated list of binaries and
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_none depends on !BR2_STRIP_none
default "" default ""
help help
You may specify a space-separated list of directories that should You may specify a space-separated list of directories that
be skipped when stripping. Binaries and libraries in these should be skipped when stripping. Binaries and libraries in
directories will not be touched. these directories will not be touched. The directories should
The directories should be specified relative to the target directory, be specified relative to the target directory, without leading
without leading slash. slash.
choice choice
prompt "gcc optimization level" prompt "gcc optimization level"
@ -470,54 +460,67 @@ config BR2_OPTIMIZE_0
config BR2_OPTIMIZE_1 config BR2_OPTIMIZE_1
bool "optimization level 1" bool "optimization level 1"
help help
Optimize. Optimizing compilation takes somewhat more time, Optimize. Optimizing compilation takes somewhat more time, and
and a lot more memory for a large function. With -O, the a lot more memory for a large function. With -O, the compiler
compiler tries to reduce code size and execution time, tries to reduce code size and execution time, without
without performing any optimizations that take a great deal performing any optimizations that take a great deal of
of compilation time. -O turns on the following optimization compilation time. -O turns on the following optimization
flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
-fcprop-registers -floop-optimize -fif-conversion -fcprop-registers -floop-optimize -fif-conversion
-fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
-ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
-ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O
-O also turns on -fomit-frame-pointer on machines where doing also turns on -fomit-frame-pointer on machines where doing so
so does not interfere with debugging. does not interfere with debugging.
config BR2_OPTIMIZE_2 config BR2_OPTIMIZE_2
bool "optimization level 2" bool "optimization level 2"
help help
Optimize even more. GCC performs nearly all supported optimizations Optimize even more. GCC performs nearly all supported
that do not involve a space-speed tradeoff. The compiler does not optimizations that do not involve a space-speed tradeoff. The
perform loop unrolling or function inlining when you specify -O2. compiler does not perform loop unrolling or function inlining
As compared to -O, this option increases both compilation time and when you specify -O2. As compared to -O, this option increases
the performance of the generated code. -O2 turns on all optimization both compilation time and the performance of the generated
flags specified by -O. It also turns on the following optimization code. -O2 turns on all optimization flags specified by -O. It
flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls also turns on the following optimization flags:
-fthread-jumps -fcrossjumping -foptimize-sibling-calls
-fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
-fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop -fexpensive-optimizations -fstrength-reduce
-frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves
-fschedule-insns2 -fsched-interblock -fsched-spec -fregmove -fpeephole2 -fschedule-insns -fschedule-insns2
-fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing
-freorder-functions -falign-functions -falign-jumps -falign-loops -fdelete-null-pointer-checks -freorder-blocks
-falign-labels -ftree-vrp -ftree-pre -freorder-functions -falign-functions -falign-jumps
Please note the warning under -fgcse about invoking -O2 on programs -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please
note the warning under -fgcse about invoking -O2 on programs
that use computed gotos. that use computed gotos.
config BR2_OPTIMIZE_3 config BR2_OPTIMIZE_3
bool "optimization level 3" bool "optimization level 3"
help help
Optimize yet more. -O3 turns on all optimizations specified by -O2 Optimize yet more. -O3 turns on all optimizations specified by
and also turns on the -finline-functions, -funswitch-loops and -O2 and also turns on the -finline-functions, -funswitch-loops
-fgcse-after-reload options. and -fgcse-after-reload options.
config BR2_OPTIMIZE_G
bool "optimize for debugging"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
help
Optimize for debugging. This enables optimizations that do not
interfere with debugging. It should be the optimization level
of choice for the standard edit-compile-debug cycle, offering
a reasonable level of optimization while maintaining fast
compilation and a good debugging experience.
config BR2_OPTIMIZE_S config BR2_OPTIMIZE_S
bool "optimize for size" bool "optimize for size"
help help
Optimize for size. -Os enables all -O2 optimizations that do not Optimize for size. -Os enables all -O2 optimizations that do
typically increase code size. It also performs further optimizations not typically increase code size. It also performs further
designed to reduce code size. -Os disables the following optimization optimizations designed to reduce code size. -Os disables the
flags: -falign-functions -falign-jumps -falign-loops -falign-labels following optimization flags: -falign-functions -falign-jumps
-freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays -falign-loops -falign-labels -freorder-blocks
-freorder-blocks-and-partition -fprefetch-loop-arrays
-ftree-vect-loop-version -ftree-vect-loop-version
endchoice endchoice
@ -526,16 +529,20 @@ config BR2_GOOGLE_BREAKPAD_ENABLE
bool "Enable google-breakpad support" bool "Enable google-breakpad support"
select BR2_PACKAGE_GOOGLE_BREAKPAD select BR2_PACKAGE_GOOGLE_BREAKPAD
depends on BR2_INSTALL_LIBSTDCPP depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_USES_GLIBC 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_USE_WCHAR
depends on BR2_TOOLCHAIN_HAS_THREADS
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
help help
This option will enable the use of google breakpad, a This option will enable the use of google breakpad, a library
library and tool suite that allows you to distribute an and tool suite that allows you to distribute an application to
application to users with compiler-provided debugging users with compiler-provided debugging information removed,
information removed, record crashes in compact "minidump" record crashes in compact "minidump" files, send them back to
files, send them back to your server and produce C and C++ your server and produce C and C++ stack traces from these
stack traces from these minidumps. Breakpad can also write minidumps. Breakpad can also write minidumps on request for
minidumps on request for programs that have not crashed. programs that have not crashed.
if BR2_GOOGLE_BREAKPAD_ENABLE if BR2_GOOGLE_BREAKPAD_ENABLE
@ -563,12 +570,13 @@ choice
Enable stack smashing protection support using GCC's Enable stack smashing protection support using GCC's
-fstack-protector option family. -fstack-protector option family.
See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt See
http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
for details. for details.
Note that this requires the toolchain to have SSP Note that this requires the toolchain to have SSP support.
support. This is always the case for glibc and eglibc This is always the case for glibc and eglibc toolchain, but is
toolchain, but is optional in uClibc toolchains. optional in uClibc toolchains.
config BR2_SSP_NONE config BR2_SSP_NONE
bool "None" bool "None"
@ -616,20 +624,19 @@ choice
help help
Select the type of libraries you want to use on the target. Select the type of libraries you want to use on the target.
The default is to build dynamic libraries and use those on The default is to build dynamic libraries and use those on the
the target filesystem, except when the architecture and/or target filesystem, except when the architecture and/or the
the selected binary format does not support shared selected binary format does not support shared libraries.
libraries.
config BR2_STATIC_LIBS config BR2_STATIC_LIBS
bool "static only" bool "static only"
help help
Build and use only static libraries. No shared libraries Build and use only static libraries. No shared libraries will
will be instaled on the target. This potentially increases be installed on the target. This potentially increases your
your code size and should only be used if you know what you code size and should only be used if you know what you are
are doing. Note that some packages may not be available when doing. Note that some packages may not be available when this
this option is enabled, due to their need for dynamic option is enabled, due to their need for dynamic library
library support. support.
config BR2_SHARED_LIBS config BR2_SHARED_LIBS
bool "shared only" bool "shared only"
@ -655,48 +662,67 @@ config BR2_PACKAGE_OVERRIDE_FILE
default "$(CONFIG_DIR)/local.mk" default "$(CONFIG_DIR)/local.mk"
help help
A package override file is a short makefile that contains A package override file is a short makefile that contains
variable definitions of the form <pkg>_OVERRIDE_SRCDIR, variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which
which allows to tell Buildroot to use an existing directory allows to tell Buildroot to use an existing directory as the
as the source directory for a particular package. See the source directory for a particular package. See the Buildroot
Buildroot documentation for more details on this feature. documentation for more details on this feature.
config BR2_GLOBAL_PATCH_DIR config BR2_GLOBAL_PATCH_DIR
string "global patch directories" string "global patch directories"
help help
You may specify a space separated list of one or more directories You may specify a space separated list of one or more
containing global package patches. For a specific version directories containing global package patches. For a specific
<packageversion> of a specific package <packagename>, patches are version <packageversion> of a specific package <packagename>,
applied as follows: patches are applied as follows:
First, the default Buildroot patch set for the package is applied First, the default Buildroot patch set for the package is
from the package's directory in Buildroot. applied from the package's directory in Buildroot.
Then for every directory - <global-patch-dir> - that exists in Then for every directory - <global-patch-dir> - that exists in
BR2_GLOBAL_PATCH_DIR, if the directory BR2_GLOBAL_PATCH_DIR, if the directory
<global-patch-dir>/<packagename>/<packageversion>/ exists, then all <global-patch-dir>/<packagename>/<packageversion>/ exists,
*.patch files in this directory will be applied. then all *.patch files in this directory will be applied.
Otherwise, if the directory <global-patch-dir>/<packagename> exists, Otherwise, if the directory <global-patch-dir>/<packagename>
then all *.patch files in the directory will be applied. exists, then all *.patch files in the directory will be
applied.
menu "Advanced" menu "Advanced"
config BR2_COMPILER_PARANOID_UNSAFE_PATH config BR2_COMPILER_PARANOID_UNSAFE_PATH
bool "paranoid check of library/header paths" bool "paranoid check of library/header paths"
default y
help help
By default, when this option is disabled, when the Buildroot By default, when this option is disabled, when the Buildroot
cross-compiler will encounter an unsafe library or header cross-compiler will encounter an unsafe library or header path
path (such as /usr/include, or /usr/lib), the compiler will (such as /usr/include, or /usr/lib), the compiler will display
display a warning. a warning.
By enabling this option, this warning is turned into an By enabling this option, this warning is turned into an error,
error, which will completely abort the build when such which will completely abort the build when such unsafe paths
unsafe paths are encountered. are encountered.
Note that this mechanism is available for both the internal Note that this mechanism is available for both the internal
toolchain (through the toolchain wrapper and binutils patches) toolchain (through the toolchain wrapper and binutils patches)
and external toolchain backends (through the toolchain wrapper). and external toolchain backends (through the toolchain wrapper).
config BR2_REPRODUCIBLE
bool "Make the build reproducible (experimental)"
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 endmenu
endmenu endmenu
@ -717,9 +743,4 @@ source "package/Config.in.host"
source "Config.in.legacy" source "Config.in.legacy"
menu "User-provided options" source "$BR2_BUILD_DIR/.br2-external.in"
depends on BR2_EXTERNAL != "support/dummy-external"
source "$BR2_EXTERNAL/Config.in"
endmenu

View File

@ -142,6 +142,402 @@ comment "build, or run, in unpredictable ways. "
comment "----------------------------------------------------" comment "----------------------------------------------------"
endif endif
###############################################################################
comment "Legacy options removed in 2017.02"
config BR2_PACKAGE_PERL_DB_FILE
bool "perl-db-file removed"
select BR2_LEGACY
select BR2_PACKAGE_BERKELEYDB
select BR2_PACKAGE_PERL
help
DB_File can be built as a core Perl module, so the separate
perl-db-file package has been removed.
config BR2_KERNEL_HEADERS_4_7
bool "kernel headers version 4.7.x are no longer supported"
select BR2_KERNEL_HEADERS_4_4
select BR2_LEGACY
help
Version 4.7.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.4.x of the headers have been automatically
selected in your configuration.
config BR2_KERNEL_HEADERS_4_6
bool "kernel headers version 4.6.x are no longer supported"
select BR2_KERNEL_HEADERS_4_4
select BR2_LEGACY
help
Version 4.6.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.4.x of the headers have been automatically
selected in your configuration.
config BR2_KERNEL_HEADERS_4_5
bool "kernel headers version 4.5.x are no longer supported"
select BR2_KERNEL_HEADERS_4_4
select BR2_LEGACY
help
Version 4.5.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.4.x of the headers have been automatically
selected in your configuration.
config BR2_KERNEL_HEADERS_3_14
bool "kernel headers version 3.14.x are no longer supported"
select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY
help
Version 3.14.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 3.12.x of the headers have been automatically
selected in your configuration.
config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS
bool "musl-cross 1.1.12 toolchain removed"
select BR2_LEGACY
help
The support for the prebuilt toolchain based on the Musl C
library provided by the musl-cross project has been removed.
Upstream doesn't provide any prebuilt toolchain anymore, use the
Buildroot toolchain instead.
config BR2_UCLIBC_INSTALL_TEST_SUITE
bool "uClibc tests now in uclibc-ng-test"
select BR2_LEGACY
select BR2_PACKAGE_UCLIBC_NG_TEST
help
The test suite of the uClibc C library has been moved into a
separate package, uclibc-ng-test.
config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
bool "Blackfin.uclinux.org 2014R1 toolchain removed"
select BR2_LEGACY
help
The ADI Blackfin toolchain has many bugs which are fixed in
more recent gcc and uClibc-ng releases. Use the Buildroot
toolchain instead.
config BR2_PACKAGE_MAKEDEVS
bool "makedevs removed"
select BR2_LEGACY
help
The makedevs tool is part of busybox. The Buildroot fork
should not be used outside of the Buildroot infrastructure.
config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A
bool "Arago ARMv7 2011.09 removed"
select BR2_LEGACY
help
The Arago toolchains are every old and not updated anymore.
config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE
bool "Arago ARMv5 2011.09 removed"
select BR2_LEGACY
help
The Arago toolchains are every old and not updated anymore.
config BR2_PACKAGE_SNOWBALL_HDMISERVICE
bool "snowball-hdmiservice removed"
select BR2_LEGACY
help
We no longer have support for the Snowball platform in
Buildroot, so this package was no longer useful.
config BR2_PACKAGE_SNOWBALL_INIT
bool "snowball-init removed"
select BR2_LEGACY
help
We no longer have support for the Snowball platform in
Buildroot, so this package was no longer useful.
config BR2_GDB_VERSION_7_9
bool "gdb 7.9 has been removed"
select BR2_LEGACY
help
The 7.9 version of gdb has been removed. Use a newer version
instead.
###############################################################################
comment "Legacy options removed in 2016.11"
config BR2_PACKAGE_PHP_SAPI_CLI_CGI
bool "PHP CGI and CLI options are now seperate"
select BR2_PACKAGE_PHP_SAPI_CLI
select BR2_PACKAGE_PHP_SAPI_CGI
select BR2_LEGACY
help
The PHP Interface options have been split up into a
separate option for each interface.
config BR2_PACKAGE_PHP_SAPI_CLI_FPM
bool "PHP CLI and FPM options are now separate"
select BR2_PACKAGE_PHP_SAPI_CLI
select BR2_PACKAGE_PHP_SAPI_FPM
select BR2_LEGACY
help
The PHP Interface options have been split up into a
separate option for each interface.
config BR2_PACKAGE_WVSTREAMS
bool "wvstreams removed"
select BR2_LEGACY
help
wvstreams is not maintained anymore since about 2009. It also
doesn't build anymore with recent compilers (GCC 5+).
config BR2_PACKAGE_WVDIAL
bool "wvdial removed"
select BR2_LEGACY
help
wvdial is not maintained anymore since about 2009. It also
doesn't build anymore with recent compilers (GCC 5+).
config BR2_PACKAGE_WEBKITGTK24
bool "webkitgtk 2.4.x removed"
select BR2_LEGACY
help
This legacy package only existed because some other packages
depended on that specific version of webkitgtk. However, the
other packages have been fixed. webkitgtk 2.4 is full of
security issues so it needs to be removed.
config BR2_PACKAGE_TORSMO
bool "torsmo removed"
select BR2_LEGACY
help
torsmo has been unmaintained for a long time, and nobody
seems to be interested in it.
config BR2_PACKAGE_SSTRIP
bool "sstrip removed"
select BR2_LEGACY
help
sstrip is unmaintained and potentially harmful. It doesn't
save so much compared to normal binutils strip, and there is
a big risk of binaries that don't work. Use normal strip
instead.
config BR2_KERNEL_HEADERS_4_3
bool "kernel headers version 4.3.x are no longer supported"
select BR2_KERNEL_HEADERS_4_1
select BR2_LEGACY
help
Version 4.3.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.1.x of the headers have been automatically
selected in your configuration.
config BR2_KERNEL_HEADERS_4_2
bool "kernel headers version 4.2.x are no longer supported"
select BR2_KERNEL_HEADERS_4_1
select BR2_LEGACY
help
Version 4.2.x of the Linux kernel headers are no longer
maintained upstream and are now removed. As an alternative,
version 4.1.x of the headers have been automatically
selected in your configuration.
config BR2_PACKAGE_KODI_ADDON_XVDR
bool "kodi-addon-xvdr removed"
select BR2_LEGACY
help
According to the github project page:
https://github.com/pipelka/xbmc-addon-xvdr
this package is discontinued.
config BR2_PACKAGE_IPKG
bool "ipkg removed"
select BR2_LEGACY
help
ipkg dates back to the early 2000s when Compaq started the
handhelds.org project and it hasn't seen development since 2006.
Use opkg as a replacement.
config BR2_GCC_VERSION_4_7_X
bool "gcc 4.7.x support removed"
select BR2_LEGACY
help
Support for gcc version 4.7.x has been removed. The current
default version (4.9.x or later) has been selected instead.
config BR2_BINUTILS_VERSION_2_24_X
bool "binutils version 2.24 support removed"
select BR2_LEGACY
help
Support for binutils version 2.24 has been removed. The
current default version (2.26 or later) has been selected
instead.
config BR2_PACKAGE_WESTON_RPI
bool "Weston propietary RPI support is gone"
select BR2_LEGACY
help
Upstream decided the propietary (rpi-userland) weston composer
support wasn't worth the effort so it was removed. Switch to
the open VC4 support.
config BR2_LINUX_KERNEL_TOOL_CPUPOWER
bool "linux-tool cpupower"
depends on BR2_LINUX_KERNEL
select BR2_LEGACY
select BR2_PACKAGE_LINUX_TOOLS_CPUPOWER
help
Linux tool cpupower option was renamed.
config BR2_LINUX_KERNEL_TOOL_PERF
bool "linux-tool perf"
depends on BR2_LINUX_KERNEL
select BR2_LEGACY
select BR2_PACKAGE_LINUX_TOOLS_PERF
help
Linux tool perf option was renamed.
config BR2_LINUX_KERNEL_TOOL_SELFTESTS
bool "linux-tool selftests"
depends on BR2_LINUX_KERNEL
select BR2_LEGACY
select BR2_PACKAGE_LINUX_TOOLS_SELFTESTS
help
Linux tool selftests option was renamed.
config BR2_GCC_VERSION_4_8_ARC
bool "gcc arc option renamed"
select BR2_LEGACY
select BR2_GCC_VERSION_ARC
help
The option that selects the gcc version for the ARC
architecture has been renamed to BR2_GCC_VERSION_ARC.
config BR2_KERNEL_HEADERS_4_0
bool "kernel headers version 4.0.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18
select BR2_LEGACY
help
Version 4.0.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been
automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_19
bool "kernel headers version 3.19.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18
select BR2_LEGACY
help
Version 3.19.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been
automatically selected in your configuration.
config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS
bool "libevas-generic-loaders package removed"
select BR2_LEGACY
select BR2_PACKAGE_EFL
help
With EFL 1.18, libevas-generic-loaders is now provided by the efl
package.
config BR2_PACKAGE_ELEMENTARY
bool "elementary package removed"
select BR2_LEGACY
select BR2_PACKAGE_EFL
help
With EFL 1.18, elementary is now provided by the efl package.
config BR2_LINUX_KERNEL_CUSTOM_LOCAL
bool "Linux kernel local directory option removed"
help
The option to select a local directory as the source of the Linux
kernel has been removed. It hurts reproducibility of builds.
In case you were using this option during development of your
Linux kernel, use the override mechanism instead.
###############################################################################
comment "Legacy options removed in 2016.08"
config BR2_PACKAGE_SYSTEMD_COMPAT
bool "systemd compatibility libraries have been removed"
select BR2_LEGACY
help
The systemd option to enable the compatibility libraries has
been removed. Theses libraries have been useless since a few
version, and have been fully dropped from the source since
v230.
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIVEADDER
bool "gst1-plugins-bad liveadder plugin removed"
select BR2_LEGACY
select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXER
help
The functionality of the liveadder plugin of the
gst1-plugins-bad package has been merged into audiomixer.
config BR2_PACKAGE_LIBFSLVPUWRAP
bool "libfslvpuwrap has been renamed to imx-vpuwrap"
select BR2_LEGACY
select BR2_PACKAGE_IMX_VPUWRAP
help
The libfslvpuwrap has been renamed to match the renamed package.
config BR2_PACKAGE_LIBFSLPARSER
bool "libfslparser has been renamed to imx-parser"
select BR2_LEGACY
select BR2_PACKAGE_IMX_PARSER
help
The libfslparser has been renamed to match the renamed package.
config BR2_PACKAGE_LIBFSLCODEC
bool "libfslcodec has been renamed to imx-codec"
select BR2_LEGACY
select BR2_PACKAGE_IMX_CODEC
help
The libfslcodec has been renamed to match the renamed package.
config BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT
bool "FIT support in uboot-tools has been refactored"
select BR2_LEGACY
select BR2_PACKAGE_DTC
select BR2_PACKAGE_DTC_PROGRAMS
select BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT
select BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT
select BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE
help
This option has been removed in favor of a more fine-grained
configuration, which is recommended. Selecting this option
enables FIT and FIT signature support for the target packages.
It will also select the dtc and openssl packages.
config BR2_PTHREADS_OLD
bool "linuxthreads (stable/old)"
select BR2_LEGACY
help
Linuxthreads have been reworked, BR2_PTHREADS_OLD is now
BR2_PTHREADS and the old BR2_PTHREADS - LT.new got removed.
config BR2_BINUTILS_VERSION_2_23_X
bool "binutils 2.23 removed"
select BR2_LEGACY
help
Binutils 2.23 has been removed, using a newer version is
recommended.
config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
bool "eglibc support has been removed"
select BR2_LEGACY
help
The eglibc project no longer exists, as it has been merged
back into the glibc project. Therefore, support for eglibc
has been removed, and glibc should be used instead.
config BR2_GDB_VERSION_7_8
bool "gdb 7.8 has been removed"
select BR2_LEGACY
help
The 7.8 version of gdb has been removed. Use a newer version
instead.
############################################################################### ###############################################################################
comment "Legacy options removed in 2016.05" comment "Legacy options removed in 2016.05"
@ -220,12 +616,19 @@ config BR2_PACKAGE_QT5QUICK1
from upstream starting from Qt 5.6. from upstream starting from Qt 5.6.
config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR
bool "uboot custom patch dir removed" string "uboot custom patch dir has been removed"
select BR2_LEGACY
help help
The uboot custom patch directory option has been removed. Use The uboot custom patch directory option has been removed. Use
the improved BR2_TARGET_UBOOT_PATCH option instead. the improved BR2_TARGET_UBOOT_PATCH option instead.
config BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR_WRAP
bool
default y if BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR != ""
select BR2_LEGACY
# Note: BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR is still referenced from
# boot/uboot/Config.in
config BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID config BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID
bool "xf86-input-void removed" bool "xf86-input-void removed"
select BR2_LEGACY select BR2_LEGACY
@ -235,12 +638,12 @@ config BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID
config BR2_KERNEL_HEADERS_3_17 config BR2_KERNEL_HEADERS_3_17
bool "kernel headers version 3.17.x are no longer supported" bool "kernel headers version 3.17.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18 select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY select BR2_LEGACY
help help
Version 3.17.x of the Linux kernel headers have been deprecated Version 3.17.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been As an alternative, version 3.12.x of the headers have been
automatically selected in your configuration. automatically selected in your configuration.
config BR2_GDB_VERSION_7_7 config BR2_GDB_VERSION_7_7
@ -302,7 +705,7 @@ config BR2_GCC_VERSION_4_5_X
version instead. version instead.
config BR2_PACKAGE_SQLITE_READLINE config BR2_PACKAGE_SQLITE_READLINE
bool "command-line editing support was updated" bool "sqlite command-line editing support was updated"
select BR2_PACKAGE_NCURSES select BR2_PACKAGE_NCURSES
select BR2_PACKAGE_READLINE select BR2_PACKAGE_READLINE
select BR2_LEGACY select BR2_LEGACY
@ -336,7 +739,7 @@ config BR2_PACKAGE_E2FSPROGS_FINDFS
This option attempted to enable findfs capabilities from This option attempted to enable findfs capabilities from
e2fsprogs but has not worked since July 2015 (due to e2fsprogs but has not worked since July 2015 (due to
packaging changes). One can use BusyBox's findfs support or packaging changes). One can use BusyBox's findfs support or
enable the BR2_PACKAGE_UTIL_LINUX_FINDFS option. enable the BR2_PACKAGE_UTIL_LINUX_BINARIES option.
config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
bool "openpowerlink debug option has been removed" bool "openpowerlink debug option has been removed"
@ -381,12 +784,12 @@ config BR2_PACKAGE_CUPS_PDFTOPS
config BR2_KERNEL_HEADERS_3_16 config BR2_KERNEL_HEADERS_3_16
bool "kernel headers version 3.16.x are no longer supported" bool "kernel headers version 3.16.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18 select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY select BR2_LEGACY
help help
Version 3.16.x of the Linux kernel headers have been deprecated Version 3.16.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been As an alternative, version 3.12.x of the headers have been
automatically selected in your configuration. automatically selected in your configuration.
config BR2_PACKAGE_PYTHON_PYXML config BR2_PACKAGE_PYTHON_PYXML
@ -597,32 +1000,32 @@ config BR2_KERNEL_HEADERS_3_0
config BR2_KERNEL_HEADERS_3_11 config BR2_KERNEL_HEADERS_3_11
bool "kernel headers version 3.11.x are no longer supported" bool "kernel headers version 3.11.x are no longer supported"
select BR2_KERNEL_HEADERS_3_12 select BR2_KERNEL_HEADERS_3_10
select BR2_LEGACY select BR2_LEGACY
help help
Version 3.11.x of the Linux kernel headers have been deprecated Version 3.11.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. for more than four buildroot releases and are now removed.
As an alternative, version 3.12.x of the headers have been As an alternative, version 3.10.x of the headers have been
automatically selected in your configuration. automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_13 config BR2_KERNEL_HEADERS_3_13
bool "kernel headers version 3.13.x are no longer supported" bool "kernel headers version 3.13.x are no longer supported"
select BR2_KERNEL_HEADERS_3_14 select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY select BR2_LEGACY
help help
Version 3.13.x of the Linux kernel headers have been deprecated Version 3.13.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. for more than four buildroot releases and are now removed.
As an alternative, version 3.14.x of the headers have been As an alternative, version 3.12.x of the headers have been
automatically selected in your configuration. automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_15 config BR2_KERNEL_HEADERS_3_15
bool "kernel headers version 3.15.x are no longer supported" bool "kernel headers version 3.15.x are no longer supported"
select BR2_KERNEL_HEADERS_3_18 select BR2_KERNEL_HEADERS_3_12
select BR2_LEGACY select BR2_LEGACY
help help
Version 3.15.x of the Linux kernel headers have been deprecated Version 3.15.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. for more than four buildroot releases and are now removed.
As an alternative, version 3.18.x of the headers have been As an alternative, version 3.12.x of the headers have been
automatically selected in your configuration. automatically selected in your configuration.
config BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI config BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI
@ -913,11 +1316,9 @@ config BR2_PACKAGE_KODI_PVR_ADDONS
config BR2_BINUTILS_VERSION_2_23_2 config BR2_BINUTILS_VERSION_2_23_2
bool "binutils 2.23 option renamed" bool "binutils 2.23 option renamed"
select BR2_LEGACY select BR2_LEGACY
select BR2_BINUTILS_VERSION_2_23_X
help help
The binutils version option has been renamed to match the Binutils 2.23.2 has been removed, using a newer version is
same patchlevel logic used by gcc. The new option is now recommended.
BR2_BINUTILS_VERSION_2_23_X.
config BR2_BINUTILS_VERSION_2_24 config BR2_BINUTILS_VERSION_2_24
bool "binutils 2.24 option renamed" bool "binutils 2.24 option renamed"
@ -1174,11 +1575,12 @@ config BR2_PACKAGE_STRONGSWAN_TOOLS
deprecated. deprecated.
config BR2_PACKAGE_XBMC_ADDON_XVDR config BR2_PACKAGE_XBMC_ADDON_XVDR
bool "xbmc options have been renamed" bool "xbmc-addon-xvdr removed"
select BR2_LEGACY select BR2_LEGACY
select BR2_PACKAGE_KODI_ADDON_XVDR
help help
The XBMC media center project was renamed to Kodi entertainment center According to the github project page:
https://github.com/pipelka/xbmc-addon-xvdr
this package is discontinued.
config BR2_PACKAGE_XBMC_PVR_ADDONS config BR2_PACKAGE_XBMC_PVR_ADDONS
bool "xbmc options have been renamed" bool "xbmc options have been renamed"
@ -1430,12 +1832,12 @@ config BR2_PACKAGE_LIBELF
config BR2_KERNEL_HEADERS_3_8 config BR2_KERNEL_HEADERS_3_8
bool "kernel headers version 3.8.x are no longer supported" bool "kernel headers version 3.8.x are no longer supported"
select BR2_KERNEL_HEADERS_3_10 select BR2_KERNEL_HEADERS_3_4
select BR2_LEGACY select BR2_LEGACY
help help
Version 3.8.x of the Linux kernel headers have been deprecated Version 3.8.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. for more than four buildroot releases and are now removed.
As an alternative, version 3.10.x of the headers have been As an alternative, version 3.4.x of the headers have been
automatically selected in your configuration. automatically selected in your configuration.
config BR2_PACKAGE_GETTEXT_TOOLS config BR2_PACKAGE_GETTEXT_TOOLS
@ -1588,22 +1990,22 @@ config BR2_PACKAGE_EVTEST_CAPTURE
config BR2_KERNEL_HEADERS_3_6 config BR2_KERNEL_HEADERS_3_6
bool "kernel headers version 3.6.x are no longer supported" bool "kernel headers version 3.6.x are no longer supported"
select BR2_KERNEL_HEADERS_3_10 select BR2_KERNEL_HEADERS_3_4
select BR2_LEGACY select BR2_LEGACY
help help
Version 3.6.x of the Linux kernel headers have been deprecated Version 3.6.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. for more than four buildroot releases and are now removed.
As an alternative, version 3.10.x of the headers have been As an alternative, version 3.4.x of the headers have been
automatically selected in your configuration. automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_7 config BR2_KERNEL_HEADERS_3_7
bool "kernel headers version 3.7.x are no longer supported" bool "kernel headers version 3.7.x are no longer supported"
select BR2_KERNEL_HEADERS_3_10 select BR2_KERNEL_HEADERS_3_4
select BR2_LEGACY select BR2_LEGACY
help help
Version 3.7.x of the Linux kernel headers have been deprecated Version 3.7.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. for more than four buildroot releases and are now removed.
As an alternative, version 3.10.x of the headers have been As an alternative, version 3.4.x of the headers have been
automatically selected in your configuration. automatically selected in your configuration.
config BR2_PACKAGE_VALA config BR2_PACKAGE_VALA
@ -1776,22 +2178,22 @@ config BR2_KERNEL_HEADERS_3_1
config BR2_KERNEL_HEADERS_3_3 config BR2_KERNEL_HEADERS_3_3
bool "kernel headers version 3.3.x are no longer supported" bool "kernel headers version 3.3.x are no longer supported"
select BR2_KERNEL_HEADERS_3_4 select BR2_KERNEL_HEADERS_3_2
select BR2_LEGACY select BR2_LEGACY
help help
Version 3.3.x of the Linux kernel headers have been deprecated Version 3.3.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. for more than four buildroot releases and are now removed.
As an alternative, version 3.4.x of the headers have been As an alternative, version 3.2.x of the headers have been
automatically selected in your configuration. automatically selected in your configuration.
config BR2_KERNEL_HEADERS_3_5 config BR2_KERNEL_HEADERS_3_5
bool "kernel headers version 3.5.x are no longer supported" bool "kernel headers version 3.5.x are no longer supported"
select BR2_KERNEL_HEADERS_3_10 select BR2_KERNEL_HEADERS_3_4
select BR2_LEGACY select BR2_LEGACY
help help
Version 3.5.x of the Linux kernel headers have been deprecated Version 3.5.x of the Linux kernel headers have been deprecated
for more than four buildroot releases and are now removed. for more than four buildroot releases and are now removed.
As an alternative, version 3.10.x of the headers have been As an alternative, version 3.4.x of the headers have been
automatically selected in your configuration. automatically selected in your configuration.
config BR2_GDB_VERSION_7_2 config BR2_GDB_VERSION_7_2

343
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-2016 by the Buildroot developers <buildroot@buildroot.org> # Copyright (C) 2014-2017 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
@ -24,24 +24,71 @@
# You shouldn't need to mess with anything beyond this point... # You shouldn't need to mess with anything beyond this point...
#-------------------------------------------------------------- #--------------------------------------------------------------
# Trick for always running with a fixed umask # Delete default rules. We don't use them. This saves a bit of time.
UMASK = 0022 .SUFFIXES:
ifneq ($(shell umask),$(UMASK))
# we want bash as shell
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi; fi)
# Set O variable if not already done on the command line;
# or avoid confusing packages that can use the O=<dir> syntax for out-of-tree
# build by preventing it from being forwarded to sub-make calls.
ifneq ("$(origin O)", "command line")
O := $(CURDIR)/output
endif
# Check if the current Buildroot execution meets all the pre-requisites.
# If they are not met, Buildroot will actually do its job in a sub-make meeting
# its pre-requisites, which are:
# 1- Permissive enough umask:
# Wrong or too restrictive umask will prevent Buildroot and packages from
# creating files and directories.
# 2- Absolute canonical CWD (i.e. $(CURDIR)):
# Otherwise, some packages will use CWD as-is, others will compute its
# absolute canonical path. This makes harder tracking and fixing host
# machine path leaks.
# 3- Absolute canonical output location (i.e. $(O)):
# For the same reason as the one for CWD.
# Remove the trailing '/.' from $(O) as it can be added by the makefile wrapper
# installed in the $(O) directory.
# Also remove the trailing '/' the user can set when on the command line.
override O := $(patsubst %/,%,$(patsubst %.,%,$(O)))
# Make sure $(O) actually exists before calling realpath on it; this is to
# avoid empty CANONICAL_O in case on non-existing entry.
CANONICAL_O := $(shell mkdir -p $(O) >/dev/null 2>&1)$(realpath $(O))
CANONICAL_CURDIR = $(realpath $(CURDIR))
REQ_UMASK = 0022
# Make sure O= is passed (with its absolute canonical path) everywhere the
# toplevel makefile is called back.
EXTRAMAKEARGS := O=$(CANONICAL_O)
# Check Buildroot execution pre-requisites here.
ifneq ($(shell umask):$(CURDIR):$(O),$(REQ_UMASK):$(CANONICAL_CURDIR):$(CANONICAL_O))
.PHONY: _all $(MAKECMDGOALS) .PHONY: _all $(MAKECMDGOALS)
$(MAKECMDGOALS): _all $(MAKECMDGOALS): _all
@: @:
_all: _all:
@umask $(UMASK) && $(MAKE) --no-print-directory $(MAKECMDGOALS) @umask $(REQ_UMASK) && \
$(MAKE) -C $(CANONICAL_CURDIR) --no-print-directory \
$(MAKECMDGOALS) $(EXTRAMAKEARGS)
else # umask else # umask / $(CURDIR) / $(O)
# This is our default rule, so must come first # This is our default rule, so must come first
all: all:
# Set and export the version string # Set and export the version string
export BR2_VERSION := 2016.05 export BR2_VERSION := 2017.02-rc1
# Actual time the release is cut (for reproducible builds)
BR2_VERSION_EPOCH = 1486825200
# 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)
@ -81,7 +128,8 @@ export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlo
noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \ noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
defconfig %_defconfig allyesconfig allnoconfig silentoldconfig release \ defconfig %_defconfig allyesconfig allnoconfig silentoldconfig release \
randpackageconfig allyespackageconfig allnopackageconfig \ randpackageconfig allyespackageconfig allnopackageconfig \
print-version olddefconfig print-version olddefconfig distclean manual manual-html manual-split-html \
manual-pdf manual-text manual-epub
# Some global targets do not trigger a build, but are used to collect # Some global targets do not trigger a build, but are used to collect
# metadata, or do various checks. When such targets are triggered, # metadata, or do various checks. When such targets are triggered,
@ -92,80 +140,63 @@ 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-check \ nobuild_targets := source %-source source-check \
legal-info external-deps _external-deps \ legal-info %-legal-info external-deps _external-deps \
clean distclean help clean distclean help show-targets graph-depends \
%-graph-depends %-show-depends %-show-version \
graph-build graph-size list-defconfigs \
savedefconfig printvars
ifeq ($(MAKECMDGOALS),) ifeq ($(MAKECMDGOALS),)
BR_BUILDING = y BR_BUILDING = y
else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),) else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),)
BR_BUILDING = y BR_BUILDING = y
endif endif
# Strip quotes and then whitespaces # We call make recursively to build packages. The command-line overrides that
qstrip = $(strip $(subst ",,$(1))) # are passed to Buildroot don't apply to those package build systems. In
#")) # particular, we don't want to pass down the O=<dir> option for out-of-tree
# builds, because the value specified on the command line will not be correct
# for packages.
MAKEOVERRIDES :=
# Variables for use in Make constructs # Include some helper macros and variables
comma := , include support/misc/utils.mk
empty :=
space := $(empty) $(empty)
ifneq ("$(origin O)", "command line") # Set variables related to in-tree or out-of-tree build.
O := output # Here, both $(O) and $(CURDIR) are absolute canonical paths.
CONFIG_DIR := $(TOPDIR) ifeq ($(O),$(CURDIR)/output)
CONFIG_DIR := $(CURDIR)
NEED_WRAPPER = NEED_WRAPPER =
else else
# other packages might also support Linux-style out of tree builds
# with the O=<dir> syntax (E.G. BusyBox does). As make automatically
# forwards command line variable definitions those packages get very
# confused. Fix this by telling make to not do so
MAKEOVERRIDES =
# strangely enough O is still passed to submakes with MAKEOVERRIDES
# (with make 3.81 atleast), the only thing that changes is the output
# of the origin function (command line -> environment).
# Unfortunately some packages don't look at origin (E.G. uClibc 0.9.31+)
# To really make O go away, we have to override it.
override O := $(O)
CONFIG_DIR := $(O) CONFIG_DIR := $(O)
# we need to pass O= everywhere we call back into the toplevel makefile
EXTRAMAKEARGS = O=$(O)
NEED_WRAPPER = y NEED_WRAPPER = y
endif endif
# bash prints the name of the directory on 'cd <dir>' if CDPATH is # bash prints the name of the directory on 'cd <dir>' if CDPATH is
# set, so unset it here to not cause problems. Notice that the export # set, so unset it here to not cause problems. Notice that the export
# line doesn't affect the environment of $(shell ..) calls, so # line doesn't affect the environment of $(shell ..) calls.
# explictly throw away any output from 'cd' here.
export CDPATH := export CDPATH :=
BASE_DIR := $(shell mkdir -p $(O) && cd $(O) >/dev/null && pwd)
BASE_DIR := $(CANONICAL_O)
$(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist))
# Handling of BR2_EXTERNAL. # Handling of BR2_EXTERNAL.
# #
# The value of BR2_EXTERNAL is stored in .br-external in the output directory. # The value of BR2_EXTERNAL is stored in .br-external in the output directory.
# On subsequent invocations of make, it is read in. It can still be overridden # The location of the external.mk makefile fragments is computed in that file.
# on the command line, therefore the file is re-created every time make is run. # On subsequent invocations of make, this file is read in. BR2_EXTERNAL can
# # still be overridden on the command line, therefore the file is re-created
# When BR2_EXTERNAL is set to an empty value (e.g. explicitly in command # every time make is run.
# line), the .br-external file is removed and we point to
# support/dummy-external. This makes sure we can unconditionally include the
# Config.in and external.mk from the BR2_EXTERNAL directory. In this case,
# override is necessary so the user can clear BR2_EXTERNAL from the command
# line, but the dummy path is still used internally.
BR2_EXTERNAL_FILE = $(BASE_DIR)/.br-external BR2_EXTERNAL_FILE = $(BASE_DIR)/.br-external.mk
-include $(BR2_EXTERNAL_FILE) -include $(BR2_EXTERNAL_FILE)
ifeq ($(BR2_EXTERNAL),) $(shell support/scripts/br2-external \
override BR2_EXTERNAL = support/dummy-external -m -o '$(BR2_EXTERNAL_FILE)' $(BR2_EXTERNAL))
$(shell rm -f $(BR2_EXTERNAL_FILE)) BR2_EXTERNAL_ERROR =
else include $(BR2_EXTERNAL_FILE)
_BR2_EXTERNAL = $(shell cd $(BR2_EXTERNAL) >/dev/null 2>&1 && pwd) ifneq ($(BR2_EXTERNAL_ERROR),)
ifeq ($(_BR2_EXTERNAL),) $(error $(BR2_EXTERNAL_ERROR))
$(error BR2_EXTERNAL='$(BR2_EXTERNAL)' does not exist, relative to $(TOPDIR))
endif
override BR2_EXTERNAL := $(_BR2_EXTERNAL)
$(shell echo BR2_EXTERNAL ?= $(BR2_EXTERNAL) > $(BR2_EXTERNAL_FILE))
endif endif
# To make sure that the environment variable overrides the .config option, # To make sure that the environment variable overrides the .config option,
@ -196,11 +227,18 @@ LICENSE_FILES_DIR_TARGET = $(LEGAL_INFO_DIR)/licenses
LICENSE_FILES_DIR_HOST = $(LEGAL_INFO_DIR)/host-licenses LICENSE_FILES_DIR_HOST = $(LEGAL_INFO_DIR)/host-licenses
LEGAL_MANIFEST_CSV_TARGET = $(LEGAL_INFO_DIR)/manifest.csv LEGAL_MANIFEST_CSV_TARGET = $(LEGAL_INFO_DIR)/manifest.csv
LEGAL_MANIFEST_CSV_HOST = $(LEGAL_INFO_DIR)/host-manifest.csv LEGAL_MANIFEST_CSV_HOST = $(LEGAL_INFO_DIR)/host-manifest.csv
LEGAL_LICENSES_TXT_TARGET = $(LEGAL_INFO_DIR)/licenses.txt
LEGAL_LICENSES_TXT_HOST = $(LEGAL_INFO_DIR)/host-licenses.txt
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
@ -208,6 +246,17 @@ ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
-include $(BR2_CONFIG) -include $(BR2_CONFIG)
endif endif
# timezone and locale may affect build output
ifeq ($(BR2_REPRODUCIBLE),y)
export TZ = UTC
export LANG = C
export LC_ALL = C
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
# To put more focus on warnings, be less verbose as default # To put more focus on warnings, be less verbose as default
# Use 'make V=1' to see the full commands # Use 'make V=1' to see the full commands
ifeq ("$(origin V)", "command line") ifeq ("$(origin V)", "command line")
@ -227,11 +276,6 @@ else
Q = @ Q = @
endif endif
# we want bash as shell
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi; fi)
# kconfig uses CONFIG_SHELL # kconfig uses CONFIG_SHELL
CONFIG_SHELL := $(SHELL) CONFIG_SHELL := $(SHELL)
@ -279,6 +323,7 @@ HOSTLN := $(shell which $(HOSTLN) || type -p $(HOSTLN) || echo ln)
HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm) HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm)
HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy) HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy)
HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib) HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib)
SED := $(shell which sed || type -p sed) -i -e
export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD
export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE
@ -376,6 +421,7 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
-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/bfin/blackfin/ \
-e s/or1k/openrisc/ \
-e s/parisc64/parisc/ \ -e s/parisc64/parisc/ \
-e s/powerpc64.*/powerpc/ \ -e s/powerpc64.*/powerpc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \ -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
@ -410,6 +456,7 @@ endif
# Scripts in support/ or post-build scripts may need to reference # Scripts in support/ or post-build scripts may need to reference
# these locations, so export them so it is easier to use # these locations, so export them so it is easier to use
export BR2_CONFIG export BR2_CONFIG
export BR2_REPRODUCIBLE
export TARGET_DIR export TARGET_DIR
export STAGING_DIR export STAGING_DIR
export HOST_DIR export HOST_DIR
@ -427,9 +474,7 @@ all: world
# Include legacy before the other things, because package .mk files # Include legacy before the other things, because package .mk files
# may rely on it. # may rely on it.
ifneq ($(BR2_DEPRECATED),y)
include Makefile.legacy include Makefile.legacy
endif
include package/Makefile.in include package/Makefile.in
include support/dependencies/dependencies.mk include support/dependencies/dependencies.mk
@ -450,7 +495,15 @@ include boot/common.mk
include linux/linux.mk include linux/linux.mk
include fs/common.mk include fs/common.mk
include $(BR2_EXTERNAL)/external.mk # If using a br2-external tree, the BR2_EXTERNAL_$(NAME)_PATH variables
# are also present in the .config file. Since .config is included after
# we defined them in the Makefile, the values for those variables are
# quoted. We just include the generated Makefile fragment .br2-external.mk
# a third time, which will set those variables to the un-quoted values.
include $(BR2_EXTERNAL_FILE)
# Nothing to include if no BR2_EXTERNAL tree in use
include $(BR2_EXTERNAL_MKS)
# Now we are sure we have all the packages scanned and defined. We now # Now we are sure we have all the packages scanned and defined. We now
# check for each package in the list of enabled packages, that all its # check for each package in the list of enabled packages, that all its
@ -494,15 +547,6 @@ world: target-post-image
legal-info legal-info-prepare legal-info-clean printvars help \ legal-info legal-info-prepare legal-info-clean printvars help \
list-defconfigs target-finalize target-post-image source-check list-defconfigs target-finalize target-post-image source-check
################################################################################
#
# 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 $@
# 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)
@ -612,7 +656,7 @@ target-finalize: $(PACKAGES)
$(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \ $(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake $(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake
find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f
find $(TARGET_DIR)/lib $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/libexec \ find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \
\( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
ifneq ($(BR2_PACKAGE_GDB),y) ifneq ($(BR2_PACKAGE_GDB),y)
rm -rf $(TARGET_DIR)/usr/share/gdb rm -rf $(TARGET_DIR)/usr/share/gdb
@ -627,23 +671,20 @@ endif
rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info
rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc
rm -rf $(TARGET_DIR)/usr/share/gtk-doc rm -rf $(TARGET_DIR)/usr/share/gtk-doc
-rmdir $(TARGET_DIR)/usr/share 2>/dev/null rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true
$(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true $(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true
if test -d $(TARGET_DIR)/lib/modules; then \
find $(TARGET_DIR)/lib/modules -type f -name '*.ko' -print0 | \
xargs -0 -r $(KSTRIPCMD); fi
# See http://sourceware.org/gdb/wiki/FAQ, "GDB does not see any threads # See http://sourceware.org/gdb/wiki/FAQ, "GDB does not see any threads
# besides the one in which crash occurred; or SIGTRAP kills my program when # besides the one in which crash occurred; or SIGTRAP kills my program when
# I set a breakpoint" # I set a breakpoint"
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
find $(TARGET_DIR)/lib -type f -name 'libpthread*.so*' | \ find $(TARGET_DIR)/lib/ -type f -name 'libpthread*.so*' | \
xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG)
endif endif
# Valgrind needs ld.so with enough information, so only strip # Valgrind needs ld.so with enough information, so only strip
# debugging symbols. # debugging symbols.
find $(TARGET_DIR)/lib -type f -name 'ld-*.so*' | \ find $(TARGET_DIR)/lib/ -type f -name 'ld-*.so*' | \
xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG)
test -f $(TARGET_DIR)/etc/ld.so.conf && \ test -f $(TARGET_DIR)/etc/ld.so.conf && \
{ echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true { echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true
@ -701,8 +742,12 @@ legal-info: dirs legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p
cat support/legal-info/README.warnings-header \ cat support/legal-info/README.warnings-header \
$(LEGAL_WARNINGS) >>$(LEGAL_REPORT); \ $(LEGAL_WARNINGS) >>$(LEGAL_REPORT); \
cat $(LEGAL_WARNINGS); fi cat $(LEGAL_WARNINGS); fi
@echo "Legal info produced in $(LEGAL_INFO_DIR)"
@rm -f $(LEGAL_WARNINGS) @rm -f $(LEGAL_WARNINGS)
@(cd $(LEGAL_INFO_DIR); \
find * -type f -exec sha256sum {} + | LC_ALL=C sort -k2 \
>.legal-info.sha256; \
mv .legal-info.sha256 legal-info.sha256)
@echo "Legal info produced in $(LEGAL_INFO_DIR)"
show-targets: show-targets:
@echo $(PACKAGES) $(TARGETS_ROOTFS) @echo $(PACKAGES) $(TARGETS_ROOTFS)
@ -726,7 +771,7 @@ graph-depends: graph-depends-requirements
@$(INSTALL) -d $(GRAPHS_DIR) @$(INSTALL) -d $(GRAPHS_DIR)
@cd "$(CONFIG_DIR)"; \ @cd "$(CONFIG_DIR)"; \
$(TOPDIR)/support/scripts/graph-depends $(BR2_GRAPH_DEPS_OPTS) \ $(TOPDIR)/support/scripts/graph-depends $(BR2_GRAPH_DEPS_OPTS) \
-o $(GRAPHS_DIR)/$(@).dot --direct -o $(GRAPHS_DIR)/$(@).dot
dot $(BR2_GRAPH_DOT_OPTS) -T$(BR_GRAPH_OUT) \ dot $(BR2_GRAPH_DOT_OPTS) -T$(BR_GRAPH_OUT) \
-o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \ -o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \
$(GRAPHS_DIR)/$(@).dot $(GRAPHS_DIR)/$(@).dot
@ -754,6 +799,9 @@ endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
HOSTCFLAGS = $(CFLAGS_FOR_BUILD) HOSTCFLAGS = $(CFLAGS_FOR_BUILD)
export HOSTCFLAGS export HOSTCFLAGS
.PHONY: prepare-kconfig
prepare-kconfig: outputmakefile $(BUILD_DIR)/.br2-external.in
$(BUILD_DIR)/buildroot-config/%onf: $(BUILD_DIR)/buildroot-config/%onf:
mkdir -p $(@D)/lxdialog mkdir -p $(@D)/lxdialog
PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" $(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" \ PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" $(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" \
@ -769,23 +817,23 @@ COMMON_CONFIG_ENV = \
KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \ KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \
BR2_CONFIG=$(BR2_CONFIG) \ BR2_CONFIG=$(BR2_CONFIG) \
BR2_EXTERNAL=$(BR2_EXTERNAL) \
HOST_GCC_VERSION="$(HOSTCC_VERSION)" \ HOST_GCC_VERSION="$(HOSTCC_VERSION)" \
BUILD_DIR=$(BUILD_DIR) \
SKIP_LEGACY= SKIP_LEGACY=
xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile xconfig: $(BUILD_DIR)/buildroot-config/qconf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile gconfig: $(BUILD_DIR)/buildroot-config/gconf prepare-kconfig
@$(COMMON_CONFIG_ENV) srctree=$(TOPDIR) $< $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) srctree=$(TOPDIR) $< $(CONFIG_CONFIG_IN)
menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile menuconfig: $(BUILD_DIR)/buildroot-config/mconf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile nconfig: $(BUILD_DIR)/buildroot-config/nconf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
config: $(BUILD_DIR)/buildroot-config/conf outputmakefile config: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
# For the config targets that automatically select options, we pass # For the config targets that automatically select options, we pass
@ -793,22 +841,22 @@ config: $(BUILD_DIR)/buildroot-config/conf outputmakefile
# no values are set for the legacy options so a subsequent oldconfig # no values are set for the legacy options so a subsequent oldconfig
# will query them. Therefore, run an additional olddefconfig. # will query them. Therefore, run an additional olddefconfig.
oldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile oldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< --oldconfig $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< --oldconfig $(CONFIG_CONFIG_IN)
randconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile randconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --randconfig $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --randconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allyesconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile allyesconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allyesconfig $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allyesconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allnoconfig $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allnoconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile randpackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
@ -816,7 +864,7 @@ randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@rm -f $(CONFIG_DIR)/.config.nopkg @rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
@ -824,7 +872,7 @@ allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@rm -f $(CONFIG_DIR)/.config.nopkg @rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
@ -832,25 +880,24 @@ allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@rm -f $(CONFIG_DIR)/.config.nopkg @rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
silentoldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile silentoldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
$(COMMON_CONFIG_ENV) $< --silentoldconfig $(CONFIG_CONFIG_IN) $(COMMON_CONFIG_ENV) $< --silentoldconfig $(CONFIG_CONFIG_IN)
olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile olddefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) $(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN)
defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile defconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
define percent_defconfig
# Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig # Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/%_defconfig outputmakefile %_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig prepare-kconfig
@$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(TOPDIR)/configs/$@ \ @$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \
$< --defconfig=$(TOPDIR)/configs/$@ $(CONFIG_CONFIG_IN) $$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN)
endef
$(eval $(foreach d,$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)),$(call percent_defconfig,$(d))$(sep)))
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(BR2_EXTERNAL)/configs/%_defconfig outputmakefile savedefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(BR2_EXTERNAL)/configs/$@ \
$< --defconfig=$(BR2_EXTERNAL)/configs/$@ $(CONFIG_CONFIG_IN)
savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@$(COMMON_CONFIG_ENV) $< \ @$(COMMON_CONFIG_ENV) $< \
--savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \ --savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \
$(CONFIG_CONFIG_IN) $(CONFIG_CONFIG_IN)
@ -872,6 +919,13 @@ ifeq ($(NEED_WRAPPER),y)
$(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O) $(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
endif endif
# Even though the target is a real file, we mark it as PHONY as we
# want it to be re-generated each time make is invoked, in case the
# value of BR2_EXTERNAL is changed.
.PHONY: $(BUILD_DIR)/.br2-external.in
$(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
$(Q)support/scripts/br2-external -k -o "$(@)" $(BR2_EXTERNAL)
# printvars prints all the variables currently defined in our # printvars prints all the variables currently defined in our
# Makefiles. Alternatively, if a non-empty VARS variable is passed, # Makefiles. Alternatively, if a non-empty VARS variable is passed,
# only the variables matching the make pattern passed in VARS are # only the variables matching the make pattern passed in VARS are
@ -889,13 +943,10 @@ clean:
$(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(LEGAL_INFO_DIR) $(GRAPHS_DIR)
distclean: clean distclean: clean
ifeq ($(DL_DIR),$(TOPDIR)/dl) ifeq ($(O),$(CURDIR)/output)
rm -rf $(DL_DIR)
endif
ifeq ($(O),output)
rm -rf $(O) rm -rf $(O)
endif endif
rm -rf $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \ rm -rf $(TOPDIR)/dl $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \
$(CONFIG_DIR)/.auto.deps $(BR2_EXTERNAL_FILE) $(CONFIG_DIR)/.auto.deps $(BR2_EXTERNAL_FILE)
help: help:
@ -933,26 +984,17 @@ help:
@echo ' <pkg>-depends - Build <pkg>'\''s dependencies' @echo ' <pkg>-depends - Build <pkg>'\''s dependencies'
@echo ' <pkg>-configure - Build <pkg> up to the configure step' @echo ' <pkg>-configure - Build <pkg> up to the configure step'
@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-rdepends - 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>-dirclean - Remove <pkg> build directory' @echo ' <pkg>-dirclean - Remove <pkg> build directory'
@echo ' <pkg>-reconfigure - Restart the build from the configure step' @echo ' <pkg>-reconfigure - Restart the build from the configure step'
@echo ' <pkg>-rebuild - Restart the build from the build step' @echo ' <pkg>-rebuild - Restart the build from the build step'
ifeq ($(BR2_PACKAGE_BUSYBOX),y) $(foreach p,$(HELP_PACKAGES), \
@echo ' busybox-menuconfig - Run BusyBox menuconfig' @echo $(sep) \
endif @echo '$($(p)_NAME):' $(sep) \
ifeq ($(BR2_LINUX_KERNEL),y) $($(p)_HELP_CMDS)$(sep))
@echo ' linux-menuconfig - Run Linux kernel menuconfig'
@echo ' linux-savedefconfig - Run Linux kernel savedefconfig'
@echo ' linux-update-defconfig - Save the Linux configuration to the path specified'
@echo ' by BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE'
endif
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
@echo ' uclibc-menuconfig - Run uClibc menuconfig'
endif
ifeq ($(BR2_TARGET_BAREBOX),y)
@echo ' barebox-menuconfig - Run barebox menuconfig'
@echo ' barebox-savedefconfig - Run barebox savedefconfig'
endif
@echo @echo
@echo 'Documentation:' @echo 'Documentation:'
@echo ' manual - build manual in all formats' @echo ' manual - build manual in all formats'
@ -979,17 +1021,34 @@ endif
@echo 'it on-line at http://buildroot.org/docs.html' @echo 'it on-line at http://buildroot.org/docs.html'
@echo @echo
# List the defconfig files
# $(1): base directory
# $(2): br2-external name, empty for bundled
define list-defconfigs
@first=true; \
for defconfig in $(1)/configs/*_defconfig; do \
[ -f "$${defconfig}" ] || continue; \
if $${first}; then \
if [ "$(2)" ]; then \
printf 'External configs in "$(call qstrip,$(2))":\n'; \
else \
printf "Built-in configs:\n"; \
fi; \
first=false; \
fi; \
defconfig="$${defconfig##*/}"; \
printf " %-35s - Build for %s\n" "$${defconfig}" "$${defconfig%_defconfig}"; \
done; \
$${first} || printf "\n"
endef
# We iterate over BR2_EXTERNAL_NAMES rather than BR2_EXTERNAL_DIRS,
# because we want to display the name of the br2-external tree.
list-defconfigs: list-defconfigs:
@echo 'Built-in configs:' $(call list-defconfigs,$(TOPDIR))
@$(foreach b, $(sort $(notdir $(wildcard $(TOPDIR)/configs/*_defconfig))), \ $(foreach name,$(BR2_EXTERNAL_NAMES),\
printf " %-35s - Build for %s\\n" $(b) $(b:_defconfig=);) $(call list-defconfigs,$(BR2_EXTERNAL_$(name)_PATH),\
ifneq ($(wildcard $(BR2_EXTERNAL)/configs/*_defconfig),) $(BR2_EXTERNAL_$(name)_DESC))$(sep))
@echo
@echo 'User-provided configs:'
@$(foreach b, $(sort $(notdir $(wildcard $(BR2_EXTERNAL)/configs/*_defconfig))), \
printf " %-35s - Build for %s\\n" $(b) $(b:_defconfig=);)
endif
@echo
release: OUT = buildroot-$(BR2_VERSION) release: OUT = buildroot-$(BR2_VERSION)
@ -1008,8 +1067,8 @@ print-version:
@echo $(BR2_VERSION_FULL) @echo $(BR2_VERSION_FULL)
#include docs/manual/manual.mk #include docs/manual/manual.mk
#-include $(BR2_EXTERNAL)/docs/*/*.mk #-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(dir)/docs/*/*.mk)
.PHONY: $(noconfig_targets) .PHONY: $(noconfig_targets)
endif #umask endif #umask / $(CURDIR) / $(O)

View File

@ -4,9 +4,6 @@
# This file contains placeholders to detect backward-compatibility problems. # This file contains placeholders to detect backward-compatibility problems.
# When a buildroot "API" feature is being deprecated, a rule should be added # When a buildroot "API" feature is being deprecated, a rule should be added
# here that issues an error when the old feature is used. # here that issues an error when the old feature is used.
#
# This file is not included if BR2_DEPRECATED is selected, so it is possible
# to bypass the errors (although that's usually a bad idea).
ifeq ($(BR2_LEGACY),y) ifeq ($(BR2_LEGACY),y)
$(error "You have legacy configuration in your .config! Please check your configuration.") $(error "You have legacy configuration in your .config! Please check your configuration.")

View File

@ -159,6 +159,13 @@ config BR2_nios2
http://www.altera.com/ http://www.altera.com/
http://en.wikipedia.org/wiki/Nios_II http://en.wikipedia.org/wiki/Nios_II
config BR2_or1k
bool "OpenRISC"
select BR2_ARCH_HAS_MMU_MANDATORY
help
OpenRISC is a free and open processor for embedded system.
http://openrisc.io
config BR2_powerpc config BR2_powerpc
bool "PowerPC" bool "PowerPC"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
@ -197,16 +204,6 @@ config BR2_sh
http://www.hitachi.com/ http://www.hitachi.com/
http://en.wikipedia.org/wiki/SuperH http://en.wikipedia.org/wiki/SuperH
config BR2_sh64
bool "SuperH64"
depends on BR2_DEPRECATED_SINCE_2015_05
select BR2_ARCH_HAS_MMU_MANDATORY
help
SuperH64 (or SH) is a 64-bit reduced instruction set computer (RISC)
instruction set architecture (ISA) developed by Hitachi.
http://www.hitachi.com/
http://en.wikipedia.org/wiki/SuperH
config BR2_sparc config BR2_sparc
bool "SPARC" bool "SPARC"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
@ -336,12 +333,19 @@ config BR2_BINFMT_FLAT_ONE
config BR2_BINFMT_FLAT_SEP_DATA config BR2_BINFMT_FLAT_SEP_DATA
bool "Separate data and code region" 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 help
Allow for the data and text segments to be separated and placed in Allow for the data and text segments to be separated and placed in
different regions of memory. 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
# 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
@ -357,14 +361,10 @@ if BR2_arcle || BR2_arceb
source "arch/Config.in.arc" source "arch/Config.in.arc"
endif endif
if BR2_arm || BR2_armeb if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.arm" source "arch/Config.in.arm"
endif endif
if BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.aarch64"
endif
if BR2_bfin if BR2_bfin
source "arch/Config.in.bfin" source "arch/Config.in.bfin"
endif endif
@ -385,11 +385,15 @@ if BR2_nios2
source "arch/Config.in.nios2" source "arch/Config.in.nios2"
endif endif
if BR2_or1k
source "arch/Config.in.or1k"
endif
if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
source "arch/Config.in.powerpc" source "arch/Config.in.powerpc"
endif endif
if BR2_sh || BR2_sh64 if BR2_sh
source "arch/Config.in.sh" source "arch/Config.in.sh"
endif endif

View File

@ -1,7 +0,0 @@
config BR2_ARCH
default "aarch64" if BR2_aarch64
default "aarch64_be" if BR2_aarch64_be
config BR2_ENDIAN
default "LITTLE" if BR2_aarch64
default "BIG" if BR2_aarch64_be

View File

@ -31,6 +31,10 @@ config BR2_ARM_CPU_HAS_VFPV4
bool bool
select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_HAS_VFPV3
config BR2_ARM_CPU_HAS_FP_ARMV8
bool
select BR2_ARM_CPU_HAS_VFPV4
config BR2_ARM_CPU_HAS_ARM config BR2_ARM_CPU_HAS_ARM
bool bool
@ -55,9 +59,11 @@ config BR2_ARM_CPU_ARMV7A
config BR2_ARM_CPU_ARMV7M config BR2_ARM_CPU_ARMV7M
bool bool
config BR2_ARM_CPU_ARMV8
bool
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
depends on BR2_arm || BR2_armeb
default BR2_arm926t default BR2_arm926t
help help
Specific CPU variant to use Specific CPU variant to use
@ -68,12 +74,14 @@ config BR2_arm920t
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_arm926t config BR2_arm926t
bool "arm926t" bool "arm926t"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -81,12 +89,14 @@ 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_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
@ -94,12 +104,14 @@ 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
@ -107,6 +119,7 @@ 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
@ -114,6 +127,7 @@ 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
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
@ -122,6 +136,7 @@ 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
@ -130,6 +145,7 @@ 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
@ -138,6 +154,7 @@ 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
@ -146,6 +163,7 @@ 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
@ -154,6 +172,7 @@ 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
@ -162,6 +181,7 @@ 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_a17 config BR2_cortex_a17
bool "cortex-A17" bool "cortex-A17"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@ -170,41 +190,73 @@ 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
config BR2_cortex_a53
bool "cortex-A53"
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_ARMV8
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a57
bool "cortex-A57"
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_ARMV8
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a72
bool "cortex-A72"
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_ARMV8
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_m3 config BR2_cortex_m3
bool "cortex-M3" bool "cortex-M3"
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7M select BR2_ARM_CPU_ARMV7M
depends on !BR2_ARCH_IS_64
config BR2_cortex_m4 config BR2_cortex_m4
bool "cortex-M4" bool "cortex-M4"
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7M select BR2_ARM_CPU_ARMV7M
depends on !BR2_ARCH_IS_64
config BR2_fa526 config BR2_fa526
bool "fa526/626" bool "fa526/626"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
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_pj4 config BR2_pj4
bool "pj4" bool "pj4"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_HAS_VFPV3
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_strongarm config BR2_strongarm
bool "strongarm sa110/sa1100" bool "strongarm sa110/sa1100"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
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_xscale config BR2_xscale
bool "xscale" bool "xscale"
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_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 config BR2_iwmmxt
bool "iwmmxt" bool "iwmmxt"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
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
endchoice endchoice
config BR2_ARM_ENABLE_NEON config BR2_ARM_ENABLE_NEON
@ -284,7 +336,7 @@ endchoice
choice choice
prompt "Floating point strategy" prompt "Floating point strategy"
depends on BR2_ARM_EABI || BR2_ARM_EABIHF default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8
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
@ -395,10 +447,25 @@ 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_FP_ARMV8
bool "FP-ARMv8"
depends on BR2_ARM_CPU_HAS_FP_ARMV8
help
This option allows to use the ARMv8 floating point unit.
config BR2_ARM_FPU_NEON_FP_ARMV8
bool "NEON/FP-ARMv8"
depends on BR2_ARM_CPU_HAS_FP_ARMV8
depends on BR2_ARM_CPU_HAS_NEON
help
This option allows to use both the ARMv8 floating point unit
and the NEON SIMD unit for floating point operations.
endchoice endchoice
choice choice
prompt "ARM instruction set" prompt "ARM instruction set"
depends on BR2_arm || BR2_armeb
config BR2_ARM_INSTRUCTIONS_ARM config BR2_ARM_INSTRUCTIONS_ARM
bool "ARM" bool "ARM"
@ -436,10 +503,12 @@ endchoice
config BR2_ARCH config BR2_ARCH
default "arm" if BR2_arm default "arm" if BR2_arm
default "armeb" if BR2_armeb default "armeb" if BR2_armeb
default "aarch64" if BR2_aarch64
default "aarch64_be" if BR2_aarch64_be
config BR2_ENDIAN config BR2_ENDIAN
default "LITTLE" if BR2_arm default "LITTLE" if (BR2_arm || BR2_aarch64)
default "BIG" if BR2_armeb default "BIG" if (BR2_armeb || BR2_aarch64_be)
config BR2_GCC_TARGET_CPU config BR2_GCC_TARGET_CPU
default "arm920t" if BR2_arm920t default "arm920t" if BR2_arm920t
@ -465,11 +534,22 @@ config BR2_GCC_TARGET_CPU
default "strongarm" if BR2_strongarm default "strongarm" if BR2_strongarm
default "xscale" if BR2_xscale default "xscale" if BR2_xscale
default "iwmmxt" if BR2_iwmmxt default "iwmmxt" if BR2_iwmmxt
default "cortex-a53" if (BR2_cortex_a53 && !BR2_ARCH_IS_64)
default "cortex-a53+fp" if (BR2_cortex_a53 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
default "cortex-a53+fp+simd" if (BR2_cortex_a53 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
default "cortex-a57" if (BR2_cortex_a57 && !BR2_ARCH_IS_64)
default "cortex-a57+fp" if (BR2_cortex_a57 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
default "cortex-a57+fp+simd" if (BR2_cortex_a57 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
default "cortex-a72" if (BR2_cortex_a72 && !BR2_ARCH_IS_64)
default "cortex-a72+fp" if (BR2_cortex_a72 && BR2_ARCH_IS_64 && BR2_ARM_FPU_FP_ARMV8)
default "cortex-a72+fp+simd" if (BR2_cortex_a72 && BR2_ARCH_IS_64 && BR2_ARM_FPU_NEON_FP_ARMV8)
config BR2_GCC_TARGET_ABI config BR2_GCC_TARGET_ABI
default "aapcs-linux" default "aapcs-linux" if BR2_arm || BR2_armeb
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
@ -477,6 +557,8 @@ 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 "fp-armv8" if BR2_ARM_FPU_FP_ARMV8
default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8
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,7 +1,7 @@
choice choice
prompt "Target CPU" prompt "Target CPU"
depends on BR2_bfin depends on BR2_bfin
default BR2_bf609 default BR2_bf532
help help
Specify target CPU Specify target CPU
config BR2_bf606 config BR2_bf606

View File

@ -35,7 +35,3 @@ endchoice
config BR2_GCC_TARGET_CPU config BR2_GCC_TARGET_CPU
default "68040" if BR2_m68k_68040 default "68040" if BR2_m68k_68040
default "5208" if BR2_m68k_cf5208 default "5208" if BR2_m68k_cf5208
config BR2_GCC_TARGET_ARCH
default "m68k" if BR2_m68k_m68k
default "cf" if BR2_m68k_cf

View File

@ -1,3 +1,21 @@
# mips default CPU ISAs
config BR2_MIPS_CPU_MIPS32
bool
config BR2_MIPS_CPU_MIPS32R2
bool
config BR2_MIPS_CPU_MIPS32R5
bool
config BR2_MIPS_CPU_MIPS32R6
bool
config BR2_MIPS_CPU_MIPS64
bool
config BR2_MIPS_CPU_MIPS64R2
bool
config BR2_MIPS_CPU_MIPS64R5
bool
config BR2_MIPS_CPU_MIPS64R6
bool
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
@ -6,27 +24,78 @@ choice
help help
Specific CPU variant to use Specific CPU variant to use
64bit cabable: 64, 64r2, 64r6 64bit cabable: 64, 64r2, 64r5, 64r6
non-64bit capable: 32, 32r2, 32r6 non-64bit capable: 32, 32r2, 32r5, 32r6
config BR2_mips_32 config BR2_mips_32
bool "mips 32" bool "Generic MIPS32"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32
config BR2_mips_32r2 config BR2_mips_32r2
bool "mips 32r2" bool "Generic MIPS32R2"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R2
config BR2_mips_32r5
bool "Generic MIPS32R5"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5
config BR2_mips_32r6 config BR2_mips_32r6
bool "mips 32r6" bool "Generic MIPS32R6"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R6
config BR2_mips_interaptiv
bool "interAptiv"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R2
config BR2_mips_m5150
bool "M5150"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5
config BR2_mips_m6250
bool "M6250"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R6
config BR2_mips_p5600
bool "P5600"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5
config BR2_mips_xburst
bool "XBurst"
depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R2
help
The Ingenic XBurst is a MIPS32R2 microprocessor. It has a
bug in the FPU that can generate incorrect results in
certain cases. The problem shows up when you have several
fused madd instructions in sequence with dependant
operands. This requires the -mno-fused-madd compiler option
to be used in order to prevent emitting these instructions.
See http://www.ingenic.com/en/?xburst.html
config BR2_mips_64 config BR2_mips_64
bool "mips 64" bool "Generic MIPS64"
depends on BR2_ARCH_IS_64 depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64
config BR2_mips_64r2 config BR2_mips_64r2
bool "mips 64r2" bool "Generic MIPS64R2"
depends on BR2_ARCH_IS_64 depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R2
config BR2_mips_64r5
bool "Generic MIPS64R5"
depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R5
config BR2_mips_64r6 config BR2_mips_64r6
bool "mips 64r6" bool "Generic MIPS64R6"
depends on BR2_ARCH_IS_64 depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R6
config BR2_mips_i6400
bool "I6400"
depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R6
config BR2_mips_p6600
bool "P6600"
depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R6
endchoice endchoice
@ -70,10 +139,19 @@ config BR2_ENDIAN
config BR2_GCC_TARGET_ARCH config BR2_GCC_TARGET_ARCH
default "mips32" if BR2_mips_32 default "mips32" if BR2_mips_32
default "mips32r2" if BR2_mips_32r2 default "mips32r2" if BR2_mips_32r2
default "mips32r5" if BR2_mips_32r5
default "mips32r6" if BR2_mips_32r6 default "mips32r6" if BR2_mips_32r6
default "interaptiv" if BR2_mips_interaptiv
default "m5101" if BR2_mips_m5150
default "m6201" if BR2_mips_m6250
default "p5600" if BR2_mips_p5600
default "mips32r2" if BR2_mips_xburst
default "mips64" if BR2_mips_64 default "mips64" if BR2_mips_64
default "mips64r2" if BR2_mips_64r2 default "mips64r2" if BR2_mips_64r2
default "mips64r5" if BR2_mips_64r5
default "mips64r6" if BR2_mips_64r6 default "mips64r6" if BR2_mips_64r6
default "i6400" if BR2_mips_i6400
default "p6600" if BR2_mips_p6600
config BR2_MIPS_OABI32 config BR2_MIPS_OABI32
bool bool

5
arch/Config.in.or1k Normal file
View File

@ -0,0 +1,5 @@
config BR2_ARCH
default "or1k"
config BR2_ENDIAN
default "BIG"

View File

@ -23,8 +23,7 @@ config BR2_ARCH
default "sh4eb" if BR2_sh4eb default "sh4eb" if BR2_sh4eb
default "sh4a" if BR2_sh4a default "sh4a" if BR2_sh4a
default "sh4aeb" if BR2_sh4aeb default "sh4aeb" if BR2_sh4aeb
default "sh64" if BR2_sh64
config BR2_ENDIAN config BR2_ENDIAN
default "LITTLE" if BR2_sh4 || BR2_sh4a || BR2_sh64 default "LITTLE" if BR2_sh4 || BR2_sh4a
default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb

View File

@ -0,0 +1,39 @@
From f30c692c1f9ef0e93bee2b408a24baa017f1ca9d Mon Sep 17 00:00:00 2001
From: Vladimir Serbinenko <phcoder@gmail.com>
Date: Thu, 7 Nov 2013 01:01:47 +0100
Subject: [PATCH] * grub-core/gettext/gettext.c (main_context),
(secondary_context): Define after defining type and not before.
[Thomas: backport from upstream commit
f30c692c1f9ef0e93bee2b408a24baa017f1ca9d, and remove ChangeLog
modifications to avoid conflicts.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
grub-core/gettext/gettext.c | 4 ++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c
index df73570..4880cef 100644
--- a/grub-core/gettext/gettext.c
+++ b/grub-core/gettext/gettext.c
@@ -34,8 +34,6 @@ GRUB_MOD_LICENSE ("GPLv3+");
http://www.gnu.org/software/autoconf/manual/gettext/MO-Files.html .
*/
-static struct grub_gettext_context main_context, secondary_context;
-
static const char *(*grub_gettext_original) (const char *s);
struct grub_gettext_msg
@@ -69,6 +67,8 @@ struct grub_gettext_context
struct grub_gettext_msg *grub_gettext_msg_list;
};
+static struct grub_gettext_context main_context, secondary_context;
+
#define MO_MAGIC_NUMBER 0x950412de
static grub_err_t
--
2.7.4

View File

@ -45,6 +45,9 @@ endif
# the confusion, it also uses NM, OBJCOPY and STRIP to build the # the confusion, it also uses NM, OBJCOPY and STRIP to build the
# bootloader itself; none of these are used to build the native # bootloader itself; none of these are used to build the native
# tools. # tools.
#
# NOTE: TARGET_STRIP is overridden by BR2_STRIP_none, so always
# use the cross compile variant to ensure grub2 builds
GRUB2_CONF_ENV = \ GRUB2_CONF_ENV = \
$(HOST_CONFIGURE_OPTS) \ $(HOST_CONFIGURE_OPTS) \
@ -55,14 +58,14 @@ GRUB2_CONF_ENV = \
TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
NM="$(TARGET_NM)" \ NM="$(TARGET_NM)" \
OBJCOPY="$(TARGET_OBJCOPY)" \ OBJCOPY="$(TARGET_OBJCOPY)" \
STRIP="$(TARGET_STRIP)" STRIP="$(TARGET_CROSS)strip"
GRUB2_CONF_OPTS = \ GRUB2_CONF_OPTS = \
--target=$(GRUB2_TARGET) \ --target=$(GRUB2_TARGET) \
--with-platform=$(GRUB2_PLATFORM) \ --with-platform=$(GRUB2_PLATFORM) \
--disable-grub-mkfont \ --disable-grub-mkfont \
--enable-efiemu=no \ --enable-efiemu=no \
--enable-liblzma=no \ ac_cv_lib_lzma_lzma_code=no \
--enable-device-mapper=no \ --enable-device-mapper=no \
--enable-libzfs=no \ --enable-libzfs=no \
--disable-werror --disable-werror

View File

@ -0,0 +1,22 @@
Description: Disable PIE to avoid FTBFS on amd64
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1579023
Author: Graham Inggs <ginggs@ubuntu.com>
Last-Update: 2016-05-06
gcc 6.x has PIE support enabled by default, which causes a build issue
with syslinux. This patch disables PIE support in the relevant
syslinux Makefile.
Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
--- a/gpxe/src/Makefile
+++ b/gpxe/src/Makefile
@@ -4,7 +4,7 @@
#
CLEANUP :=
-CFLAGS :=
+CFLAGS := -fno-PIE
ASFLAGS :=
LDFLAGS :=
MAKEDEPS := Makefile

View File

@ -0,0 +1,39 @@
From 7c8d81605302e7d7fdd3e7d8eb69302bddc64a2c Mon Sep 17 00:00:00 2001
From: Alexey Brodkin <abrodkin@synopsys.com>
Date: Fri, 16 Sep 2016 12:12:26 +0300
Subject: [PATCH] arc: Use -mcpu=XXX instead of obsolete -marcXXX
With newer ARC tools old way of CPU specification gets obsolete,
so we're switching to newer and more common way of setting "-mcpu".
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
arch/arc/config.mk | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arc/config.mk b/arch/arc/config.mk
index 7c974f0..13676bd 100644
--- a/arch/arc/config.mk
+++ b/arch/arc/config.mk
@@ -31,15 +31,15 @@ CONFIG_MMU = 1
endif
ifdef CONFIG_CPU_ARC750D
-PLATFORM_CPPFLAGS += -marc700
+PLATFORM_CPPFLAGS += -mcpu=arc700
endif
ifdef CONFIG_CPU_ARC770D
-PLATFORM_CPPFLAGS += -marc700 -mlock -mswape
+PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape
endif
ifdef CONFIG_CPU_ARCEM6
-PLATFORM_CPPFLAGS += -marcem
+PLATFORM_CPPFLAGS += -mcpu=arcem
endif
ifdef CONFIG_CPU_ARCHS34
--
2.7.4

View File

@ -0,0 +1,39 @@
From 7c8d81605302e7d7fdd3e7d8eb69302bddc64a2c Mon Sep 17 00:00:00 2001
From: Alexey Brodkin <abrodkin@synopsys.com>
Date: Fri, 16 Sep 2016 12:12:26 +0300
Subject: [PATCH] arc: Use -mcpu=XXX instead of obsolete -marcXXX
With newer ARC tools old way of CPU specification gets obsolete,
so we're switching to newer and more common way of setting "-mcpu".
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
arch/arc/config.mk | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arc/config.mk b/arch/arc/config.mk
index 7c974f0..13676bd 100644
--- a/arch/arc/config.mk
+++ b/arch/arc/config.mk
@@ -31,15 +31,15 @@ CONFIG_MMU = 1
endif
ifdef CONFIG_CPU_ARC750D
-PLATFORM_CPPFLAGS += -marc700
+PLATFORM_CPPFLAGS += -mcpu=arc700
endif
ifdef CONFIG_CPU_ARC770D
-PLATFORM_CPPFLAGS += -marc700 -mlock -mswape
+PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape
endif
ifdef CONFIG_CPU_ARCEM6
-PLATFORM_CPPFLAGS += -marcem
+PLATFORM_CPPFLAGS += -mcpu=arcem
endif
ifdef CONFIG_CPU_ARCHS34
--
2.7.4

View File

@ -38,7 +38,7 @@ choice
Select the specific U-Boot version you want to use Select the specific U-Boot version you want to use
config BR2_TARGET_UBOOT_LATEST_VERSION config BR2_TARGET_UBOOT_LATEST_VERSION
bool "2016.03" bool "2017.01"
config BR2_TARGET_UBOOT_CUSTOM_VERSION config BR2_TARGET_UBOOT_CUSTOM_VERSION
bool "Custom version" bool "Custom version"
@ -86,7 +86,7 @@ endif
config BR2_TARGET_UBOOT_VERSION config BR2_TARGET_UBOOT_VERSION
string string
default "2016.03" if BR2_TARGET_UBOOT_LATEST_VERSION default "2017.01" if BR2_TARGET_UBOOT_LATEST_VERSION
default BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE \ default BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE \
if BR2_TARGET_UBOOT_CUSTOM_VERSION if BR2_TARGET_UBOOT_CUSTOM_VERSION
default "custom" if BR2_TARGET_UBOOT_CUSTOM_TARBALL default "custom" if BR2_TARGET_UBOOT_CUSTOM_TARBALL
@ -95,6 +95,7 @@ config BR2_TARGET_UBOOT_VERSION
config BR2_TARGET_UBOOT_PATCH config BR2_TARGET_UBOOT_PATCH
string "Custom U-Boot patches" string "Custom U-Boot patches"
default BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR if BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR != "" # legacy
help help
A space-separated list of patches to apply to U-Boot. A space-separated list of patches to apply to U-Boot.
Each patch can be described as an URL, a local file path, Each patch can be described as an URL, a local file path,
@ -137,9 +138,15 @@ config BR2_TARGET_UBOOT_NEEDS_DTC
Select this option if your U-Boot board configuration Select this option if your U-Boot board configuration
requires the Device Tree compiler to be available. requires the Device Tree compiler to be available.
choice config BR2_TARGET_UBOOT_NEEDS_OPENSSL
prompt "U-Boot binary format" bool "U-Boot needs OpenSSL"
default BR2_TARGET_UBOOT_FORMAT_BIN help
Select this option if your U-Boot board configuration
requires OpenSSL to be available on the host. This is
typically the case when the board configuration has
CONFIG_FIT_SIGNATURE enabled.
menu "U-Boot binary format"
config BR2_TARGET_UBOOT_FORMAT_AIS config BR2_TARGET_UBOOT_FORMAT_AIS
bool "u-boot.ais" bool "u-boot.ais"
@ -150,6 +157,7 @@ config BR2_TARGET_UBOOT_FORMAT_AIS
config BR2_TARGET_UBOOT_FORMAT_BIN config BR2_TARGET_UBOOT_FORMAT_BIN
bool "u-boot.bin" bool "u-boot.bin"
default y
config BR2_TARGET_UBOOT_FORMAT_DTB_IMG config BR2_TARGET_UBOOT_FORMAT_DTB_IMG
bool "u-boot-dtb.img" bool "u-boot-dtb.img"
@ -252,19 +260,21 @@ config BR2_TARGET_UBOOT_FORMAT_CUSTOM
help help
On some platforms, the standard U-Boot binary is not called On some platforms, the standard U-Boot binary is not called
u-boot.bin, but u-boot<something>.bin. If this is your case, u-boot.bin, but u-boot<something>.bin. If this is your case,
you should select this option and specify the correct name you should select this option and specify the correct name(s)
in BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME. in BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME.
endchoice
config BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME config BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME
string "U-Boot binary format: custom name" string "U-Boot binary format: custom names"
depends on BR2_TARGET_UBOOT_FORMAT_CUSTOM depends on BR2_TARGET_UBOOT_FORMAT_CUSTOM
help help
Specify the correct name of the output binary created by In case the U-Boot binary for the target platform is not among
U-Boot, if it is not one of the default names. For example: the default names, one or more custom names can be listed here.
Use space to separate multiple names.
Example:
u-boot_magic.bin u-boot_magic.bin
endmenu
config BR2_TARGET_UBOOT_OMAP_IFT config BR2_TARGET_UBOOT_OMAP_IFT
depends on BR2_TARGET_UBOOT_FORMAT_BIN depends on BR2_TARGET_UBOOT_FORMAT_BIN
depends on BR2_arm || BR2_armeb depends on BR2_arm || BR2_armeb
@ -313,7 +323,7 @@ config BR2_TARGET_UBOOT_SPL_NAME
default "spl/u-boot-spl.bin" default "spl/u-boot-spl.bin"
depends on BR2_TARGET_UBOOT_SPL depends on BR2_TARGET_UBOOT_SPL
help help
This is the name of the SPL binary, generated during A space-separated list of SPL binaries, generated during
u-boot build. For most platform it is spl/u-boot-spl.bin u-boot build. For most platform it is spl/u-boot-spl.bin
but not always. It is MLO on OMAP for example. but not always. It is MLO on OMAP for example.
@ -348,9 +358,13 @@ menuconfig BR2_TARGET_UBOOT_ENVIMAGE
if BR2_TARGET_UBOOT_ENVIMAGE if BR2_TARGET_UBOOT_ENVIMAGE
config BR2_TARGET_UBOOT_ENVIMAGE_SOURCE config BR2_TARGET_UBOOT_ENVIMAGE_SOURCE
string "Source file for environment" string "Source files for environment"
help help
Text file describing the environment. Text files describing the environment. Files should have
lines of the form var=value, one per line. Blank lines and
lines starting with a # are ignored.
Multiple source files are concatenated in the order listed.
config BR2_TARGET_UBOOT_ENVIMAGE_SIZE config BR2_TARGET_UBOOT_ENVIMAGE_SIZE
string "Size of environment" string "Size of environment"

View File

@ -1,2 +1,2 @@
# Locally computed: # Locally computed:
sha256 e49337262ecac44dbdeac140f2c6ebd1eba345e0162b0464172e7f05583ed7bb u-boot-2016.03.tar.bz2 sha256 6c425175f93a4bcf2ec9faf5658ef279633dbd7856a293d95bd1ff516528ecf2 u-boot-2017.01.tar.bz2

View File

@ -36,44 +36,81 @@ BR_NO_CHECK_HASH_FOR += $(UBOOT_SOURCE)
endif endif
endif endif
ifeq ($(BR2_TARGET_UBOOT_FORMAT_BIN),y)
UBOOT_BINS += u-boot.bin
endif
ifeq ($(BR2_TARGET_UBOOT_FORMAT_ELF),y) ifeq ($(BR2_TARGET_UBOOT_FORMAT_ELF),y)
UBOOT_BIN = u-boot UBOOT_BINS += u-boot
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_KWB),y) # To make elf usable for debuging on ARC use special target
UBOOT_BIN = u-boot.kwb ifeq ($(BR2_arc),y)
UBOOT_MAKE_TARGET = $(UBOOT_BIN) UBOOT_MAKE_TARGET += mdbtrick
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_AIS),y) endif
UBOOT_BIN = u-boot.ais endif
UBOOT_MAKE_TARGET = $(UBOOT_BIN)
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_LDR),y) # Call 'make all' unconditionally
UBOOT_BIN = u-boot.ldr UBOOT_MAKE_TARGET += all
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND_BIN),y)
UBOOT_BIN = u-boot-nand.bin ifeq ($(BR2_TARGET_UBOOT_FORMAT_KWB),y)
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_IMG),y) UBOOT_BINS += u-boot.kwb
UBOOT_BIN = u-boot-dtb.img UBOOT_MAKE_TARGET += u-boot.kwb
UBOOT_MAKE_TARGET = all $(UBOOT_BIN) endif
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMG),y)
UBOOT_BIN = u-boot.img ifeq ($(BR2_TARGET_UBOOT_FORMAT_AIS),y)
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMX),y) UBOOT_BINS += u-boot.ais
UBOOT_BIN = u-boot.imx UBOOT_MAKE_TARGET += u-boot.ais
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_SB),y) endif
UBOOT_BIN = u-boot.sb
UBOOT_MAKE_TARGET = $(UBOOT_BIN) ifeq ($(BR2_TARGET_UBOOT_FORMAT_LDR),y)
UBOOT_BINS += u-boot.ldr
endif
ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND_BIN),y)
UBOOT_BINS += u-boot-nand.bin
endif
ifeq ($(BR2_TARGET_UBOOT_FORMAT_DTB_IMG),y)
UBOOT_BINS += u-boot-dtb.img
UBOOT_MAKE_TARGET += u-boot-dtb.img
endif
ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMG),y)
UBOOT_BINS += u-boot.img
UBOOT_MAKE_TARGET += u-boot.img
endif
ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMX),y)
UBOOT_BINS += u-boot.imx
UBOOT_MAKE_TARGET += u-boot.imx
endif
ifeq ($(BR2_TARGET_UBOOT_FORMAT_SB),y)
UBOOT_BINS += u-boot.sb
UBOOT_MAKE_TARGET += u-boot.sb
# mxsimage needs OpenSSL # mxsimage needs OpenSSL
UBOOT_DEPENDENCIES += host-elftosb host-openssl UBOOT_DEPENDENCIES += host-elftosb host-openssl
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_SD),y) endif
ifeq ($(BR2_TARGET_UBOOT_FORMAT_SD),y)
# BootStream (.sb) is generated by U-Boot, we convert it to SD format # BootStream (.sb) is generated by U-Boot, we convert it to SD format
UBOOT_BIN = u-boot.sd UBOOT_BINS += u-boot.sd
UBOOT_MAKE_TARGET = u-boot.sb UBOOT_MAKE_TARGET += u-boot.sb
UBOOT_DEPENDENCIES += host-elftosb host-openssl UBOOT_DEPENDENCIES += host-elftosb host-openssl
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND),y) endif
UBOOT_BIN = u-boot.nand
UBOOT_MAKE_TARGET = u-boot.sb ifeq ($(BR2_TARGET_UBOOT_FORMAT_NAND),y)
UBOOT_BINS += u-boot.nand
UBOOT_MAKE_TARGET += u-boot.sb
UBOOT_DEPENDENCIES += host-elftosb host-openssl UBOOT_DEPENDENCIES += host-elftosb host-openssl
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_CUSTOM),y) endif
UBOOT_BIN = $(call qstrip,$(BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME))
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_CUSTOM),y)
UBOOT_BIN = u-boot.bin UBOOT_BINS += $(call qstrip,$(BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME))
UBOOT_BIN_IFT = $(UBOOT_BIN).ift endif
ifeq ($(BR2_TARGET_UBOOT_OMAP_IFT),y)
UBOOT_BINS += u-boot.bin
UBOOT_BIN_IFT = u-boot.bin.ift
endif endif
# The kernel calls AArch64 'arm64', but U-Boot calls it just 'arm', so # The kernel calls AArch64 'arm64', but U-Boot calls it just 'arm', so
@ -89,13 +126,17 @@ endif
UBOOT_MAKE_OPTS += \ UBOOT_MAKE_OPTS += \
CROSS_COMPILE="$(TARGET_CROSS)" \ CROSS_COMPILE="$(TARGET_CROSS)" \
ARCH=$(UBOOT_ARCH) \ ARCH=$(UBOOT_ARCH) \
HOSTCFLAGS="$(HOST_CFLAGS)" \ HOSTCC="$(HOSTCC) $(HOST_CFLAGS)" \
HOSTLDFLAGS="$(HOST_LDFLAGS)" HOSTLDFLAGS="$(HOST_LDFLAGS)"
ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y) ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y)
UBOOT_DEPENDENCIES += host-dtc UBOOT_DEPENDENCIES += host-dtc
endif endif
ifeq ($(BR2_TARGET_UBOOT_NEEDS_OPENSSL),y)
UBOOT_DEPENDENCIES += host-openssl
endif
# prior to u-boot 2013.10 the license info was in COPYING. Copy it so # prior to u-boot 2013.10 the license info was in COPYING. Copy it so
# legal-info finds it # legal-info finds it
define UBOOT_COPY_OLD_LICENSE_FILE define UBOOT_COPY_OLD_LICENSE_FILE
@ -140,6 +181,12 @@ endif # BR2_TARGET_UBOOT_USE_DEFCONFIG
UBOOT_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig UBOOT_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
UBOOT_KCONFIG_OPTS = $(UBOOT_MAKE_OPTS) UBOOT_KCONFIG_OPTS = $(UBOOT_MAKE_OPTS)
define UBOOT_HELP_CMDS
@echo ' uboot-menuconfig - Run U-Boot menuconfig'
@echo ' uboot-savedefconfig - Run U-Boot savedefconfig'
@echo ' uboot-update-defconfig - Save the U-Boot configuration to the path specified'
@echo ' by BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE'
endef
endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY endif # BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY
define UBOOT_BUILD_CMDS define UBOOT_BUILD_CMDS
@ -162,15 +209,22 @@ define UBOOT_BUILD_OMAP_IFT
endef endef
define UBOOT_INSTALL_IMAGES_CMDS define UBOOT_INSTALL_IMAGES_CMDS
cp -dpf $(@D)/$(UBOOT_BIN) $(BINARIES_DIR)/ $(foreach f,$(UBOOT_BINS), \
cp -dpf $(@D)/$(f) $(BINARIES_DIR)/
)
$(if $(BR2_TARGET_UBOOT_FORMAT_NAND), $(if $(BR2_TARGET_UBOOT_FORMAT_NAND),
cp -dpf $(@D)/$(UBOOT_MAKE_TARGET) $(BINARIES_DIR)) cp -dpf $(@D)/u-boot.sb $(BINARIES_DIR))
$(if $(BR2_TARGET_UBOOT_SPL), $(if $(BR2_TARGET_UBOOT_SPL),
cp -dpf $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) $(BINARIES_DIR)/) $(foreach f,$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)), \
cp -dpf $(@D)/$(f) $(BINARIES_DIR)/
)
)
$(if $(BR2_TARGET_UBOOT_ENVIMAGE), $(if $(BR2_TARGET_UBOOT_ENVIMAGE),
cat $(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)) | \
$(HOST_DIR)/usr/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \ $(HOST_DIR)/usr/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \
$(if $(BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT),-r) \ $(if $(BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT),-r) \
-o $(BINARIES_DIR)/uboot-env.bin $(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)) $(if $(filter BIG,$(BR2_ENDIAN)),-b) \
-o $(BINARIES_DIR)/uboot-env.bin -)
endef endef
define UBOOT_INSTALL_OMAP_IFT_IMAGE define UBOOT_INSTALL_OMAP_IFT_IMAGE
@ -193,8 +247,9 @@ endif
ifeq ($(BR2_TARGET_UBOOT_ZYNQ_IMAGE),y) ifeq ($(BR2_TARGET_UBOOT_ZYNQ_IMAGE),y)
define UBOOT_GENERATE_ZYNQ_IMAGE define UBOOT_GENERATE_ZYNQ_IMAGE
$(HOST_DIR)/usr/bin/python2 $(HOST_DIR)/usr/bin/zynq-boot-bin.py \ $(HOST_DIR)/usr/bin/python2 \
-u $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) \ $(HOST_DIR)/usr/bin/zynq-boot-bin.py \
-u $(@D)/$(firstword $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME))) \
-o $(BINARIES_DIR)/BOOT.BIN -o $(BINARIES_DIR)/BOOT.BIN
endef endef
UBOOT_DEPENDENCIES += host-zynq-boot-bin UBOOT_DEPENDENCIES += host-zynq-boot-bin
@ -203,8 +258,11 @@ endif
ifeq ($(BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC),y) ifeq ($(BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC),y)
define UBOOT_CRC_ALTERA_SOCFPGA_IMAGE define UBOOT_CRC_ALTERA_SOCFPGA_IMAGE
$(HOST_DIR)/usr/bin/mkpimage -o $(BINARIES_DIR)/$(notdir $(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME))).crc \ $(foreach f,$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)), \
$(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) $(HOST_DIR)/usr/bin/mkpimage \
-o $(BINARIES_DIR)/$(notdir $(call qstrip,$(f))).crc \
$(@D)/$(call qstrip,$(f))
)
endef endef
UBOOT_DEPENDENCIES += host-mkpimage UBOOT_DEPENDENCIES += host-mkpimage
UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_CRC_ALTERA_SOCFPGA_IMAGE UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_CRC_ALTERA_SOCFPGA_IMAGE

View File

@ -7,7 +7,8 @@
ROOTFS_CLOOP_DEPENDENCIES = host-cloop host-cdrkit ROOTFS_CLOOP_DEPENDENCIES = host-cloop host-cdrkit
define ROOTFS_CLOOP_CMD define ROOTFS_CLOOP_CMD
$(HOST_DIR)/usr/bin/genisoimage -r $(TARGET_DIR) | $(HOST_DIR)/usr/bin/create_compressed_fs - 65536 > $@ $(HOST_DIR)/usr/bin/genisoimage -r $(TARGET_DIR) | \
$(HOST_DIR)/usr/bin/create_compressed_fs - 65536 > $@
endef endef
$(eval $(call ROOTFS_TARGET,cloop)) $(eval $(call ROOTFS_TARGET,cloop))

View File

@ -76,22 +76,29 @@ $$(BINARIES_DIR)/rootfs.$(1): target-finalize $$(ROOTFS_$(2)_DEPENDENCIES)
rm -f $$(FAKEROOT_SCRIPT) rm -f $$(FAKEROOT_SCRIPT)
rm -f $$(TARGET_DIR_WARNING_FILE) rm -f $$(TARGET_DIR_WARNING_FILE)
rm -f $$(USERS_TABLE) rm -f $$(USERS_TABLE)
echo '#!/bin/sh' > $$(FAKEROOT_SCRIPT)
echo "set -e" >> $$(FAKEROOT_SCRIPT) echo "set -e" >> $$(FAKEROOT_SCRIPT)
echo "chown -h -R 0:0 $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT) echo "chown -h -R 0:0 $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
ifneq ($$(ROOTFS_USERS_TABLES),) ifneq ($$(ROOTFS_USERS_TABLES),)
cat $$(ROOTFS_USERS_TABLES) >> $$(USERS_TABLE) cat $$(ROOTFS_USERS_TABLES) >> $$(USERS_TABLE)
endif endif
printf '$$(subst $$(sep),\n,$$(PACKAGES_USERS))' >> $$(USERS_TABLE) $$(call PRINTF,$$(PACKAGES_USERS)) >> $$(USERS_TABLE)
#PATH=$$(BR_PATH) $$(TOPDIR)/support/scripts/mkusers $$(USERS_TABLE) $$(TARGET_DIR) >> $$(FAKEROOT_SCRIPT) #PATH=$$(BR_PATH) $$(TOPDIR)/support/scripts/mkusers $$(USERS_TABLE) $$(TARGET_DIR) >> $$(FAKEROOT_SCRIPT)
ifneq ($$(ROOTFS_DEVICE_TABLES),) ifneq ($$(ROOTFS_DEVICE_TABLES),)
cat $$(ROOTFS_DEVICE_TABLES) > $$(FULL_DEVICE_TABLE) cat $$(ROOTFS_DEVICE_TABLES) > $$(FULL_DEVICE_TABLE)
ifeq ($$(BR2_ROOTFS_DEVICE_CREATION_STATIC),y) ifeq ($$(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
printf '$$(subst $$(sep),\n,$$(PACKAGES_DEVICES_TABLE))' >> $$(FULL_DEVICE_TABLE) $$(call PRINTF,$$(PACKAGES_DEVICES_TABLE)) >> $$(FULL_DEVICE_TABLE)
endif endif
printf '$$(subst $$(sep),\n,$$(PACKAGES_PERMISSIONS_TABLE))' >> $$(FULL_DEVICE_TABLE) endif
$$(call PRINTF,$$(PACKAGES_PERMISSIONS_TABLE)) >> $$(FULL_DEVICE_TABLE)
#echo "$$(HOST_DIR)/usr/bin/makedevs -d $$(FULL_DEVICE_TABLE) $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT) #echo "$$(HOST_DIR)/usr/bin/makedevs -d $$(FULL_DEVICE_TABLE) $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
$$(foreach s,$$(call qstrip,$$(BR2_ROOTFS_POST_FAKEROOT_SCRIPT)),\
echo "echo '$$(TERM_BOLD)>>> Executing fakeroot script $$(s)$$(TERM_RESET)'" >> $$(FAKEROOT_SCRIPT); \
echo $$(s) $$(TARGET_DIR) $$(BR2_ROOTFS_POST_SCRIPT_ARGS) >> $$(FAKEROOT_SCRIPT)$$(sep))
ifeq ($$(BR2_REPRODUCIBLE),y)
echo "find $$(TARGET_DIR) -print0 | xargs -0 -r touch -hd @$$(SOURCE_DATE_EPOCH)" >> $$(FAKEROOT_SCRIPT)
endif endif
echo "$$(ROOTFS_$(2)_CMD)" >> $$(FAKEROOT_SCRIPT) $$(call PRINTF,$$(ROOTFS_$(2)_CMD)) >> $$(FAKEROOT_SCRIPT)
chmod a+x $$(FAKEROOT_SCRIPT) chmod a+x $$(FAKEROOT_SCRIPT)
PATH=$$(BR_PATH) $$(HOST_DIR)/usr/bin/fakeroot -- $$(FAKEROOT_SCRIPT) PATH=$$(BR_PATH) $$(HOST_DIR)/usr/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
$$(INSTALL) -m 0644 support/misc/target-dir-warning.txt $$(TARGET_DIR_WARNING_FILE) $$(INSTALL) -m 0644 support/misc/target-dir-warning.txt $$(TARGET_DIR_WARNING_FILE)

View File

@ -11,7 +11,7 @@ config BR2_TARGET_ROOTFS_EXT2_2
choice choice
bool "ext2/3/4 variant" bool "ext2/3/4 variant"
default BR2_TARGET_ROOTFS_EXT2_2r0 default BR2_TARGET_ROOTFS_EXT2_2r1
config BR2_TARGET_ROOTFS_EXT2_2r0 config BR2_TARGET_ROOTFS_EXT2_2r0
bool "ext2 (rev0)" bool "ext2 (rev0)"

View File

@ -20,12 +20,11 @@ ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)),0)
EXT2_OPTS += -r $(BR2_TARGET_ROOTFS_EXT2_RESBLKS) EXT2_OPTS += -r $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)
endif endif
# Not qstrip-ing the variable, because it may contain spaces, but we must # qstrip results in stripping consecutive spaces into a single one. So the
# qstrip it when checking. Furthermore, we need to further quote it, so # variable is not qstrip-ed to preserve the integrity of the string value.
# that the quotes do not get eaten by the echo statement when creating the EXT2_LABEL := $(subst ",,$(BR2_TARGET_ROOTFS_EXT2_LABEL))
# fakeroot script ifneq ($(EXT2_LABEL),)
ifneq ($(call qstrip,$(BR2_TARGET_ROOTFS_EXT2_LABEL)),) EXT2_OPTS += -l "$(EXT2_LABEL)"
EXT2_OPTS += -l '$(BR2_TARGET_ROOTFS_EXT2_LABEL)'
endif endif
ROOTFS_EXT2_DEPENDENCIES = host-mke2img ROOTFS_EXT2_DEPENDENCIES = host-mke2img

View File

@ -24,7 +24,7 @@
ROOTFS_ISO9660_BOOT_MENU = $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU)) ROOTFS_ISO9660_BOOT_MENU = $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU))
ROOTFS_ISO9660_DEPENDENCIES = host-cdrkit host-fakeroot linux ROOTFS_ISO9660_DEPENDENCIES = host-cdrkit linux
ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y) ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
ROOTFS_ISO9660_USE_INITRD = YES ROOTFS_ISO9660_USE_INITRD = YES

View File

@ -39,8 +39,8 @@ ROOTFS_JFFS2_DEPENDENCIES = host-mtd
ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY),) ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY),)
define ROOTFS_JFFS2_CMD define ROOTFS_JFFS2_CMD
$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $@.nosummary && \ $(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $@.nosummary
$(SUMTOOL) $(SUMTOOL_OPTS) -i $@.nosummary -o $@ && \ $(SUMTOOL) $(SUMTOOL_OPTS) -i $@.nosummary -o $@
rm $@.nosummary rm $@.nosummary
endef endef
else else

View File

@ -26,8 +26,7 @@ endif
define ROOTFS_SQUASHFS_CMD define ROOTFS_SQUASHFS_CMD
$(HOST_DIR)/usr/bin/mksquashfs $(TARGET_DIR) $@ -noappend \ $(HOST_DIR)/usr/bin/mksquashfs $(TARGET_DIR) $@ -noappend \
$(ROOTFS_SQUASHFS_ARGS) && \ $(ROOTFS_SQUASHFS_ARGS)
chmod 0644 $@
endef endef
$(eval $(call ROOTFS_TARGET,squashfs)) $(eval $(call ROOTFS_TARGET,squashfs))

View File

@ -7,7 +7,8 @@
TAR_OPTS := $(call qstrip,$(BR2_TARGET_ROOTFS_TAR_OPTIONS)) TAR_OPTS := $(call qstrip,$(BR2_TARGET_ROOTFS_TAR_OPTIONS))
define ROOTFS_TAR_CMD define ROOTFS_TAR_CMD
tar -c$(TAR_OPTS)f $@ --numeric-owner -C $(TARGET_DIR) . (cd $(TARGET_DIR); find -print0 | LC_ALL=C sort -z | \
tar $(TAR_OPTS) -cf $@ --null --no-recursion -T - --numeric-owner)
endef endef
$(eval $(call ROOTFS_TARGET,tar)) $(eval $(call ROOTFS_TARGET,tar))

View File

@ -20,10 +20,12 @@ else
UBINIZE_CONFIG_FILE_PATH = fs/ubifs/ubinize.cfg UBINIZE_CONFIG_FILE_PATH = fs/ubifs/ubinize.cfg
endif endif
# don't use sed -i as it misbehaves on systems with SELinux enabled when this is
# executed through fakeroot (see #9386)
define ROOTFS_UBI_CMD define ROOTFS_UBI_CMD
$(INSTALL) -m 0644 $(UBINIZE_CONFIG_FILE_PATH) $(BUILD_DIR)/ubinize.cfg ;\ sed 's;BR2_ROOTFS_UBIFS_PATH;$@fs;' \
$(SED) 's;BR2_ROOTFS_UBIFS_PATH;$@fs;' $(BUILD_DIR)/ubinize.cfg ;\ $(UBINIZE_CONFIG_FILE_PATH) > $(BUILD_DIR)/ubinize.cfg
$(HOST_DIR)/usr/sbin/ubinize -o $@ $(UBI_UBINIZE_OPTS) $(BUILD_DIR)/ubinize.cfg ;\ $(HOST_DIR)/usr/sbin/ubinize -o $@ $(UBI_UBINIZE_OPTS) $(BUILD_DIR)/ubinize.cfg
rm $(BUILD_DIR)/ubinize.cfg rm $(BUILD_DIR)/ubinize.cfg
endef endef

View File

@ -1,11 +1,12 @@
menu "Linux Kernel Extensions" menu "Linux Kernel Extensions"
#-------------------------------------------------------------------------------
# Xenomai # Xenomai
config BR2_LINUX_KERNEL_EXT_XENOMAI config BR2_LINUX_KERNEL_EXT_XENOMAI
bool "Adeos/Xenomai Real-time patch" bool "Adeos/Xenomai Real-time patch"
depends on BR2_PACKAGE_XENOMAI_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_i386 || BR2_x86_64 || BR2_arm || \ depends on !BR2_TOOLCHAIN_USES_MUSL
BR2_bfin || BR2_powerpc || BR2_sh4
select BR2_PACKAGE_XENOMAI select BR2_PACKAGE_XENOMAI
help help
Xenomai is split in two parts: a kernel part and a userspace Xenomai is split in two parts: a kernel part and a userspace
@ -24,19 +25,19 @@ config BR2_LINUX_KERNEL_EXT_XENOMAI
Xenomai is know to support Blackfin, SH4, x86, ARM, NIOS2 Xenomai is know to support Blackfin, SH4, x86, ARM, NIOS2
and PowerPC architectures. and PowerPC architectures.
comment "xenomai needs a toolchain w/ threads"
depends on BR2_i386 || BR2_x86_64 || BR2_arm || \
BR2_bfin || BR2_powerpc || BR2_sh4
depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH config BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH
depends on BR2_LINUX_KERNEL_EXT_XENOMAI
string "Path for Adeos patch file" string "Path for Adeos patch file"
depends on BR2_LINUX_KERNEL_EXT_XENOMAI
help help
Optionally, explicitly specify the Adeos patch to use. Optionally, explicitly specify the Adeos patch to use.
Download it at http://download.gna.org/adeos/patches Download it at http://download.gna.org/adeos/patches
and verify that your kernel version in buildroot matches. and verify that your kernel version in buildroot matches.
comment "xenomai needs a uClibc or glibc toolchain w/ threads"
depends on BR2_PACKAGE_XENOMAI_ARCH_SUPPORTS
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL
#-------------------------------------------------------------------------------
# RTAI # RTAI
config BR2_LINUX_KERNEL_EXT_RTAI config BR2_LINUX_KERNEL_EXT_RTAI
bool "RTAI Real-time patch" bool "RTAI Real-time patch"
@ -44,6 +45,17 @@ config BR2_LINUX_KERNEL_EXT_RTAI
help help
RTAI Kernel part. RTAI Kernel part.
#-------------------------------------------------------------------------------
# ev3dev Linux drivers
config BR2_LINUX_KERNEL_EXT_EV3DEV_LINUX_DRIVERS
bool "ev3dev Linux drivers"
select BR2_PACKAGE_EV3DEV_LINUX_DRIVERS
help
Linux drivers for LEGO MINDSTORMS EV3 from the ev3dev project.
https://github.com/ev3dev/lego-linux-drivers
#-------------------------------------------------------------------------------
# fbtft # fbtft
config BR2_LINUX_KERNEL_EXT_FBTFT config BR2_LINUX_KERNEL_EXT_FBTFT
bool "FB TFT drivers" bool "FB TFT drivers"
@ -64,4 +76,56 @@ config BR2_LINUX_KERNEL_EXT_FBTFT
https://github.com/notro/fbtft https://github.com/notro/fbtft
# aufs-standalone
config BR2_LINUX_KERNEL_EXT_AUFS
bool "Aufs Filesystem Module patch"
select BR2_PACKAGE_AUFS
help
Aufs is split in two parts: a kernel part and a userspace
part. Enabling this option automatically selects the aufs
standalone (module) package and patches the Linux kernel
built by Buildroot with the aufs kernel part (ie fs/aufs).
It is important to use the correct branch of aufs-standalone.
if BR2_LINUX_KERNEL_EXT_AUFS
choice
bool "aufs-standalone series"
help
Select the major series of this version. This must match the
major version of your kernel (e.g. for kernels 3.x, select
aufs3.x; for kernels 4.x, select aufs4.x).
Note: neither aufs1.x nor aufs2.x (both for kernels older than
3.x) are supported.
config BR2_LINUX_KERNEL_EXT_AUFS_SERIES_3
bool "aufs3.x"
config BR2_LINUX_KERNEL_EXT_AUFS_SERIES_4
bool "aufs4.x"
endchoice
config BR2_LINUX_KERNEL_EXT_AUFS_SERIES
int
default 3 if BR2_LINUX_KERNEL_EXT_AUFS_SERIES_3
default 4 if BR2_LINUX_KERNEL_EXT_AUFS_SERIES_4
config BR2_LINUX_KERNEL_EXT_AUFS_VERSION
string "aufs-standalone version"
default ""
help
The version you choose must match that of your kernel. Usually,
the sha1 of the cset you want to use; avoid using a branch name
as this yields non-reproducible builds.
See the following resources to see what versions are available:
For aufs3.x: https://sourceforge.net/p/aufs/aufs3-standalone/ref/master/branches/
For aufs4.x: https://github.com/sfjro/aufs4-standalone/branches/all
endif # aufs
endmenu endmenu

View File

@ -18,16 +18,15 @@ config BR2_LINUX_NEEDS_MODULES
# Version selection. We provide the choice between: # Version selection. We provide the choice between:
# #
# 1. A single fairly recent stable kernel version # 1. A single fairly recent stable kernel version
# 2. In case an internal toolchain has been built, the same kernel # 2. A custom stable version
# version as the kernel headers # 3. A custom tarball
# 3. A custom stable version # 4. A set of custom repository locations
# 4. A custom tarball
# #
choice choice
prompt "Kernel version" prompt "Kernel version"
config BR2_LINUX_KERNEL_LATEST_VERSION config BR2_LINUX_KERNEL_LATEST_VERSION
bool "4.4.3" bool "Latest version (4.9.9)"
config BR2_LINUX_KERNEL_CUSTOM_VERSION config BR2_LINUX_KERNEL_CUSTOM_VERSION
bool "Custom version" bool "Custom version"
@ -63,11 +62,11 @@ config BR2_LINUX_KERNEL_CUSTOM_HG
This option allows Buildroot to get the Linux kernel source This option allows Buildroot to get the Linux kernel source
code from a Mercurial repository. code from a Mercurial repository.
config BR2_LINUX_KERNEL_CUSTOM_LOCAL config BR2_LINUX_KERNEL_CUSTOM_SVN
bool "Local directory" bool "Custom Subversion repository"
help help
This option allows Buildroot to get the Linux kernel source This option allows Buildroot to get the Linux kernel source
code from a local directory. code from a Subversion repository.
endchoice endchoice
@ -79,7 +78,7 @@ config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
string "URL of custom kernel tarball" string "URL of custom kernel tarball"
depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL
if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
config BR2_LINUX_KERNEL_CUSTOM_REPO_URL config BR2_LINUX_KERNEL_CUSTOM_REPO_URL
string "URL of custom repository" string "URL of custom repository"
@ -91,26 +90,19 @@ config BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION
default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \ default BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION \
if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != "" # legacy if BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION != "" # legacy
help help
Revision to use in the typical format used by Git/Mercurial Revision to use in the typical format used by Git/Mercurial/Subversion
E.G. a sha id, a tag, branch, .. E.G. a sha id, a tag, branch, ..
endif endif
config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
string "Path to the local directory"
depends on BR2_LINUX_KERNEL_CUSTOM_LOCAL
help
Path to the local directory with the Linux kernel source code.
config BR2_LINUX_KERNEL_VERSION config BR2_LINUX_KERNEL_VERSION
string string
default "4.4.3" if BR2_LINUX_KERNEL_LATEST_VERSION default "4.9.9" if BR2_LINUX_KERNEL_LATEST_VERSION
default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \ default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
if BR2_LINUX_KERNEL_CUSTOM_VERSION if BR2_LINUX_KERNEL_CUSTOM_VERSION
default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \ default BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION \
if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG if BR2_LINUX_KERNEL_CUSTOM_GIT || BR2_LINUX_KERNEL_CUSTOM_HG || BR2_LINUX_KERNEL_CUSTOM_SVN
default "custom" if BR2_LINUX_KERNEL_CUSTOM_LOCAL
# #
# Patch selection # Patch selection
@ -118,7 +110,6 @@ config BR2_LINUX_KERNEL_VERSION
config BR2_LINUX_KERNEL_PATCH config BR2_LINUX_KERNEL_PATCH
string "Custom kernel patches" string "Custom kernel patches"
depends on !BR2_LINUX_KERNEL_CUSTOM_LOCAL
help help
A space-separated list of patches to apply to the A space-separated list of patches to apply to the
kernel. Each patch can be described as an URL, a local file kernel. Each patch can be described as an URL, a local file
@ -136,6 +127,14 @@ choice
config BR2_LINUX_KERNEL_USE_DEFCONFIG config BR2_LINUX_KERNEL_USE_DEFCONFIG
bool "Using an in-tree defconfig file" bool "Using an in-tree defconfig file"
config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
bool "Use the architecture default configuration"
help
This option will use the default configuration for the
selected architecture. I.e, it is equivalent to running
"make ARCH=<foo> defconfig". This is useful on architectures
that have a single defconfig file, such as ARM64.
config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG
bool "Using a custom (def)config file" bool "Using a custom (def)config file"
@ -173,12 +172,13 @@ config BR2_LINUX_KERNEL_UBOOT_IMAGE
choice choice
prompt "Kernel binary format" prompt "Kernel binary format"
default BR2_LINUX_KERNEL_ZIMAGE if BR2_arm || BR2_armeb
config BR2_LINUX_KERNEL_UIMAGE config BR2_LINUX_KERNEL_UIMAGE
bool "uImage" bool "uImage"
depends on BR2_arc || BR2_arm || BR2_armeb || BR2_bfin || \ depends on BR2_arc || BR2_arm || BR2_armeb || BR2_bfin || \
BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \ BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \
BR2_sh || BR2_sh64 || BR2_mips || BR2_mipsel || \ BR2_sh || BR2_mips || BR2_mipsel || \
BR2_mips64 || BR2_mips64el BR2_mips64 || BR2_mips64el
select BR2_LINUX_KERNEL_UBOOT_IMAGE select BR2_LINUX_KERNEL_UBOOT_IMAGE
@ -197,7 +197,7 @@ config BR2_LINUX_KERNEL_ZIMAGE
bool "zImage" bool "zImage"
depends on BR2_arm || BR2_armeb || BR2_powerpc || \ depends on BR2_arm || BR2_armeb || BR2_powerpc || \
BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \ BR2_powerpc64 || BR2_powerpc64le || BR2_sparc || \
BR2_sh || BR2_sh64 || BR2_xtensa BR2_sh || BR2_xtensa
config BR2_LINUX_KERNEL_ZIMAGE_EPAPR config BR2_LINUX_KERNEL_ZIMAGE_EPAPR
bool "zImage.epapr" bool "zImage.epapr"
@ -234,7 +234,7 @@ config BR2_LINUX_KERNEL_LINUX_BIN
config BR2_LINUX_KERNEL_VMLINUX_BIN config BR2_LINUX_KERNEL_VMLINUX_BIN
bool "vmlinux.bin" bool "vmlinux.bin"
depends on BR2_mips || BR2_mipsel || BR2_sh || BR2_sh64 depends on BR2_mips || BR2_mipsel || BR2_sh
config BR2_LINUX_KERNEL_VMLINUX config BR2_LINUX_KERNEL_VMLINUX
bool "vmlinux" bool "vmlinux"
@ -399,7 +399,7 @@ config BR2_LINUX_KERNEL_INSTALL_TARGET
source "linux/Config.ext.in" source "linux/Config.ext.in"
# Linux tools # Linux tools
source "linux/Config.tools.in" source "package/linux-tools/Config.in"
endif # BR2_LINUX_KERNEL endif # BR2_LINUX_KERNEL

View File

@ -1,29 +0,0 @@
menu "Linux Kernel Tools"
config BR2_LINUX_KERNEL_TOOL_CPUPOWER
bool "cpupower"
depends on !BR2_bfin # pciutils
select BR2_PACKAGE_PCIUTILS
help
cpupower is a collection of tools to examine and tune power
saving related features of your processor.
config BR2_LINUX_KERNEL_TOOL_PERF
bool "perf"
help
perf (sometimes "Perf Events" or perf tools, originally
"Performance Counters for Linux") - is a performance
analyzing tool in Linux, available from kernel version
2.6.31. User-space controlling utility, called 'perf' has
git-like interface with subcommands. It is capable of
statistical profiling of entire system (both kernel and user
code), single CPU or severals threads.
This will build and install the userspace 'perf'
command. It is up to the user to ensure that the kernel
configuration has all the suitable options enabled to allow a
proper operation of 'perf'.
https://perf.wiki.kernel.org/
endmenu

21
linux/linux-ext-aufs.mk Normal file
View File

@ -0,0 +1,21 @@
################################################################################
# Linux Aufs extensions
#
# Patch the linux kernel with aufs extension
################################################################################
LINUX_EXTENSIONS += aufs
define AUFS_PREPARE_KERNEL
if test -d $(@D)/fs/aufs/; then \
echo "Your kernel already supports AUFS."; \
exit 1; \
fi
$(APPLY_PATCHES) $(@D) $(AUFS_DIR) \
aufs$(BR2_PACKAGE_AUFS_SERIES)-kbuild.patch \
aufs$(BR2_PACKAGE_AUFS_SERIES)-base.patch \
aufs$(BR2_PACKAGE_AUFS_SERIES)-mmap.patch \
aufs$(BR2_PACKAGE_AUFS_SERIES)-standalone.patch
cp -r $(AUFS_DIR)/fs/aufs/ $(@D)/fs/
cp $(AUFS_DIR)/include/uapi/linux/aufs_type.h $(@D)/include/uapi/linux/
endef

View File

@ -0,0 +1,12 @@
################################################################################
# Linux ev3dev extensions
#
# Patch the linux kernel with ev3dev extension
################################################################################
LINUX_EXTENSIONS += ev3dev-linux-drivers
define EV3DEV_LINUX_DRIVERS_PREPARE_KERNEL
mkdir -p $(LINUX_DIR)/drivers/lego
cp -dpfr $(EV3DEV_LINUX_DRIVERS_DIR)/* $(LINUX_DIR)/drivers/lego/
endef

View File

@ -8,21 +8,28 @@ LINUX_VERSION = $(call qstrip,$(BR2_LINUX_KERNEL_VERSION))
LINUX_LICENSE = GPLv2 LINUX_LICENSE = GPLv2
LINUX_LICENSE_FILES = COPYING LINUX_LICENSE_FILES = COPYING
define LINUX_HELP_CMDS
@echo ' linux-menuconfig - Run Linux kernel menuconfig'
@echo ' linux-savedefconfig - Run Linux kernel savedefconfig'
@echo ' linux-update-defconfig - Save the Linux configuration to the path specified'
@echo ' by BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE'
endef
# Compute LINUX_SOURCE and LINUX_SITE from the configuration # Compute LINUX_SOURCE and LINUX_SITE from the configuration
ifeq ($(BR2_LINUX_KERNEL_CUSTOM_TARBALL),y) ifeq ($(BR2_LINUX_KERNEL_CUSTOM_TARBALL),y)
LINUX_TARBALL = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION)) LINUX_TARBALL = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION))
LINUX_SITE = $(patsubst %/,%,$(dir $(LINUX_TARBALL))) LINUX_SITE = $(patsubst %/,%,$(dir $(LINUX_TARBALL)))
LINUX_SOURCE = $(notdir $(LINUX_TARBALL)) LINUX_SOURCE = $(notdir $(LINUX_TARBALL))
BR_NO_CHECK_HASH_FOR += $(LINUX_SOURCE) BR_NO_CHECK_HASH_FOR += $(LINUX_SOURCE)
else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_LOCAL),y)
LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH))
LINUX_SITE_METHOD = local
else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_GIT),y) else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_GIT),y)
LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL)) LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL))
LINUX_SITE_METHOD = git LINUX_SITE_METHOD = git
else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_HG),y) else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_HG),y)
LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL)) LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL))
LINUX_SITE_METHOD = hg LINUX_SITE_METHOD = hg
else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_SVN),y)
LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL))
LINUX_SITE_METHOD = svn
else else
LINUX_SOURCE = linux-$(LINUX_VERSION).tar.xz LINUX_SOURCE = linux-$(LINUX_VERSION).tar.xz
ifeq ($(BR2_LINUX_KERNEL_CUSTOM_VERSION),y) ifeq ($(BR2_LINUX_KERNEL_CUSTOM_VERSION),y)
@ -87,6 +94,14 @@ LINUX_MAKE_ENV = \
$(TARGET_MAKE_ENV) \ $(TARGET_MAKE_ENV) \
BR_BINARIES_DIR=$(BINARIES_DIR) BR_BINARIES_DIR=$(BINARIES_DIR)
ifeq ($(BR2_REPRODUCIBLE),y)
LINUX_MAKE_ENV += \
KBUILD_BUILD_VERSION=1 \
KBUILD_BUILD_USER=buildroot \
KBUILD_BUILD_HOST=buildroot \
KBUILD_BUILD_TIMESTAMP="$(shell LC_ALL=C date -d @$(SOURCE_DATE_EPOCH))"
endif
# Get the real Linux version, which tells us where kernel modules are # Get the real Linux version, which tells us where kernel modules are
# going to be installed in the target filesystem. # going to be installed in the target filesystem.
LINUX_VERSION_PROBED = `$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease 2>/dev/null` LINUX_VERSION_PROBED = `$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease 2>/dev/null`
@ -196,6 +211,8 @@ LINUX_POST_PATCH_HOOKS += LINUX_TRY_PATCH_TIMECONST
ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y) ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
LINUX_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig LINUX_KCONFIG_DEFCONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
else ifeq ($(BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG),y)
LINUX_KCONFIG_DEFCONFIG = defconfig
else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y) else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
LINUX_KCONFIG_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)) LINUX_KCONFIG_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE))
endif endif
@ -206,6 +223,20 @@ LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
# If no package has yet set it, set it from the Kconfig option # If no package has yet set it, set it from the Kconfig option
LINUX_NEEDS_MODULES ?= $(BR2_LINUX_NEEDS_MODULES) LINUX_NEEDS_MODULES ?= $(BR2_LINUX_NEEDS_MODULES)
# Make sure the Linux kernel is built with the right endianness. Not
# all architectures support
# CONFIG_CPU_BIG_ENDIAN/CONFIG_CPU_LITTLE_ENDIAN in Linux, but the
# option will be thrown away and ignored if it doesn't exist.
ifeq ($(BR2_ENDIAN),"BIG")
define LINUX_FIXUP_CONFIG_ENDIANNESS
$(call KCONFIG_ENABLE_OPT,CONFIG_CPU_BIG_ENDIAN,$(@D)/.config)
endef
else
define LINUX_FIXUP_CONFIG_ENDIANNESS
$(call KCONFIG_ENABLE_OPT,CONFIG_CPU_LITTLE_ENDIAN,$(@D)/.config)
endef
endif
define LINUX_KCONFIG_FIXUP_CMDS define LINUX_KCONFIG_FIXUP_CMDS
$(if $(LINUX_NEEDS_MODULES), $(if $(LINUX_NEEDS_MODULES),
$(call KCONFIG_ENABLE_OPT,CONFIG_MODULES,$(@D)/.config)) $(call KCONFIG_ENABLE_OPT,CONFIG_MODULES,$(@D)/.config))
@ -213,6 +244,7 @@ define LINUX_KCONFIG_FIXUP_CMDS
$(foreach opt, $(LINUX_COMPRESSION_OPT_), $(foreach opt, $(LINUX_COMPRESSION_OPT_),
$(call KCONFIG_DISABLE_OPT,$(opt),$(@D)/.config) $(call KCONFIG_DISABLE_OPT,$(opt),$(@D)/.config)
) )
$(LINUX_FIXUP_CONFIG_ENDIANNESS)
$(if $(BR2_arm)$(BR2_armeb), $(if $(BR2_arm)$(BR2_armeb),
$(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config)) $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config))
$(if $(BR2_TARGET_ROOTFS_CPIO), $(if $(BR2_TARGET_ROOTFS_CPIO),
@ -348,6 +380,9 @@ define LINUX_INSTALL_HOST_TOOLS
# Installing dtc (device tree compiler) as host tool, if selected # Installing dtc (device tree compiler) as host tool, if selected
if grep -q "CONFIG_DTC=y" $(@D)/.config; then \ if grep -q "CONFIG_DTC=y" $(@D)/.config; then \
$(INSTALL) -D -m 0755 $(@D)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/linux-dtc ; \ $(INSTALL) -D -m 0755 $(@D)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/linux-dtc ; \
if [ ! -e $(HOST_DIR)/usr/bin/dtc ]; then \
ln -sf linux-dtc $(HOST_DIR)/usr/bin/dtc ; \
fi \
fi fi
endef endef
@ -357,6 +392,10 @@ define LINUX_INSTALL_IMAGES_CMDS
$(call LINUX_INSTALL_DTB,$(BINARIES_DIR)) $(call LINUX_INSTALL_DTB,$(BINARIES_DIR))
endef endef
ifeq ($(BR2_STRIP_strip),y)
LINUX_MAKE_FLAGS += INSTALL_MOD_STRIP=1
endif
define LINUX_INSTALL_TARGET_CMDS define LINUX_INSTALL_TARGET_CMDS
$(LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET) $(LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET)
# Install modules and remove symbolic links pointing to build # Install modules and remove symbolic links pointing to build
@ -369,7 +408,7 @@ define LINUX_INSTALL_TARGET_CMDS
$(LINUX_INSTALL_HOST_TOOLS) $(LINUX_INSTALL_HOST_TOOLS)
endef endef
# Include all our extensions and tools definitions. # Include all our extensions.
# #
# Note: our package infrastructure uses the full-path of the last-scanned # Note: our package infrastructure uses the full-path of the last-scanned
# Makefile to determine what package we're currently defining, using the # Makefile to determine what package we're currently defining, using the
@ -380,7 +419,6 @@ endef
# the current Makefile, we are OK. But this is a hard requirement: files # the current Makefile, we are OK. But this is a hard requirement: files
# included here *must* be in the same directory! # included here *must* be in the same directory!
include $(sort $(wildcard linux/linux-ext-*.mk)) include $(sort $(wildcard linux/linux-ext-*.mk))
include $(sort $(wildcard linux/linux-tool-*.mk))
LINUX_PATCH_DEPENDENCIES += $(foreach ext,$(LINUX_EXTENSIONS),\ LINUX_PATCH_DEPENDENCIES += $(foreach ext,$(LINUX_EXTENSIONS),\
$(if $(BR2_LINUX_KERNEL_EXT_$(call UPPERCASE,$(ext))),$(ext))) $(if $(BR2_LINUX_KERNEL_EXT_$(call UPPERCASE,$(ext))),$(ext)))
@ -389,28 +427,18 @@ LINUX_PRE_PATCH_HOOKS += $(foreach ext,$(LINUX_EXTENSIONS),\
$(if $(BR2_LINUX_KERNEL_EXT_$(call UPPERCASE,$(ext))),\ $(if $(BR2_LINUX_KERNEL_EXT_$(call UPPERCASE,$(ext))),\
$(call UPPERCASE,$(ext))_PREPARE_KERNEL)) $(call UPPERCASE,$(ext))_PREPARE_KERNEL))
# Install Linux kernel tools in the staging directory since some tools
# may install shared libraries and headers (e.g. cpupower). The kernel
# image is NOT installed in the staging directory.
LINUX_INSTALL_STAGING = YES
LINUX_DEPENDENCIES += $(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_LINUX_KERNEL_TOOL_$(call UPPERCASE,$(tool))),\
$($(call UPPERCASE,$(tool))_DEPENDENCIES)))
LINUX_POST_BUILD_HOOKS += $(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_LINUX_KERNEL_TOOL_$(call UPPERCASE,$(tool))),\
$(call UPPERCASE,$(tool))_BUILD_CMDS))
LINUX_POST_INSTALL_STAGING_HOOKS += $(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_LINUX_KERNEL_TOOL_$(call UPPERCASE,$(tool))),\
$(call UPPERCASE,$(tool))_INSTALL_STAGING_CMDS))
LINUX_POST_INSTALL_TARGET_HOOKS += $(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_LINUX_KERNEL_TOOL_$(call UPPERCASE,$(tool))),\
$(call UPPERCASE,$(tool))_INSTALL_TARGET_CMDS))
# Checks to give errors that the user can understand # Checks to give errors that the user can understand
# When a custom repository has been set, check for the repository version
ifeq ($(BR2_LINUX_KERNEL_CUSTOM_SVN)$(BR2_LINUX_KERNEL_CUSTOM_GIT)$(BR2_LINUX_KERNEL_CUSTOM_HG),y)
ifeq ($(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION)),)
$(error No custom repository version set. Check your BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION setting)
endif
ifeq ($(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_REPO_URL)),)
$(error No custom repo URL set. Check your BR2_LINUX_KERNEL_CUSTOM_REPO_URL setting)
endif
endif
ifeq ($(BR_BUILDING),y) ifeq ($(BR_BUILDING),y)
ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y) ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
@ -444,8 +472,8 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LI
# Build the kernel. # Build the kernel.
$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME) $(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME)
$(LINUX_APPEND_DTB) $(LINUX_APPEND_DTB)
# Copy the kernel image to its final destination # Copy the kernel image(s) to its(their) final destination
cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR) $(call LINUX_INSTALL_IMAGE,$(BINARIES_DIR))
# If there is a .ub file copy it to the final destination # If there is a .ub file copy it to the final destination
test ! -f $(LINUX_IMAGE_PATH).ub || cp $(LINUX_IMAGE_PATH).ub $(BINARIES_DIR) test ! -f $(LINUX_IMAGE_PATH).ub || cp $(LINUX_IMAGE_PATH).ub $(BINARIES_DIR)
$(Q)touch $@ $(Q)touch $@

View File

@ -0,0 +1,17 @@
avoid regen during install
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
--- a/sources/Makefile
+++ b/sources/Makefile
@@ -120,7 +120,7 @@
ln -sf $(SHARED_LIB) $(LIBRARIES)/lib4th.so
endif
-mostlyinstall: libinstall all
+mostlyinstall: libinstall
cp 4th 4tsh pp4th $(BINARIES)
install: mostlyinstall
--

2
package/4th/4th.hash Normal file
View File

@ -0,0 +1,2 @@
# Locally computed:
sha256 1c7adbb1a56dad4c4c781e6e023d77ac862842560c05246b691d07e9a4460ab2 4th-3.62.4-unix.tar.gz

70
package/4th/4th.mk Normal file
View File

@ -0,0 +1,70 @@
################################################################################
#
# 4th
#
################################################################################
4TH_VERSION = 3.62.4
4TH_SOURCE = 4th-$(4TH_VERSION)-unix.tar.gz
4TH_SITE = http://downloads.sourceforge.net/project/forth-4th/4th-$(4TH_VERSION)
4TH_LICENSE = GPLv3+, LGPLv3+
# The COPYING file only contains the text of the LGPLv3, but the
# source code really contains parts under GPLv3+.
4TH_LICENSE_FILES = COPYING
4TH_DEPENDENCIES = host-4th
4TH_INSTALL_STAGING = YES
4TH_CFLAGS = $(TARGET_CFLAGS) -DUNIX -fsigned-char
ifeq ($(BR2_STATIC_LIBS),y)
4TH_MAKE_ENV = $(TARGET_MAKE_ENV) STATIC=1
else
4TH_MAKE_ENV = $(TARGET_MAKE_ENV) SHARED=1
4TH_CFLAGS += -fPIC
endif
define 4TH_BUILD_CMDS
$(4TH_MAKE_ENV) $(MAKE) -C $(@D)/sources all \
CROSS="$(TARGET_CROSS)" \
CFLAGS="$(4TH_CFLAGS)" \
FOURTH=$(HOST_DIR)/usr/bin/4th
endef
define 4TH_INSTALL_STAGING_CMDS
$(4TH_MAKE_ENV) $(MAKE) -C $(@D)/sources libinstall \
LIBRARIES=$(STAGING_DIR)/usr/lib
$(INSTALL) -D -m 0644 $(@D)/sources/4th.h \
$(STAGING_DIR)/usr/include/4th.h
endef
define 4TH_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/usr/bin
mkdir -p $(TARGET_DIR)/usr/lib
$(4TH_MAKE_ENV) $(MAKE) -C $(@D)/sources mostlyinstall \
BINARIES=$(TARGET_DIR)/usr/bin \
LIBRARIES=$(TARGET_DIR)/usr/lib
mkdir -p $(TARGET_DIR)/usr/share/4th/lib
cp -dpf $(@D)/4th/*.4th $(TARGET_DIR)/usr/share/4th
cp -dpf $(@D)/4th/lib/*.4th $(TARGET_DIR)/usr/share/4th/lib
mkdir -p $(TARGET_DIR)/usr/share/4th/demo
cp -dpf $(@D)/4th/demo/*.4th $(TARGET_DIR)/usr/share/4th/demo
mkdir -p $(TARGET_DIR)/usr/share/4th/4pp/lib
cp -dpf $(@D)/4th/4pp/*.4pp $(TARGET_DIR)/usr/share/4th/4pp
cp -dpf $(@D)/4th/4pp/lib/*.4pp $(TARGET_DIR)/usr/share/4th/4pp/lib
endef
define HOST_4TH_BUILD_CMDS
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/sources all \
CFLAGS="$(HOST_CFLAGS) -DUNIX -fsigned-char"
endef
define HOST_4TH_INSTALL_CMDS
mkdir -p $(HOST_DIR)/usr/bin
mkdir -p $(HOST_DIR)/usr/lib
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/sources mostlyinstall \
BINARIES=$(HOST_DIR)/usr/bin \
LIBRARIES=$(HOST_DIR)/usr/lib
endef
$(eval $(generic-package))
$(eval $(host-generic-package))

8
package/4th/Config.in Normal file
View File

@ -0,0 +1,8 @@
config BR2_PACKAGE_4TH
bool "4th"
help
4tH is a Forth compiler that can create bytecode,
C-embeddable bytecode, standalone executables, but also
works fine as a scripting language
http://thebeez.home.xs4all.nl/4tH/

File diff suppressed because it is too large Load Diff

View File

@ -12,6 +12,7 @@ menu "Host utilities"
source "package/e2fsprogs/Config.in.host" source "package/e2fsprogs/Config.in.host"
source "package/e2tools/Config.in.host" source "package/e2tools/Config.in.host"
source "package/faketime/Config.in.host" source "package/faketime/Config.in.host"
source "package/fwup/Config.in.host"
source "package/genext2fs/Config.in.host" source "package/genext2fs/Config.in.host"
source "package/genimage/Config.in.host" source "package/genimage/Config.in.host"
source "package/genpart/Config.in.host" source "package/genpart/Config.in.host"
@ -19,20 +20,29 @@ menu "Host utilities"
source "package/gptfdisk/Config.in.host" source "package/gptfdisk/Config.in.host"
source "package/imx-usb-loader/Config.in.host" source "package/imx-usb-loader/Config.in.host"
source "package/jq/Config.in.host" source "package/jq/Config.in.host"
source "package/jsmin/Config.in.host"
source "package/lpc3250loader/Config.in.host" source "package/lpc3250loader/Config.in.host"
source "package/lttng-babeltrace/Config.in.host"
source "package/mfgtools/Config.in.host"
source "package/mke2img/Config.in.host" source "package/mke2img/Config.in.host"
source "package/mkpasswd/Config.in.host"
source "package/mtd/Config.in.host" source "package/mtd/Config.in.host"
source "package/mtools/Config.in.host" source "package/mtools/Config.in.host"
source "package/mxsldr/Config.in.host"
source "package/omap-u-boot-utils/Config.in.host" source "package/omap-u-boot-utils/Config.in.host"
source "package/openocd/Config.in.host" source "package/openocd/Config.in.host"
source "package/opkg-utils/Config.in.host"
source "package/parted/Config.in.host" source "package/parted/Config.in.host"
source "package/patchelf/Config.in.host" source "package/patchelf/Config.in.host"
source "package/pru-software-support/Config.in.host"
source "package/pwgen/Config.in.host" source "package/pwgen/Config.in.host"
source "package/qemu/Config.in.host" source "package/qemu/Config.in.host"
source "package/raspberrypi-usbboot/Config.in.host"
source "package/sam-ba/Config.in.host" source "package/sam-ba/Config.in.host"
source "package/squashfs/Config.in.host" source "package/squashfs/Config.in.host"
source "package/sunxi-tools/Config.in.host" source "package/sunxi-tools/Config.in.host"
source "package/tegrarcm/Config.in.host" source "package/tegrarcm/Config.in.host"
source "package/ti-cgt-pru/Config.in.host"
source "package/uboot-tools/Config.in.host" source "package/uboot-tools/Config.in.host"
source "package/util-linux/Config.in.host" source "package/util-linux/Config.in.host"
source "package/vboot-utils/Config.in.host" source "package/vboot-utils/Config.in.host"

View File

@ -122,6 +122,9 @@ endif
ifeq ($(BR2_OPTIMIZE_3),y) ifeq ($(BR2_OPTIMIZE_3),y)
TARGET_OPTIMIZATION = -O3 TARGET_OPTIMIZATION = -O3
endif endif
ifeq ($(BR2_OPTIMIZE_G),y)
TARGET_OPTIMIZATION = -Og
endif
ifeq ($(BR2_OPTIMIZE_S),y) ifeq ($(BR2_OPTIMIZE_S),y)
TARGET_OPTIMIZATION = -Os TARGET_OPTIMIZATION = -Os
endif endif
@ -138,6 +141,7 @@ endif
TARGET_CPPFLAGS += -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 TARGET_CPPFLAGS += -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
TARGET_CFLAGS = $(TARGET_CPPFLAGS) $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) TARGET_CFLAGS = $(TARGET_CPPFLAGS) $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
TARGET_CXXFLAGS = $(TARGET_CFLAGS) TARGET_CXXFLAGS = $(TARGET_CFLAGS)
TARGET_FCFLAGS = $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS)) TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS))
ifeq ($(BR2_BINFMT_FLAT),y) ifeq ($(BR2_BINFMT_FLAT),y)
@ -145,35 +149,42 @@ TARGET_CFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FL
-Wl$(comma)-elf2flt) -Wl$(comma)-elf2flt)
TARGET_CXXFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\ TARGET_CXXFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
-Wl$(comma)-elf2flt) -Wl$(comma)-elf2flt)
TARGET_FCFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
-Wl$(comma)-elf2flt)
TARGET_LDFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt) TARGET_LDFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt)
endif endif
ifeq ($(BR2_BINFMT_FLAT_SHARED),y) ifeq ($(BR2_BINFMT_FLAT_SHARED),y)
TARGET_LDFLAGS += -mid-shared-library -mshared-library-id=0 TARGET_LDFLAGS += -mid-shared-library -mshared-library-id=0
TARGET_CFLAGS += -mid-shared-library -mshared-library-id=0 TARGET_CFLAGS += -mid-shared-library -mshared-library-id=0
TARGET_FCFLAGS += -mid-shared-library -mshared-library-id=0
TARGET_CXXFLAGS += -mid-shared-library -mshared-library-id=0 TARGET_CXXFLAGS += -mid-shared-library -mshared-library-id=0
endif endif
ifeq ($(BR2_BINFMT_FLAT_SEP_DATA),y) ifeq ($(BR2_BINFMT_FLAT_SEP_DATA),y)
TARGET_LDFLAGS += -msep-data TARGET_LDFLAGS += -msep-data
TARGET_CFLAGS += -msep-data TARGET_CFLAGS += -msep-data
TARGET_FCFLAGS += -msep-data
TARGET_CXXFLAGS += -msep-data TARGET_CXXFLAGS += -msep-data
endif endif
ifeq ($(BR2_SSP_REGULAR),y) ifeq ($(BR2_SSP_REGULAR),y)
TARGET_CFLAGS += -fstack-protector TARGET_CFLAGS += -fstack-protector
TARGET_CXXFLAGS += -fstack-protector TARGET_CXXFLAGS += -fstack-protector
TARGET_FCFLAGS += -fstack-protector
else ifeq ($(BR2_SSP_STRONG),y) else ifeq ($(BR2_SSP_STRONG),y)
TARGET_CFLAGS += -fstack-protector-strong TARGET_CFLAGS += -fstack-protector-strong
TARGET_CXXFLAGS += -fstack-protector-strong TARGET_CXXFLAGS += -fstack-protector-strong
TARGET_FCFLAGS += -fstack-protector-strong
else ifeq ($(BR2_SSP_ALL),y) else ifeq ($(BR2_SSP_ALL),y)
TARGET_CFLAGS += -fstack-protector-all TARGET_CFLAGS += -fstack-protector-all
TARGET_CXXFLAGS += -fstack-protector-all TARGET_CXXFLAGS += -fstack-protector-all
TARGET_FCFLAGS += -fstack-protector-all
endif endif
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y) ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
TARGET_CROSS = $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)- TARGET_CROSS = $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-
else else
TARGET_CROSS = $(HOST_DIR)/usr/bin/$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))- TARGET_CROSS = $(HOST_DIR)/usr/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
endif endif
# Define TARGET_xx variables for all common binutils/gcc # Define TARGET_xx variables for all common binutils/gcc
@ -192,32 +203,19 @@ TARGET_OBJDUMP = $(TARGET_CROSS)objdump
ifeq ($(BR2_STRIP_strip),y) ifeq ($(BR2_STRIP_strip),y)
STRIP_STRIP_DEBUG := --strip-debug STRIP_STRIP_DEBUG := --strip-debug
STRIP_STRIP_UNNEEDED := --strip-unneeded
STRIP_STRIP_ALL := --strip-all
TARGET_STRIP = $(TARGET_CROSS)strip TARGET_STRIP = $(TARGET_CROSS)strip
STRIPCMD = $(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note STRIPCMD = $(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note
KSTRIPCMD = $(STRIPCMD) $(STRIP_STRIP_UNNEEDED)
endif
ifeq ($(BR2_STRIP_sstrip),y)
STRIP_STRIP_DEBUG :=
STRIP_STRIP_UNNEEDED :=
STRIP_STRIP_ALL :=
TARGET_STRIP = $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-sstrip
STRIPCMD = $(TARGET_STRIP)
KSTRIPCMD = $(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note --strip-unneeded
endif endif
ifeq ($(BR2_STRIP_none),y) ifeq ($(BR2_STRIP_none),y)
TARGET_STRIP = true TARGET_STRIP = true
STRIPCMD = $(TARGET_STRIP) STRIPCMD = $(TARGET_STRIP)
KSTRIPCMD = $(TARGET_STRIP)
endif endif
INSTALL := $(shell which install || type -p install) INSTALL := $(shell which install || type -p install)
FLEX := $(shell which flex || type -p flex) FLEX := $(shell which flex || type -p flex)
BISON := $(shell which bison || type -p bison) BISON := $(shell which bison || type -p bison)
SED := $(shell which sed || type -p sed) -i -e
UNZIP := $(shell which unzip || type -p unzip) -q UNZIP := $(shell which unzip || type -p unzip) -q
APPLY_PATCHES = support/scripts/apply-patches.sh $(if $(QUIET),-s) APPLY_PATCHES = PATH=$(HOST_DIR)/usr/bin:$$PATH support/scripts/apply-patches.sh $(if $(QUIET),-s)
HOST_CPPFLAGS = -I$(HOST_DIR)/usr/include HOST_CPPFLAGS = -I$(HOST_DIR)/usr/include
HOST_CFLAGS ?= -O2 HOST_CFLAGS ?= -O2
@ -236,8 +234,10 @@ export PERL=$(shell which perl)
# finds this perl module by exporting the proper value for PERL5LIB. # finds this perl module by exporting the proper value for PERL5LIB.
export PERL5LIB=$(HOST_DIR)/usr/lib/perl export PERL5LIB=$(HOST_DIR)/usr/lib/perl
TARGET_MAKE_ENV = PATH=$(BR_PATH)
TARGET_CONFIGURE_OPTS = \ TARGET_CONFIGURE_OPTS = \
PATH=$(BR_PATH) \ $(TARGET_MAKE_ENV) \
AR="$(TARGET_AR)" \ AR="$(TARGET_AR)" \
AS="$(TARGET_AS)" \ AS="$(TARGET_AS)" \
LD="$(TARGET_LD)" \ LD="$(TARGET_LD)" \
@ -247,6 +247,7 @@ TARGET_CONFIGURE_OPTS = \
CPP="$(TARGET_CPP)" \ CPP="$(TARGET_CPP)" \
CXX="$(TARGET_CXX)" \ CXX="$(TARGET_CXX)" \
FC="$(TARGET_FC)" \ FC="$(TARGET_FC)" \
F77="$(TARGET_FC)" \
RANLIB="$(TARGET_RANLIB)" \ RANLIB="$(TARGET_RANLIB)" \
READELF="$(TARGET_READELF)" \ READELF="$(TARGET_READELF)" \
STRIP="$(TARGET_STRIP)" \ STRIP="$(TARGET_STRIP)" \
@ -270,15 +271,22 @@ TARGET_CONFIGURE_OPTS = \
CXXFLAGS="$(TARGET_CXXFLAGS)" \ CXXFLAGS="$(TARGET_CXXFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \
FCFLAGS="$(TARGET_FCFLAGS)" \ FCFLAGS="$(TARGET_FCFLAGS)" \
FFLAGS="$(TARGET_FCFLAGS)" \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
STAGING_DIR="$(STAGING_DIR)" \ STAGING_DIR="$(STAGING_DIR)" \
INTLTOOL_PERL=$(PERL) INTLTOOL_PERL=$(PERL)
TARGET_MAKE_ENV = PATH=$(BR_PATH)
HOST_MAKE_ENV = \
PATH=$(BR_PATH) \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
PKG_CONFIG_SYSROOT_DIR="/" \
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig:$(HOST_DIR)/usr/share/pkgconfig"
HOST_CONFIGURE_OPTS = \ HOST_CONFIGURE_OPTS = \
PATH=$(BR_PATH) \ $(HOST_MAKE_ENV) \
AR="$(HOSTAR)" \ AR="$(HOSTAR)" \
AS="$(HOSTAS)" \ AS="$(HOSTAS)" \
LD="$(HOSTLD)" \ LD="$(HOSTLD)" \
@ -293,19 +301,8 @@ HOST_CONFIGURE_OPTS = \
CFLAGS="$(HOST_CFLAGS)" \ CFLAGS="$(HOST_CFLAGS)" \
CXXFLAGS="$(HOST_CXXFLAGS)" \ CXXFLAGS="$(HOST_CXXFLAGS)" \
LDFLAGS="$(HOST_LDFLAGS)" \ LDFLAGS="$(HOST_LDFLAGS)" \
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
PKG_CONFIG_SYSROOT_DIR="/" \
PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig:$(HOST_DIR)/usr/share/pkgconfig" \
INTLTOOL_PERL=$(PERL) INTLTOOL_PERL=$(PERL)
HOST_MAKE_ENV = \
PATH=$(BR_PATH) \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
PKG_CONFIG_SYSROOT_DIR="/" \
PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig"
# This is extra environment we can not export ourselves (eg. because some # This is extra environment we can not export ourselves (eg. because some
# packages use that variable internally, eg. uboot), so we have to # packages use that variable internally, eg. uboot), so we have to
# explicitly pass it to user-supplied external hooks (eg. post-build, # explicitly pass it to user-supplied external hooks (eg. post-build,
@ -313,8 +310,7 @@ HOST_MAKE_ENV = \
EXTRA_ENV = \ EXTRA_ENV = \
PATH=$(BR_PATH) \ PATH=$(BR_PATH) \
BR2_DL_DIR=$(BR2_DL_DIR) \ BR2_DL_DIR=$(BR2_DL_DIR) \
BUILD_DIR=$(BUILD_DIR) \ BUILD_DIR=$(BUILD_DIR)
BR2_EXTERNAL=$(BR2_EXTERNAL)
################################################################################ ################################################################################
# settings we need to pass to configure # settings we need to pass to configure
@ -378,6 +374,7 @@ ifeq ($(BR2_STATIC_LIBS),y)
SHARED_STATIC_LIBS_OPTS = --enable-static --disable-shared SHARED_STATIC_LIBS_OPTS = --enable-static --disable-shared
TARGET_CFLAGS += -static TARGET_CFLAGS += -static
TARGET_CXXFLAGS += -static TARGET_CXXFLAGS += -static
TARGET_FCFLAGS += -static
TARGET_LDFLAGS += -static TARGET_LDFLAGS += -static
else ifeq ($(BR2_SHARED_LIBS),y) else ifeq ($(BR2_SHARED_LIBS),y)
SHARED_STATIC_LIBS_OPTS = --disable-static --enable-shared SHARED_STATIC_LIBS_OPTS = --disable-static --enable-shared
@ -400,3 +397,4 @@ include package/pkg-generic.mk
include package/pkg-kconfig.mk include package/pkg-kconfig.mk
include package/pkg-rebar.mk include package/pkg-rebar.mk
include package/pkg-kernel-module.mk include package/pkg-kernel-module.mk
include package/pkg-waf.mk

View File

@ -0,0 +1,292 @@
From debbe4f7b591b3f35d0ed65c17fa81b196b2eb2d Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Tue, 12 Aug 2014 08:37:25 -0400
Subject: [PATCH] add __acl_ prefixes to internal symbols
When static linking libacl, people sometimes run into symbol collisions
because their own code defines symbols like "quote". So for acl internal
symbols, use an __acl_ prefix.
[Rahul Bedarkar: backported from upstream
http://git.savannah.gnu.org/cgit/acl.git/commit/?id=a2c4d71c2e84419a49db503ed59de4d3d1dca7dd ]
Signed-off-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
---
exports | 12 ++----------
getfacl/getfacl.c | 4 ++--
include/misc.h | 8 ++++----
libacl/__acl_to_any_text.c | 4 ++--
libacl/acl_from_text.c | 4 ++--
libmisc/high_water_alloc.c | 2 +-
libmisc/next_line.c | 6 +++---
libmisc/quote.c | 4 ++--
libmisc/unquote.c | 2 +-
setfacl/parse.c | 10 +++++-----
setfacl/setfacl.c | 4 ++--
11 files changed, 26 insertions(+), 34 deletions(-)
diff --git a/exports b/exports
index 7d8e69e..bf15d84 100644
--- a/exports
+++ b/exports
@@ -59,22 +59,14 @@ ACL_1.0 {
acl_to_any_text;
local:
- # Library internal stuff
+ # Library internal stuff
__new_var_obj_p;
__new_obj_p_here;
__free_obj_p;
__check_obj_p;
__ext2int_and_check;
- __acl_reorder_entry_obj_p;
- __acl_reorder_obj_p;
- __acl_init_obj;
- __acl_create_entry_obj;
- __acl_free_acl_obj;
- __acl_to_any_text;
+ __acl_*;
__apply_mask_to_mode;
-
- quote;
- unquote;
};
ACL_1.1 {
diff --git a/getfacl/getfacl.c b/getfacl/getfacl.c
index f8eaf25..af9e225 100644
--- a/getfacl/getfacl.c
+++ b/getfacl/getfacl.c
@@ -90,7 +90,7 @@ int opt_numeric; /* don't convert id's to symbolic names */
static const char *xquote(const char *str, const char *quote_chars)
{
- const char *q = quote(str, quote_chars);
+ const char *q = __acl_quote(str, quote_chars);
if (q == NULL) {
fprintf(stderr, "%s: %s\n", progname, strerror(errno));
exit(1);
@@ -718,7 +718,7 @@ int main(int argc, char *argv[])
do {
if (optind == argc ||
strcmp(argv[optind], "-") == 0) {
- while ((line = next_line(stdin)) != NULL) {
+ while ((line = __acl_next_line(stdin)) != NULL) {
if (*line == '\0')
continue;
diff --git a/include/misc.h b/include/misc.h
index 0c5fdcc..c25accf 100644
--- a/include/misc.h
+++ b/include/misc.h
@@ -15,9 +15,9 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-extern int high_water_alloc(void **buf, size_t *bufsize, size_t newsize);
+extern int __acl_high_water_alloc(void **buf, size_t *bufsize, size_t newsize);
-extern const char *quote(const char *str, const char *quote_chars);
-extern char *unquote(char *str);
+extern const char *__acl_quote(const char *str, const char *quote_chars);
+extern char *__acl_unquote(char *str);
-extern char *next_line(FILE *file);
+extern char *__acl_next_line(FILE *file);
diff --git a/libacl/__acl_to_any_text.c b/libacl/__acl_to_any_text.c
index a4f9c34..19f1ccc 100644
--- a/libacl/__acl_to_any_text.c
+++ b/libacl/__acl_to_any_text.c
@@ -159,7 +159,7 @@ acl_entry_to_any_str(const acl_entry_t entry_d, char *text_p, ssize_t size,
if (options & TEXT_NUMERIC_IDS)
str = NULL;
else
- str = quote(user_name(
+ str = __acl_quote(user_name(
entry_obj_p->eid.qid), ":, \t\n\r");
if (str != NULL) {
strncpy(text_p, str, size);
@@ -182,7 +182,7 @@ acl_entry_to_any_str(const acl_entry_t entry_d, char *text_p, ssize_t size,
if (options & TEXT_NUMERIC_IDS)
str = NULL;
else
- str = quote(group_name(
+ str = __acl_quote(group_name(
entry_obj_p->eid.qid), ":, \t\n\r");
if (str != NULL) {
strncpy(text_p, str, size);
diff --git a/libacl/acl_from_text.c b/libacl/acl_from_text.c
index 1e05322..f6165be 100644
--- a/libacl/acl_from_text.c
+++ b/libacl/acl_from_text.c
@@ -206,7 +206,7 @@ parse_acl_entry(const char **text_p, acl_t *acl_p)
str = get_token(text_p);
if (str) {
entry_obj.etag = ACL_USER;
- error = get_uid(unquote(str),
+ error = get_uid(__acl_unquote(str),
&entry_obj.eid.qid);
free(str);
if (error) {
@@ -225,7 +225,7 @@ parse_acl_entry(const char **text_p, acl_t *acl_p)
str = get_token(text_p);
if (str) {
entry_obj.etag = ACL_GROUP;
- error = get_gid(unquote(str),
+ error = get_gid(__acl_unquote(str),
&entry_obj.eid.qid);
free(str);
if (error) {
diff --git a/libmisc/high_water_alloc.c b/libmisc/high_water_alloc.c
index c127dc1..951f4bb 100644
--- a/libmisc/high_water_alloc.c
+++ b/libmisc/high_water_alloc.c
@@ -21,7 +21,7 @@
#include <stdlib.h>
#include "misc.h"
-int high_water_alloc(void **buf, size_t *bufsize, size_t newsize)
+int __acl_high_water_alloc(void **buf, size_t *bufsize, size_t newsize)
{
#define CHUNK_SIZE 256
/*
diff --git a/libmisc/next_line.c b/libmisc/next_line.c
index 0566d7a..126a364 100644
--- a/libmisc/next_line.c
+++ b/libmisc/next_line.c
@@ -23,7 +23,7 @@
#define LINE_SIZE getpagesize()
-char *next_line(FILE *file)
+char *__acl_next_line(FILE *file)
{
static char *line;
static size_t line_size;
@@ -31,7 +31,7 @@ char *next_line(FILE *file)
int eol = 0;
if (!line) {
- if (high_water_alloc((void **)&line, &line_size, LINE_SIZE))
+ if (__acl_high_water_alloc((void **)&line, &line_size, LINE_SIZE))
return NULL;
}
c = line;
@@ -47,7 +47,7 @@ char *next_line(FILE *file)
if (feof(file))
break;
if (!eol) {
- if (high_water_alloc((void **)&line, &line_size,
+ if (__acl_high_water_alloc((void **)&line, &line_size,
2 * line_size))
return NULL;
c = strrchr(line, '\0');
diff --git a/libmisc/quote.c b/libmisc/quote.c
index bf8f9eb..a28800c 100644
--- a/libmisc/quote.c
+++ b/libmisc/quote.c
@@ -23,7 +23,7 @@
#include <string.h>
#include "misc.h"
-const char *quote(const char *str, const char *quote_chars)
+const char *__acl_quote(const char *str, const char *quote_chars)
{
static char *quoted_str;
static size_t quoted_str_len;
@@ -40,7 +40,7 @@ const char *quote(const char *str, const char *quote_chars)
if (nonpr == 0)
return str;
- if (high_water_alloc((void **)&quoted_str, &quoted_str_len,
+ if (__acl_high_water_alloc((void **)&quoted_str, &quoted_str_len,
(s - (unsigned char *)str) + nonpr * 3 + 1))
return NULL;
for (s = (unsigned char *)str, q = quoted_str; *s != '\0'; s++) {
diff --git a/libmisc/unquote.c b/libmisc/unquote.c
index bffebf9..4f4ce7c 100644
--- a/libmisc/unquote.c
+++ b/libmisc/unquote.c
@@ -22,7 +22,7 @@
#include <ctype.h>
#include "misc.h"
-char *unquote(char *str)
+char *__acl_unquote(char *str)
{
unsigned char *s, *t;
diff --git a/setfacl/parse.c b/setfacl/parse.c
index e7e6add..7433459 100644
--- a/setfacl/parse.c
+++ b/setfacl/parse.c
@@ -226,7 +226,7 @@ user_entry:
str = get_token(text_p);
if (str) {
cmd->c_tag = ACL_USER;
- error = get_uid(unquote(str), &cmd->c_id);
+ error = get_uid(__acl_unquote(str), &cmd->c_id);
free(str);
if (error) {
*text_p = backup;
@@ -245,7 +245,7 @@ user_entry:
str = get_token(text_p);
if (str) {
cmd->c_tag = ACL_GROUP;
- error = get_gid(unquote(str), &cmd->c_id);
+ error = get_gid(__acl_unquote(str), &cmd->c_id);
free(str);
if (error) {
*text_p = backup;
@@ -466,7 +466,7 @@ read_acl_comments(
if (strncmp(cp, "file:", 5) == 0) {
cp += 5;
SKIP_WS(cp);
- cp = unquote(cp);
+ cp = __acl_unquote(cp);
if (path_p) {
if (*path_p)
@@ -483,7 +483,7 @@ read_acl_comments(
if (uid_p) {
if (*uid_p != ACL_UNDEFINED_ID)
goto fail;
- if (get_uid(unquote(cp), uid_p) != 0)
+ if (get_uid(__acl_unquote(cp), uid_p) != 0)
continue;
}
} else if (strncmp(cp, "group:", 6) == 0) {
@@ -493,7 +493,7 @@ read_acl_comments(
if (gid_p) {
if (*gid_p != ACL_UNDEFINED_ID)
goto fail;
- if (get_gid(unquote(cp), gid_p) != 0)
+ if (get_gid(__acl_unquote(cp), gid_p) != 0)
continue;
}
} else if (strncmp(cp, "flags:", 6) == 0) {
diff --git a/setfacl/setfacl.c b/setfacl/setfacl.c
index 81062a6..fb2d172 100644
--- a/setfacl/setfacl.c
+++ b/setfacl/setfacl.c
@@ -92,7 +92,7 @@ int promote_warning;
static const char *xquote(const char *str, const char *quote_chars)
{
- const char *q = quote(str, quote_chars);
+ const char *q = __acl_quote(str, quote_chars);
if (q == NULL) {
fprintf(stderr, "%s: %s\n", progname, strerror(errno));
exit(1);
@@ -311,7 +311,7 @@ int next_file(const char *arg, seq_t seq)
args.seq = seq;
if (strcmp(arg, "-") == 0) {
- while ((line = next_line(stdin)))
+ while ((line = __acl_next_line(stdin)))
errors = walk_tree(line, walk_flags, 0, do_set, &args);
if (!feof(stdin)) {
fprintf(stderr, _("%s: Standard input: %s\n"),
--
2.6.2

View File

@ -0,0 +1,62 @@
From 9382ae2431d2962c430e7149302c8690f5bc159c Mon Sep 17 00:00:00 2001
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Sun, 10 Jul 2016 15:06:15 +0200
Subject: [PATCH] build: do not use -Werror
Warnings come and go with various compiler versions, so using -Werror is
prone to cause build failures with various compiler versions, especially
newer versions that introduce new warnings.
Remove use of -Werror.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
generate/unix/Makefile.config | 1 -
generate/unix/iasl/Makefile | 12 ++++++------
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/generate/unix/Makefile.config b/generate/unix/Makefile.config
index da0f61d..1476e27 100644
--- a/generate/unix/Makefile.config
+++ b/generate/unix/Makefile.config
@@ -185,7 +185,6 @@ CWARNINGFLAGS = \
-Wall\
-Wbad-function-cast\
-Wdeclaration-after-statement\
- -Werror\
-Wformat=2\
-Wmissing-declarations\
-Wmissing-prototypes\
diff --git a/generate/unix/iasl/Makefile b/generate/unix/iasl/Makefile
index a3759cc..c2dc8f0 100644
--- a/generate/unix/iasl/Makefile
+++ b/generate/unix/iasl/Makefile
@@ -320,19 +320,19 @@ $(OBJDIR)/prparserparse.c $(OBJDIR)/prparser.y.h : $(ASL_COMPILER)/prparse
# by the utilities above and they are not necessarily ANSI C, etc.
#
$(OBJDIR)/aslcompilerlex.o : $(OBJDIR)/aslcompilerlex.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ $(CC) -c $(CFLAGS) -Wall -o$@ $<
$(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ $(CC) -c $(CFLAGS) -Wall -o$@ $<
$(OBJDIR)/dtparserlex.o : $(OBJDIR)/dtparserlex.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ $(CC) -c $(CFLAGS) -Wall -o$@ $<
$(OBJDIR)/dtparserparse.o : $(OBJDIR)/dtparserparse.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ $(CC) -c $(CFLAGS) -Wall -o$@ $<
$(OBJDIR)/prparserlex.o : $(OBJDIR)/prparserlex.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ $(CC) -c $(CFLAGS) -Wall -o$@ $<
$(OBJDIR)/prparserparse.o : $(OBJDIR)/prparserparse.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ $(CC) -c $(CFLAGS) -Wall -o$@ $<
--
2.7.4

13
package/acpica/Config.in Normal file
View File

@ -0,0 +1,13 @@
config BR2_PACKAGE_ACPICA
bool "acpica"
depends on BR2_TOOLCHAIN_HAS_THREADS
help
The ACPI Component Architecture (ACPICA) project provides an
operating system (OS)-independent reference implementation
of the Advanced Configuration and Power Interface
Specification (ACPI).
https://www.acpica.org
comment "acpica needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS

View File

@ -0,0 +1,3 @@
# locally computed hash
sha256 dfb33db5599bd48134dbd6e50c8804099be0cf1c35d98975a6cb84dabca78b67 acpica-unix2-20161117.tar.gz

26
package/acpica/acpica.mk Normal file
View File

@ -0,0 +1,26 @@
################################################################################
#
# acpica
#
################################################################################
ACPICA_VERSION = 20161117
ACPICA_SOURCE = acpica-unix2-$(ACPICA_VERSION).tar.gz
ACPICA_SITE = https://acpica.org/sites/acpica/files
ACPICA_LICENSE = BSD-3c or GPLv2
ACPICA_LICENSE_FILES = source/include/acpi.h
ACPICA_DEPENDENCIES = host-bison host-flex
define ACPICA_BUILD_CMDS
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \
HARDWARE_NAME=$(BR2_ARCH) HOST=_LINUX CC="$(TARGET_CC)" \
all
endef
define ACPICA_INSTALL_TARGET_CMDS
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \
HARDWARE_NAME=$(BR2_ARCH) DESTDIR="$(TARGET_DIR)" \
INSTALLFLAGS=-m755 install
endef
$(eval $(generic-package))

View File

@ -1,3 +1,3 @@
# From https://sourceforge.net/projects/acpid2/files/ # From https://sourceforge.net/projects/acpid2/files/
md5 e41bdf628e122edb4342fca432ea7db9 acpid-2.0.27.tar.xz md5 0432407b5ff75ae8e08afb43052fde2b acpid-2.0.28.tar.xz
sha1 aabf129499f99b3c14e7a9f5b5ec717b0913e9c8 acpid-2.0.27.tar.xz sha1 a5cb34d53eb6965293c436db23dc81550273975b acpid-2.0.28.tar.xz

View File

@ -4,7 +4,7 @@
# #
################################################################################ ################################################################################
ACPID_VERSION = 2.0.27 ACPID_VERSION = 2.0.28
ACPID_SOURCE = acpid-$(ACPID_VERSION).tar.xz ACPID_SOURCE = acpid-$(ACPID_VERSION).tar.xz
ACPID_SITE = http://downloads.sourceforge.net/project/acpid2 ACPID_SITE = http://downloads.sourceforge.net/project/acpid2
ACPID_LICENSE = GPLv2+ ACPID_LICENSE = GPLv2+

View File

@ -0,0 +1,16 @@
config BR2_PACKAGE_ACPITOOL
bool "acpitool"
depends on !BR2_bfin
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_INSTALL_LIBSTDCPP
help
A small, convenient command-line ACPI client with a lot of
features for Linux
http://acpitool.sourceforge.net
comment "acpitool needs a toolchain w/ threads, C++, dynamic library"
depends on !BR2_bfin
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \
|| !BR2_INSTALL_LIBSTDCPP

View File

@ -0,0 +1,2 @@
# locally computed hash
sha256 004fb6cd43102918b6302cf537a2db7ceadda04aef2e0906ddf230f820dad34f acpitool-0.5.1.tar.bz2

View File

@ -0,0 +1,13 @@
################################################################################
#
# acpitool
#
################################################################################
ACPITOOL_VERSION = 0.5.1
ACPITOOL_SOURCE = acpitool-$(ACPITOOL_VERSION).tar.bz2
ACPITOOL_SITE = http://downloads.sourceforge.net/sourceforge/acpitool
ACPITOOL_LICENSE = GPLv2+
ACPITOOL_LICENSE_FILES = COPYING
$(eval $(autotools-package))

View File

@ -1,2 +1,2 @@
# From http://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/3.20/adwaita-icon-theme-3.20.sha256sum # From http://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/3.22/adwaita-icon-theme-3.22.0.sha256sum
sha256 7a0a887349f340dd644032f89d81264b694c4b006bd51af1c2c368d431e7ae35 adwaita-icon-theme-3.20.tar.xz sha256 c18bf6e26087d9819a962c77288b291efab25d0419b73d909dd771716a45dcb7 adwaita-icon-theme-3.22.0.tar.xz

View File

@ -4,9 +4,11 @@
# #
################################################################################ ################################################################################
ADWAITA_ICON_THEME_VERSION = 3.20 ADWAITA_ICON_THEME_VERSION_MAJOR = 3.22
ADWAITA_ICON_THEME_SITE = http://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/$(ADWAITA_ICON_THEME_VERSION) ADWAITA_ICON_THEME_VERSION = $(ADWAITA_ICON_THEME_VERSION_MAJOR).0
ADWAITA_ICON_THEME_SITE = http://ftp.gnome.org/pub/gnome/sources/adwaita-icon-theme/$(ADWAITA_ICON_THEME_VERSION_MAJOR)
ADWAITA_ICON_THEME_SOURCE = adwaita-icon-theme-$(ADWAITA_ICON_THEME_VERSION).tar.xz ADWAITA_ICON_THEME_SOURCE = adwaita-icon-theme-$(ADWAITA_ICON_THEME_VERSION).tar.xz
ADWAITA_ICON_THEME_INSTALL_STAGING = YES
ADWAITA_ICON_THEME_LICENSE = LGPLv3 or CC-BY-SA-3.0 ADWAITA_ICON_THEME_LICENSE = LGPLv3 or CC-BY-SA-3.0
ADWAITA_ICON_THEME_LICENSE_FILES = COPYING COPYING_LGPL COPYING_CCBYSA3 ADWAITA_ICON_THEME_LICENSE_FILES = COPYING COPYING_LGPL COPYING_CCBYSA3
ADWAITA_ICON_THEME_DEPENDENCIES = host-intltool host-libgtk3 ADWAITA_ICON_THEME_DEPENDENCIES = host-intltool host-libgtk3

View File

@ -1,2 +1,2 @@
# Locally computed: # Locally computed:
sha256 260190beea911190a839e711f610ec3454a9b13985d35479775b7e26ad4c845e aespipe-v2.4c.tar.bz2 sha256 c5ce656e0ade49b93e1163ec7b35450721d5743d8d804ad3a9e39add0389e50f aespipe-v2.4d.tar.bz2

View File

@ -4,7 +4,7 @@
# #
################################################################################ ################################################################################
AESPIPE_VERSION = 2.4c AESPIPE_VERSION = 2.4d
AESPIPE_SOURCE = aespipe-v$(AESPIPE_VERSION).tar.bz2 AESPIPE_SOURCE = aespipe-v$(AESPIPE_VERSION).tar.bz2
AESPIPE_SITE = http://loop-aes.sourceforge.net/aespipe AESPIPE_SITE = http://loop-aes.sourceforge.net/aespipe
AESPIPE_LICENSE = GPL AESPIPE_LICENSE = GPL

View File

@ -1,2 +1,2 @@
# Locally computed: # Locally computed:
sha256 d473b98d5f08e572b474c375c11ff1c4c5323824eb721c3979b6c5258b72949d agent++-4.0.4.tar.gz sha256 6775fa2a038801edddedc148d7846427ddc4d438e3bb33362d9eec6074918a88 agent++-4.0.7.tar.gz

View File

@ -4,7 +4,7 @@
# #
################################################################################ ################################################################################
AGENTPP_VERSION = 4.0.4 AGENTPP_VERSION = 4.0.7
AGENTPP_SOURCE = agent++-$(AGENTPP_VERSION).tar.gz AGENTPP_SOURCE = agent++-$(AGENTPP_VERSION).tar.gz
AGENTPP_SITE = http://www.agentpp.com/download AGENTPP_SITE = http://www.agentpp.com/download
AGENTPP_LICENSE = Apache-2.0 AGENTPP_LICENSE = Apache-2.0

View File

@ -0,0 +1,51 @@
config BR2_PACKAGE_ALLJOYN_BASE
bool "alljoyn-base"
depends on BR2_USE_MMU # alljoyn
depends on !BR2_STATIC_LIBS
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_WCHAR # alljoyn
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # alljoyn
select BR2_PACKAGE_ALLJOYN
select BR2_PACKAGE_OPENSSL
select BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL if \
!BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION && \
!BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING
help
AllJoyn Base Services are common services used by many
devices, providing a set of interfaces for different devices
to interact and interoperate with one another.
https://allseenalliance.org
if BR2_PACKAGE_ALLJOYN_BASE
config BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL
bool "controlpanel"
help
Enable AllJoyn Control Panel base service which allows
devices to advertise a virtual control panel to be
controlled remotely.
config BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION
bool "notification"
help
Enable AllJoyn Notification base service which allows
text-based notifications to be sent and received by devices
on the AllJoyn network. Also supports audio and images via
URLs.
config BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING
bool "onboarding"
help
Enable AllJoyn Onboarding base service which provides a
consistent way to bring a new device onto the Wi-Fi network.
endif # BR2_PACKAGE_ALLJOYN_BASE
comment "alljoyn-base needs a toolchain w/ C++, threads, wchar, dynamic library"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_USE_WCHAR || BR2_STATIC_LIBS

View File

@ -0,0 +1,2 @@
# Locally computed:
sha256 742f724b3a06c8fc4039591dba24871755728221ca5dc4afb78ebd9a7e3beb44 alljoyn-base-16.04.00.tar.gz

View File

@ -0,0 +1,91 @@
################################################################################
#
# alljoyn-base
#
################################################################################
ALLJOYN_BASE_REV = 16.04
ALLJOYN_BASE_VERSION = $(ALLJOYN_BASE_REV).00
ALLJOYN_BASE_SITE = \
https://mirrors.kernel.org/allseenalliance/alljoyn/$(ALLJOYN_BASE_REV)
# See https://allseenalliance.org/alliance/ip-policy
ALLJOYN_BASE_LICENSE = ISC
ALLJOYN_BASE_DEPENDENCIES = host-scons alljoyn openssl
ALLJOYN_BASE_INSTALL_STAGING = YES
ALLJOYN_BASE_CRYPTO = openssl
# AllJoyn can be compiled in debug or release mode. By default,
# AllJoyn is built in debug mode.
ALLJOYN_BASE_VARIANT = release
ALLJOYN_BASE_BINDINGS = c,cpp
# By setting openwrt for OS and CPU, AllJoyn cross-compilation can be finely
# tuned through TARGET_xxx options. All TARGET_xxx variables must be defined
# otherwise compilation will fail.
# CROSS_COMPILE option should not be used as it works only for linux/ARM.
ALLJOYN_BASE_OS = openwrt
ALLJOYN_BASE_CPU = openwrt
# AllJoyn install everything in this relative path
ALLJOYN_BASE_DISTDIR = \
build/$(ALLJOYN_OS)/$(ALLJOYN_CPU)/$(ALLJOYN_VARIANT)/dist
ALLJOYN_BASE_SCONS_OPTS = \
-j$(PARALLEL_JOBS) \
V=1 \
OS=$(ALLJOYN_BASE_OS) \
CPU=$(ALLJOYN_BASE_CPU) \
VARIANT=$(ALLJOYN_BASE_VARIANT) \
BR=off \
CRYPTO=$(ALLJOYN_BASE_CRYPTO) \
BINDINGS=$(ALLJOYN_BASE_BINDINGS) \
ALLJOYN_DISTDIR="$(STAGING_DIR)"\
TARGET_CFLAGS="$(TARGET_CFLAGS)" \
TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \
TARGET_LINKFLAGS="$(TARGET_LINKFLAGS)" \
TARGET_CC="$(TARGET_CC)" \
TARGET_CXX="$(TARGET_CXX)" \
TARGET_LD="$(TARGET_LD)" \
TARGET_LINK="$(TARGET_CXX)" \
TARGET_AR="$(TARGET_AR)" \
TARGET_RANLIB="$(TARGET_RANLIB)" \
TARGET_PATH="$(BR_PATH)"
ifeq ($(BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL), y)
ALLJOYN_BASE_TARGETS += controlpanel
endif
ifeq ($(BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION), y)
ALLJOYN_BASE_TARGETS += notification
endif
ifeq ($(BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING), y)
ALLJOYN_BASE_TARGETS += onboarding
endif
define ALLJOYN_BASE_BUILD_CMDS
$(foreach target,$(ALLJOYN_BASE_TARGETS),\
cd $(@D)/$(target); $(SCONS) $(ALLJOYN_BASE_SCONS_OPTS)
)
endef
define ALLJOYN_BASE_INSTALL_STAGING_CMDS
$(foreach target,$(ALLJOYN_BASE_TARGETS),\
cp -a $(@D)/$(target)/$(ALLJOYN_BASE_DISTDIR)/*/lib/lib* \
$(STAGING_DIR)/usr/lib/
cp -a $(@D)/$(target)/$(ALLJOYN_BASE_DISTDIR)/*/inc/* \
$(STAGING_DIR)/usr/include/
)
endef
define ALLJOYN_BASE_INSTALL_TARGET_CMDS
$(foreach target,$(ALLJOYN_BASE_TARGETS),\
cp -a $(@D)/$(target)/$(ALLJOYN_BASE_DISTDIR)/*/lib/lib* \
$(TARGET_DIR)/usr/lib/
)
endef
$(eval $(generic-package))

View File

@ -0,0 +1,18 @@
config BR2_PACKAGE_ALLJOYN_TCL_BASE
bool "alljoyn-tcl-base"
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_THREADS # alljoyn-tcl
select BR2_PACKAGE_ALLJOYN_TCL
help
AllJoyn Base Services are common services used by many
devices, providing a set of interfaces for different devices
to interact and interoperate with one another.
Thin Client Library is designed to bring the benefits of the
AllJoyn distributed programming environment to embedded
systems.
https://allseenalliance.org
comment "alljoyn-tcl-base needs a toolchain w/ threads and dynamic library"
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS

View File

@ -0,0 +1,2 @@
# Locally computed:
sha256 741f7a71929ccd6a66bf75d2b03affc62411e229b70bb89399be9b1b2ce40629 alljoyn-base_tcl-16.04.00.tar.gz

View File

@ -0,0 +1,45 @@
################################################################################
#
# alljoyn-tcl-base
#
################################################################################
ALLJOYN_TCL_BASE_REV = 16.04
ALLJOYN_TCL_BASE_VERSION = $(ALLJOYN_TCL_BASE_REV).00
ALLJOYN_TCL_BASE_SOURCE = alljoyn-base_tcl-$(ALLJOYN_TCL_BASE_VERSION).tar.gz
ALLJOYN_TCL_BASE_SITE = \
https://mirrors.kernel.org/allseenalliance/alljoyn/$(ALLJOYN_TCL_BASE_REV)
# See https://allseenalliance.org/alliance/ip-policy
ALLJOYN_TCL_BASE_LICENSE = ISC
ALLJOYN_TCL_BASE_DEPENDENCIES = host-scons alljoyn-tcl
ALLJOYN_TCL_BASE_INSTALL_STAGING = YES
# AllJoyn Base Thin Core can be compiled in debug or release mode. By default,
# AllJoyn Base Thin Core is built in debug mode.
ALLJOYN_TCL_BASE_VARIANT = release
ALLJOYN_TCL_BASE_SCONS_OPTS = \
-j$(PARALLEL_JOBS) \
V=1 \
VARIANT=$(ALLJOYN_TCL_BASE_VARIANT) \
CC="$(TARGET_CC)" \
CXX="$(TARGET_CXX)" \
AJTCL_DIST=$(STAGING_DIR) \
WS=off
define ALLJOYN_TCL_BASE_BUILD_CMDS
cd $(@D); $(SCONS) $(ALLJOYN_TCL_BASE_SCONS_OPTS)
endef
define ALLJOYN_TCL_BASE_INSTALL_STAGING_CMDS
cp -a $(@D)/dist/lib/lib* $(STAGING_DIR)/usr/lib/
cp -a $(@D)/dist/include/* $(STAGING_DIR)/usr/include/
endef
# Only install AllJoyn Base Thin Core dynamic libraries into target directory
define ALLJOYN_TCL_BASE_INSTALL_TARGET_CMDS
cp -a $(@D)/dist/lib/lib*.so* $(TARGET_DIR)/usr/lib/
endef
$(eval $(generic-package))

View File

@ -0,0 +1,20 @@
config BR2_PACKAGE_ALLJOYN_TCL
bool "alljoyn-tcl"
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_THREADS
help
The AllJoyn framework defines a common way for devices and
apps to communicate with one another regardless of brands,
categories, transports, and OSes. Developers write
applications that discover nearby devices, and communicate
with each other directly and through the cloud, unleashing
new possibilities in the Internet of Things.
AllJoyn Thin Core Library (AJTCL) is designed to bring the
benefits of the AllJoyn distributed programming environment
to embedded systems.
https://allseenalliance.org
comment "alljoyn-tcl needs a toolchain w/ threads and dynamic library"
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS

View File

@ -0,0 +1,2 @@
# Locally computed:
sha256 da13614a9db79067937b744a87328fed84d99ba62e3de19b0ddc4a83e4b2447e ajtcl-16.04.00a-src.tar.gz

View File

@ -0,0 +1,43 @@
################################################################################
#
# alljoyn-tcl
#
################################################################################
ALLJOYN_TCL_REV = 16.04
ALLJOYN_TCL_VERSION = $(ALLJOYN_TCL_REV).00a
ALLJOYN_TCL_SOURCE = ajtcl-$(ALLJOYN_TCL_VERSION)-src.tar.gz
ALLJOYN_TCL_SITE = \
https://mirrors.kernel.org/allseenalliance/alljoyn/$(ALLJOYN_TCL_REV)
# See https://allseenalliance.org/alliance/ip-policy
ALLJOYN_TCL_LICENSE = ISC
ALLJOYN_TCL_DEPENDENCIES = host-scons
ALLJOYN_TCL_INSTALL_STAGING = YES
# AllJoyn Thin Core can be compiled in debug or release mode. By default,
# AllJoyn Thin Core is built in debug mode.
ALLJOYN_TCL_VARIANT = release
ALLJOYN_TCL_SCONS_OPTS = \
-j$(PARALLEL_JOBS) \
V=1 \
VARIANT=$(ALLJOYN_TCL_VARIANT) \
CC="$(TARGET_CC)" \
CXX="$(TARGET_CXX)"
define ALLJOYN_TCL_BUILD_CMDS
cd $(@D); $(SCONS) $(ALLJOYN_TCL_SCONS_OPTS)
endef
define ALLJOYN_TCL_INSTALL_STAGING_CMDS
cp -a $(@D)/dist/lib/lib* $(STAGING_DIR)/usr/lib/
cp -a $(@D)/dist/include/* $(STAGING_DIR)/usr/include/
endef
# Only install AllJoyn Thin Core dynamic libraries into target directory
define ALLJOYN_TCL_INSTALL_TARGET_CMDS
cp -a $(@D)/dist/lib/lib*.so* $(TARGET_DIR)/usr/lib/
endef
$(eval $(generic-package))

View File

@ -0,0 +1,56 @@
From b8e35cf95184ff18bcf923f900439f56c93609db Mon Sep 17 00:00:00 2001
From: Romain Naour <romain.naour@gmail.com>
Date: Sat, 16 Jul 2016 15:23:41 +0200
Subject: [PATCH] UARTStreamLinux: fix build on sparc
Some of the serial port highest speed are not defined on SPARC, so
alljoyn should not use them, so we add a patch to fix that.
From:
https://git.buildroot.org/buildroot/commit/?id=c5e96d8935016456bea342db170ae6a139a8470f
Fixes:
http://autobuild.buildroot.net/results/e5b/e5b30b5e0d86b44b97410d434b771e1fb7b18de0
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
common/os/posix/UARTStreamLinux.cc | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/common/os/posix/UARTStreamLinux.cc b/common/os/posix/UARTStreamLinux.cc
index c193b70..ae81d9d 100644
--- a/common/os/posix/UARTStreamLinux.cc
+++ b/common/os/posix/UARTStreamLinux.cc
@@ -111,21 +111,29 @@ QStatus UART(const qcc::String& devName, uint32_t baud, uint8_t databits, const
speed = B2000000;
break;
+#ifdef B2500000
case 2500000:
speed = B2500000;
break;
+#endif
+#ifdef B3000000
case 3000000:
speed = B3000000;
break;
+#endif
+#ifdef B3500000
case 3500000:
speed = B3500000;
break;
+#endif
+#ifdef B4000000
case 4000000:
speed = B4000000;
break;
+#endif
default:
QCC_LogError(ER_BAD_ARG_2, ("Invalid baud %d", baud));
--
2.5.5

25
package/alljoyn/Config.in Normal file
View File

@ -0,0 +1,25 @@
config BR2_PACKAGE_ALLJOYN
bool "alljoyn"
depends on BR2_USE_MMU # fork()
depends on !BR2_STATIC_LIBS
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_WCHAR
select BR2_PACKAGE_LIBCAP
select BR2_PACKAGE_OPENSSL
help
The AllJoyn framework defines a common way for devices and
apps to communicate with one another regardless of brands,
categories, transports, and OSes. Developers write
applications that discover nearby devices, and communicate
with each other directly and through the cloud, unleashing
new possibilities in the Internet of Things.
https://allseenalliance.org
comment "alljoyn needs a toolchain w/ C++, threads, wchar and dynamic library"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_USE_WCHAR || BR2_STATIC_LIBS

View File

@ -0,0 +1,2 @@
# Locally computed:
sha256 fc437d96cf1213f18048240b5d12a374b31894d21830a0a6ccf562ffa13425d5 alljoyn-16.04.00a-src.tar.gz

View File

@ -0,0 +1,69 @@
################################################################################
#
# alljoyn
#
################################################################################
ALLJOYN_REV = 16.04
ALLJOYN_VERSION = $(ALLJOYN_REV).00a
ALLJOYN_SOURCE = alljoyn-$(ALLJOYN_VERSION)-src.tar.gz
ALLJOYN_SITE = https://mirrors.kernel.org/allseenalliance/alljoyn/$(ALLJOYN_REV)
# See https://allseenalliance.org/alliance/ip-policy
ALLJOYN_LICENSE = ISC
ALLJOYN_DEPENDENCIES = host-scons libcap openssl
ALLJOYN_INSTALL_STAGING = YES
ALLJOYN_CRYPTO = openssl
# AllJoyn can be compiled in debug or release mode. By default, AllJoyn is built
# in debug mode.
ALLJOYN_VARIANT = release
ALLJOYN_BINDINGS = c,cpp
# By setting openwrt for OS and CPU, AllJoyn cross-compilation can be finely
# tuned through TARGET_xxx options. All TARGET_xxx variables must be defined
# otherwise compilation will fail.
# CROSS_COMPILE option should not be used as it works only for linux/ARM.
ALLJOYN_OS = openwrt
ALLJOYN_CPU = openwrt
# AllJoyn installs everything in this relative path
ALLJOYN_DISTDIR = build/$(ALLJOYN_OS)/$(ALLJOYN_CPU)/$(ALLJOYN_VARIANT)/dist/
ALLJOYN_SCONS_OPTS = \
-j$(PARALLEL_JOBS) \
V=1 \
OS=$(ALLJOYN_OS) \
CPU=$(ALLJOYN_CPU) \
VARIANT=$(ALLJOYN_VARIANT) \
BR=off \
CRYPTO=$(ALLJOYN_CRYPTO) \
BINDINGS=$(ALLJOYN_BINDINGS) \
TARGET_CFLAGS="$(TARGET_CFLAGS)" \
TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \
TARGET_LINKFLAGS="$(TARGET_LINKFLAGS)" \
TARGET_CC="$(TARGET_CC)" \
TARGET_CXX="$(TARGET_CXX)" \
TARGET_LD="$(TARGET_LD)" \
TARGET_LINK="$(TARGET_CXX)" \
TARGET_AR="$(TARGET_AR)" \
TARGET_RANLIB="$(TARGET_RANLIB)" \
TARGET_PATH="$(BR_PATH)"
define ALLJOYN_BUILD_CMDS
cd $(@D); $(SCONS) $(ALLJOYN_SCONS_OPTS)
endef
define ALLJOYN_INSTALL_STAGING_CMDS
cp -a $(@D)/$(ALLJOYN_DISTDIR)/*/lib/lib* $(STAGING_DIR)/usr/lib/
cp -a $(@D)/$(ALLJOYN_DISTDIR)/*/inc/* $(STAGING_DIR)/usr/include/
endef
# Only install alljoyn dynamic libraries into target directory
define ALLJOYN_INSTALL_TARGET_CMDS
cp -a $(@D)/$(ALLJOYN_DISTDIR)/*/lib/lib*.so* $(TARGET_DIR)/usr/lib/
endef
$(eval $(generic-package))

View File

@ -36,10 +36,11 @@ diff --git a/modules/mixer/simple/sbasedl.c b/modules/mixer/simple/sbasedl.c
#include <fcntl.h> #include <fcntl.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <math.h> #include <math.h>
+#ifdef HAVE_LIBDL +#include "config.h"
+#ifdef HAVE_DLFCN
#include <dlfcn.h> #include <dlfcn.h>
+#endif +#endif
#include "config.h" -#include "config.h"
#include "asoundlib.h" #include "asoundlib.h"
#include "mixer_abst.h" #include "mixer_abst.h"
diff --git a/src/mixer/simple_abst.c b/src/mixer/simple_abst.c diff --git a/src/mixer/simple_abst.c b/src/mixer/simple_abst.c
@ -49,9 +50,10 @@ diff --git a/src/mixer/simple_abst.c b/src/mixer/simple_abst.c
#include <fcntl.h> #include <fcntl.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <math.h> #include <math.h>
+#ifdef HAVE_LIBDL +#include "config.h"
+#ifdef HAVE_DLFCN
#include <dlfcn.h> #include <dlfcn.h>
+#endif +#endif
#include "config.h" -#include "config.h"
#include "asoundlib.h" #include "asoundlib.h"
#include "mixer_simple.h" #include "mixer_simple.h"

View File

@ -0,0 +1,67 @@
Linking currently fails on powerpc64 and powerpc64le when configured
with --without-versioned, as follows:
../src/.libs/libasound.so: undefined reference to `.__snd_pcm_hw_params_set_format_first'
(And many similar messages.)
This appears to be due to a very old (2003) workaround for powerpc64,
(introduced by commit 06221f86) in include/alsa-symbols.h which alters
symbol names. While it was probably necessary at the time, it does not
appear to be necessary now and removing it fixes the build.
Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
---
include/alsa-symbols.h | 25 ++++---------------------
1 file changed, 4 insertions(+), 21 deletions(-)
diff --git a/include/alsa-symbols.h b/include/alsa-symbols.h
index 51cb982..0cb0b9f 100644
--- a/include/alsa-symbols.h
+++ b/include/alsa-symbols.h
@@ -29,19 +29,10 @@
#define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post
#define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)
-#ifdef __powerpc64__
-# define symbol_version(real, name, version) \
- __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version); \
- __asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#name) "@" #version)
-# define default_symbol_version(real, name, version) \
- __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version); \
- __asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#name) "@@" #version)
-#else
-# define symbol_version(real, name, version) \
- __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version)
-# define default_symbol_version(real, name, version) \
- __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version)
-#endif
+#define symbol_version(real, name, version) \
+__asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version)
+#define default_symbol_version(real, name, version) \
+__asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version)
#ifdef USE_VERSIONED_SYMBOLS
#define use_symbol_version(real, name, version) \
@@ -50,13 +41,6 @@
default_symbol_version(real, name, version)
#else
#define use_symbol_version(real, name, version) /* nothing */
-#ifdef __powerpc64__
-#define use_default_symbol_version(real, name, version) \
- __asm__ (".weak " ASM_NAME(#name)); \
- __asm__ (".weak ." ASM_NAME(#name)); \
- __asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real)); \
- __asm__ (".set ." ASM_NAME(#name) ",." ASM_NAME(#real))
-#else
#if defined(__alpha__) || defined(__mips__)
#define use_default_symbol_version(real, name, version) \
__asm__ (".weak " ASM_NAME(#name)); \
@@ -67,6 +51,5 @@
__asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real))
#endif
#endif
-#endif
#endif /* __ALSA_SYMBOLS_H */
--
2.10.0.297.gf6727b0

View File

@ -0,0 +1,30 @@
From 13a796b4bd00defa9f9297fd23d508b430682aed Mon Sep 17 00:00:00 2001
From: Gustavo Zacarias <gustavo@zacarias.com.ar>
Date: Wed, 21 Dec 2016 19:41:26 -0300
Subject: [PATCH] ucm: parser needs limits.h
It's using PATH_MAX which is defined there, otherwise the build fails on
musl libc.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
Patch status: sent to alsa-devel ML.
src/ucm/parser.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/ucm/parser.c b/src/ucm/parser.c
index c98373a..f520abc 100644
--- a/src/ucm/parser.c
+++ b/src/ucm/parser.c
@@ -32,6 +32,7 @@
#include "ucm_local.h"
#include <dirent.h>
+#include <limits.h>
/** The name of the environment variable containing the UCM directory */
#define ALSA_CONFIG_UCM_VAR "ALSA_CONFIG_UCM"
--
2.10.2

View File

@ -1,2 +1,2 @@
# Locally calculated # Locally calculated
sha256 8ac76c3144ed2ed49da7622ab65ac5415205913ccbedde877972383cbc234269 alsa-lib-1.1.1.tar.bz2 sha256 71282502184c592c1a008e256c22ed0ba5728ca65e05273ceb480c70f515969c alsa-lib-1.1.3.tar.bz2

View File

@ -4,11 +4,11 @@
# #
################################################################################ ################################################################################
ALSA_LIB_VERSION = 1.1.1 ALSA_LIB_VERSION = 1.1.3
ALSA_LIB_SOURCE = alsa-lib-$(ALSA_LIB_VERSION).tar.bz2 ALSA_LIB_SOURCE = alsa-lib-$(ALSA_LIB_VERSION).tar.bz2
ALSA_LIB_SITE = ftp://ftp.alsa-project.org/pub/lib ALSA_LIB_SITE = ftp://ftp.alsa-project.org/pub/lib
ALSA_LIB_LICENSE = LGPLv2.1+ ALSA_LIB_LICENSE = LGPLv2.1+ (library), GPLv2+ (aserver)
ALSA_LIB_LICENSE_FILES = COPYING ALSA_LIB_LICENSE_FILES = COPYING aserver/COPYING
ALSA_LIB_INSTALL_STAGING = YES ALSA_LIB_INSTALL_STAGING = YES
ALSA_LIB_CFLAGS = $(TARGET_CFLAGS) ALSA_LIB_CFLAGS = $(TARGET_CFLAGS)
ALSA_LIB_AUTORECONF = YES ALSA_LIB_AUTORECONF = YES
@ -62,10 +62,6 @@ else
ALSA_LIB_CONF_OPTS += --disable-python ALSA_LIB_CONF_OPTS += --disable-python
endif endif
ifeq ($(BR2_SOFT_FLOAT),y)
ALSA_LIB_CONF_OPTS += --with-softfloat
endif
ifeq ($(BR2_bfin),y) ifeq ($(BR2_bfin),y)
# blackfin external toolchains don't have versionsort. Fake it using alphasort # blackfin external toolchains don't have versionsort. Fake it using alphasort
# instead # instead

View File

@ -1,2 +1,2 @@
# Locally calculated # Locally calculated
sha256 89757c9abaf420831b088fce354d492acc170bd02bb50eb7392c175f594b8041 alsa-utils-1.1.1.tar.bz2 sha256 127217a54eea0f9a49700a2f239a2d4f5384aa094d68df04a8eb80132eb6167c alsa-utils-1.1.3.tar.bz2

View File

@ -4,7 +4,7 @@
# #
################################################################################ ################################################################################
ALSA_UTILS_VERSION = 1.1.1 ALSA_UTILS_VERSION = 1.1.3
ALSA_UTILS_SOURCE = alsa-utils-$(ALSA_UTILS_VERSION).tar.bz2 ALSA_UTILS_SOURCE = alsa-utils-$(ALSA_UTILS_VERSION).tar.bz2
ALSA_UTILS_SITE = ftp://ftp.alsa-project.org/pub/utils ALSA_UTILS_SITE = ftp://ftp.alsa-project.org/pub/utils
ALSA_UTILS_LICENSE = GPLv2 ALSA_UTILS_LICENSE = GPLv2
@ -23,6 +23,7 @@ ALSA_UTILS_CONF_ENV = \
ALSA_UTILS_CONF_OPTS = \ ALSA_UTILS_CONF_OPTS = \
--disable-xmlto \ --disable-xmlto \
--disable-rst2man \
--with-curses=$(if $(BR2_PACKAGE_NCURSES_WCHAR),ncursesw,ncurses) --with-curses=$(if $(BR2_PACKAGE_NCURSES_WCHAR),ncursesw,ncurses)
ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y) ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)

View File

@ -0,0 +1,2 @@
# Locally computed
sha256 2a902f825ccc1885c5dccd83e1ccee104aa30e601c9964a24f49459f76f674b9 am335x-pru-package-5f374ad57cc195f28bf5e585c3d446aba6ee7096.tar.gz

View File

@ -4,7 +4,7 @@
# #
################################################################################ ################################################################################
AM335X_PRU_PACKAGE_VERSION = 506e074859891a2b350eb4f5fcb451c4961410ea AM335X_PRU_PACKAGE_VERSION = 5f374ad57cc195f28bf5e585c3d446aba6ee7096
AM335X_PRU_PACKAGE_SITE = $(call github,beagleboard,am335x_pru_package,$(AM335X_PRU_PACKAGE_VERSION)) AM335X_PRU_PACKAGE_SITE = $(call github,beagleboard,am335x_pru_package,$(AM335X_PRU_PACKAGE_VERSION))
AM335X_PRU_PACKAGE_LICENSE = BSD-3c AM335X_PRU_PACKAGE_LICENSE = BSD-3c
AM335X_PRU_PACKAGE_LICENSE_FILES = pru_sw/utils/LICENCE.txt AM335X_PRU_PACKAGE_LICENSE_FILES = pru_sw/utils/LICENCE.txt
@ -19,19 +19,19 @@ AM335X_MAKE_TARGET = release $(if $(BR2_STATIC_LIBS),,sorelease)
endif endif
define AM335X_PRU_PACKAGE_BUILD_CMDS define AM335X_PRU_PACKAGE_BUILD_CMDS
$(MAKE) CROSS_COMPILE="$(TARGET_CROSS)" \ $(TARGET_MAKE_ENV) $(MAKE) CROSS_COMPILE="$(TARGET_CROSS)" \
-C $(@D)/pru_sw/app_loader/interface $(AM335X_MAKE_TARGET) -C $(@D)/pru_sw/app_loader/interface $(AM335X_MAKE_TARGET)
endef endef
# 'install' installs whatever was built, and our patch removes the dependency # 'install' installs whatever was built, and our patch removes the dependency
# on the release build, so we can use it to install whatever we built above. # on the release build, so we can use it to install whatever we built above.
define AM335X_PRU_PACKAGE_INSTALL_STAGING_CMDS define AM335X_PRU_PACKAGE_INSTALL_STAGING_CMDS
$(MAKE1) DESTDIR="$(STAGING_DIR)" PREFIX="/usr" \ $(TARGET_MAKE_ENV) $(MAKE1) DESTDIR="$(STAGING_DIR)" PREFIX="/usr" \
-C $(@D)/pru_sw/app_loader/interface install -C $(@D)/pru_sw/app_loader/interface install
endef endef
define AM335X_PRU_PACKAGE_INSTALL_TARGET_CMDS define AM335X_PRU_PACKAGE_INSTALL_TARGET_CMDS
$(MAKE1) DESTDIR="$(TARGET_DIR)" PREFIX="/usr" \ $(TARGET_MAKE_ENV) $(MAKE1) DESTDIR="$(TARGET_DIR)" PREFIX="/usr" \
-C $(@D)/pru_sw/app_loader/interface install -C $(@D)/pru_sw/app_loader/interface install
endef endef

View File

@ -1,6 +1,7 @@
config BR2_PACKAGE_AM33X_CM3 config BR2_PACKAGE_AM33X_CM3
bool "am33x-cm3" bool "am33x-cm3"
depends on BR2_arm # only relevant for TI am335x depends on BR2_arm # only relevant for TI am335x
depends on BR2_BINFMT_ELF # assumes the compiler builds ELF file
help help
Cortex-M3 binary blob for suspend-resume on am335x Cortex-M3 binary blob for suspend-resume on am335x

View File

@ -14,7 +14,7 @@ AM33X_CM3_LICENSE_FILES = License.txt
# The build command below will use the standard cross-compiler (normally # The build command below will use the standard cross-compiler (normally
# build for Cortex-A8, to build the FW for the Cortex-M3. # build for Cortex-A8, to build the FW for the Cortex-M3.
define AM33X_CM3_BUILD_CMDS define AM33X_CM3_BUILD_CMDS
$(MAKE) CC="$(TARGET_CC)" CROSS_COMPILE="$(TARGET_CROSS)" -C $(@D) all $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CROSS_COMPILE="$(TARGET_CROSS)" -C $(@D) all
endef endef
# Not all of the firmware files are used # Not all of the firmware files are used

View File

@ -0,0 +1,45 @@
From c35482bc0cc56b40263b74c3e58e42be867fd9f2 Mon Sep 17 00:00:00 2001
From: Alberto Milone <alberto.milone@canonical.com>
Date: Thu, 17 Sep 2015 15:41:46 +0200
Subject: [PATCH] Add support for Linux 4.0
Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
---
common/lib/modules/fglrx/build_mod/firegl_public.c | 5 +++++
common/lib/modules/fglrx/build_mod/kcl_str.c | 4 ++++
2 files changed, 9 insertions(+)
diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
index 677565d..6017e89 100755
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
@@ -285,6 +285,11 @@ MODULE_DEVICE_TABLE(pci, fglrx_pci_table);
MODULE_INFO(supported, "external");
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 20, 0)
+#define read_cr4() __read_cr4()
+#define write_cr4(cr4) __write_cr4(cr4)
+#endif
+
/* globals constants */
const char* KCL_SYSINFO_OsVersionString = UTS_RELEASE;
const unsigned int KCL_SYSINFO_PageSize = PAGE_SIZE;
diff --git a/common/lib/modules/fglrx/build_mod/kcl_str.c b/common/lib/modules/fglrx/build_mod/kcl_str.c
index 2d89eb0..bacdb69 100755
--- a/common/lib/modules/fglrx/build_mod/kcl_str.c
+++ b/common/lib/modules/fglrx/build_mod/kcl_str.c
@@ -42,6 +42,10 @@
#include "kcl_type.h"
#include "kcl_str.h"
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 20, 0)
+#define strnicmp strncasecmp
+#endif
+
/** \brief Fill memory with a constant byte
* \param s Pointer to memory
* \param c Initializing value
--
2.8.1

View File

@ -0,0 +1,31 @@
From e9c8ccb4c8c842042542b792c51f9a7ec6c85e06 Mon Sep 17 00:00:00 2001
From: Alberto Milone <alberto.milone@canonical.com>
Date: Thu, 17 Sep 2015 15:44:59 +0200
Subject: [PATCH] Add support for Linux 4.1
Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
---
common/lib/modules/fglrx/build_mod/firegl_public.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
index 6017e89..94778f1 100755
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
@@ -3508,10 +3508,12 @@ int ATI_API_CALL KCL_InstallInterruptHandler(
KCL_PUB_InterruptHandlerWrap,
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
((useMSI) ? (SA_INTERRUPT) : (SA_SHIRQ)),
-#else
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0)
//when MSI enabled. keep irq disabled when calling the action handler,
//exclude this IRQ from irq balancing (only on one CPU)
((useMSI) ? (IRQF_DISABLED) : (IRQF_SHARED)),
+#else
+ ((useMSI) ? (0x0) : (IRQF_SHARED)),
#endif
dev_name,
context);
--
2.8.1

View File

@ -0,0 +1,121 @@
From e2e6c2dac2a0311a022208dd289374b832538329 Mon Sep 17 00:00:00 2001
From: Alberto Milone <alberto.milone@canonical.com>
Date: Tue, 14 Jul 2015 12:56:37 +0200
Subject: [PATCH] Add support for Linux 4.2
Deal with the FPU code renaming
Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
---
common/lib/modules/fglrx/build_mod/firegl_public.c | 38 ++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
index 94778f1..749ea51 100755
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
@@ -191,9 +191,17 @@
#include <linux/string.h>
#include <linux/gfp.h>
#include <linux/swap.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
#include "asm/i387.h"
+#else
+#include <asm/fpu/api.h>
+#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
#include <asm/fpu-internal.h>
+#else
+#include <asm/fpu/internal.h>
+#endif
#endif
#include "firegl_public.h"
@@ -1711,6 +1719,9 @@ void ATI_API_CALL KCL_SetCurrentProcessState(KCL_ENUM_ProcessState state)
#if defined(__i386__)
#ifndef __HAVE_ARCH_CMPXCHG
+#ifndef __xg
+#define __xg(x) ((volatile long *)(x))
+#endif
static inline
unsigned long __fgl_cmpxchg(volatile void *ptr, unsigned long old,
unsigned long new, int size)
@@ -1747,7 +1758,11 @@ unsigned long ATI_API_CALL kcl__cmpxchg(volatile void *ptr, unsigned long old,
unsigned long new, int size)
{
#ifndef __HAVE_ARCH_CMPXCHG
+#if defined(__i386__)
return __fgl_cmpxchg(ptr,old,new,size);
+#elif defined(__x86_64__)
+ return cmpxchg((unsigned long*)ptr,old,new);
+#endif
#else
/* On kernel version 2.6.34 passing a variable or unsupported size
* argument to the __cmpxchg macro causes the default-clause of a
@@ -6443,21 +6458,36 @@ static int KCL_fpu_save_init(struct task_struct *tsk)
struct fpu *fpu = &tsk->thread.fpu;
if(static_cpu_has(X86_FEATURE_XSAVE)) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
fpu_xsave(fpu);
if (!(fpu->state->xsave.xsave_hdr.xstate_bv & XSTATE_FP))
+#else
+ copy_xregs_to_kernel(&fpu->state.xsave);
+ if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
+#endif
return 1;
} else if (static_cpu_has(X86_FEATURE_FXSR)) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
fpu_fxsave(fpu);
+#else
+ copy_fxregs_to_kernel(fpu);
+#endif
} else {
asm volatile("fnsave %[fx]; fwait"
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
: [fx] "=m" (fpu->state->fsave));
+#else
+ : [fx] "=m" (fpu->state.fsave));
+#endif
return 0;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
if (unlikely(fpu->state->fxsave.swd & X87_FSW_ES)) {
asm volatile("fnclex");
return 0;
}
+#endif
return 1;
}
#endif
@@ -6469,8 +6499,12 @@ static int KCL_fpu_save_init(struct task_struct *tsk)
void ATI_API_CALL KCL_fpu_begin(void)
{
#ifdef CONFIG_X86_64
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
kernel_fpu_begin();
#else
+ __kernel_fpu_begin();
+#endif
+#else
#ifdef TS_USEDFPU
struct thread_info *cur_thread = current_thread_info();
struct task_struct *cur_task = get_current();
@@ -6515,7 +6549,11 @@ void ATI_API_CALL KCL_fpu_begin(void)
*/
void ATI_API_CALL KCL_fpu_end(void)
{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
kernel_fpu_end();
+#else
+ __kernel_fpu_end();
+#endif
}
/** Create new directory entry under "/proc/...."
--
2.8.1

View File

@ -0,0 +1,33 @@
From 7120f00015570a2e4d9b6532731960d509c71cba Mon Sep 17 00:00:00 2001
From: Alberto Milone <alberto.milone@canonical.com>
Date: Thu, 17 Sep 2015 15:48:30 +0200
Subject: [PATCH] Use fpregs_active instead of has_fpu
This is for Linux 4.2
Thanks to Tim Gardner for the patch.
Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
---
common/lib/modules/fglrx/build_mod/firegl_public.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
index 749ea51..4c1f9a5 100755
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
@@ -6528,7 +6528,11 @@ void ATI_API_CALL KCL_fpu_begin(void)
/* The thread structure is changed with the commit below for kernel 3.3:
* https://github.com/torvalds/linux/commit/7e16838d94b566a17b65231073d179bc04d590c8
*/
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)
+ if (cur_task->thread.fpu.fpregs_active)
+#else
if (cur_task->thread.fpu.has_fpu)
+#endif
#else
if (cur_task->thread.has_fpu)
#endif
--
2.8.1

View File

@ -0,0 +1,79 @@
From eb703737be5c91c1a0817351db8ec152c523c85d Mon Sep 17 00:00:00 2001
From: Alberto Milone <alberto.milone@canonical.com>
Date: Thu, 17 Sep 2015 15:49:46 +0200
Subject: [PATCH] Use a local copy of copy_xregs_to_kernel
This is needed for Linux 4.2.
Thanks to Tim Gardner for the patch.
Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
---
common/lib/modules/fglrx/build_mod/firegl_public.c | 44 +++++++++++++++++++++-
1 file changed, 43 insertions(+), 1 deletion(-)
diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
index 4c1f9a5..bb67bba 100755
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
@@ -6443,6 +6443,48 @@ int ATI_API_CALL kcl_sscanf(const char * buf, const char * fmt, ...)
return i;
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)
+/*
+ * Save processor xstate to xsave area.
+ */
+static void _copy_xregs_to_kernel(struct xregs_state *xstate)
+{
+ u64 mask = -1;
+ u32 lmask = mask;
+ u32 hmask = mask >> 32;
+ int err = 0;
+
+ /*WARN_ON(!alternatives_patched);*/
+
+ /*
+ * If xsaves is enabled, xsaves replaces xsaveopt because
+ * it supports compact format and supervisor states in addition to
+ * modified optimization in xsaveopt.
+ *
+ * Otherwise, if xsaveopt is enabled, xsaveopt replaces xsave
+ * because xsaveopt supports modified optimization which is not
+ * supported by xsave.
+ *
+ * If none of xsaves and xsaveopt is enabled, use xsave.
+ */
+ alternative_input_2(
+ "1:"XSAVE,
+ XSAVEOPT,
+ X86_FEATURE_XSAVEOPT,
+ XSAVES,
+ X86_FEATURE_XSAVES,
+ [xstate] "D" (xstate), "a" (lmask), "d" (hmask) :
+ "memory");
+ asm volatile("2:\n\t"
+ xstate_fault(err)
+ : "0" (err)
+ : "memory");
+
+ /* We should never fault when copying to a kernel buffer: */
+ WARN_ON_FPU(err);
+}
+#endif
+
/** \brief Generate UUID
* \param buf pointer to the generated UUID
* \return None
@@ -6462,7 +6504,7 @@ static int KCL_fpu_save_init(struct task_struct *tsk)
fpu_xsave(fpu);
if (!(fpu->state->xsave.xsave_hdr.xstate_bv & XSTATE_FP))
#else
- copy_xregs_to_kernel(&fpu->state.xsave);
+ _copy_xregs_to_kernel(&fpu->state.xsave);
if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
#endif
return 1;
--
2.8.1

View File

@ -0,0 +1,78 @@
From 54b230e26a1889c08507e791ab043f8a4b4ff771 Mon Sep 17 00:00:00 2001
From: Romain Perier <romain.perier@free-electrons.com>
Date: Thu, 7 Jul 2016 14:40:53 +0200
Subject: [PATCH] Add support for Linux 4.4
It fixes various things like the use of seq_printf because its API
changed. It also replaces the call to mtrr_add and mtrr_del by
arch_phys_wc_add and arch_phys_wc_del because these symbols are
no longer exported for Linux >= 4.3.x.
Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
---
common/lib/modules/fglrx/build_mod/firegl_public.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c
index bb67bba..b4b2d30 100755
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c
@@ -636,9 +636,16 @@ static int firegl_major_proc_read(struct seq_file *m, void* data)
len = snprintf(buf, request, "%d\n", major);
#else
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
+ seq_printf(m, "%d\n", major);
+ len = 0;
+#else
len = seq_printf(m, "%d\n", major);
#endif
+#endif
+
KCL_DEBUG1(FN_FIREGL_PROC, "return len=%i\n",len);
return len;
@@ -3432,7 +3439,11 @@ int ATI_API_CALL KCL_MEM_MTRR_Support(void)
int ATI_API_CALL KCL_MEM_MTRR_AddRegionWc(unsigned long base, unsigned long size)
{
#ifdef CONFIG_MTRR
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
+ return arch_phys_wc_add(base, size);
+#else
return mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
+#endif
#else /* !CONFIG_MTRR */
return -EPERM;
#endif /* !CONFIG_MTRR */
@@ -3441,7 +3452,12 @@ int ATI_API_CALL KCL_MEM_MTRR_AddRegionWc(unsigned long base, unsigned long size
int ATI_API_CALL KCL_MEM_MTRR_DeleteRegion(int reg, unsigned long base, unsigned long size)
{
#ifdef CONFIG_MTRR
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
+ arch_phys_wc_del(reg);
+ return 0;
+#else
return mtrr_del(reg, base, size);
+#endif
#else /* !CONFIG_MTRR */
return -EPERM;
#endif /* !CONFIG_MTRR */
@@ -6505,8 +6521,13 @@ static int KCL_fpu_save_init(struct task_struct *tsk)
if (!(fpu->state->xsave.xsave_hdr.xstate_bv & XSTATE_FP))
#else
_copy_xregs_to_kernel(&fpu->state.xsave);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
+ if (!(fpu->state.xsave.header.xfeatures & XFEATURE_MASK_FP))
+#else
if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
#endif
+
+#endif
return 1;
} else if (static_cpu_has(X86_FEATURE_FXSR)) {
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
--
2.8.1

View File

@ -0,0 +1,54 @@
Author: Manuel Rüger <mrueg@gentoo.org>
Date: Sat, 2 Jan 2016 17:24:30 +0100
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/x11-drivers/ati-drivers/files?id=179aa11ed2f1bd79cf1b190263c3a7a07279fc50
Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
---
--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-18 23:57:02.000000000 -0400
+++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-09-18 23:57:11.000000000 -0400
@@ -136,7 +136,6 @@
#include <asm/mman.h>
#include <asm/uaccess.h>
#include <asm/processor.h>
-#include <asm/tlbflush.h> // for flush_tlb_page
#include <asm/cpufeature.h>
#ifdef CONFIG_MTRR
#include <asm/mtrr.h>
@@ -251,6 +250,26 @@
#define WRITE_CR4(x) write_cr4(x)
#endif
+#define __flush_tlb_one(addr) asm volatile("invlpg (%0)" ::"r" (addr) : "memory")
+#define __flush_tlb() native_write_cr3(native_read_cr3())
+
+static inline void __flush_tlb_all(void)
+{
+ if (cpu_has_pge)
+ {
+ unsigned long flags, cr4;
+ raw_local_irq_save(flags);
+ cr4 = native_read_cr4();
+ native_write_cr4(cr4 & ~X86_CR4_PGE);
+ native_write_cr4(cr4);
+ raw_local_irq_restore(flags);
+ }
+ else
+ {
+ __flush_tlb();
+ }
+}
+
// ============================================================
/* globals */
--- a/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2015-09-19 00:43:35.000000000 -0400
+++ b/common/lib/modules/fglrx/build_mod/kcl_acpi.c 2015-09-19 00:43:48.000000000 -0400
@@ -868,7 +868,7 @@ void ATI_API_CALL KCL_ACPI_No_Hotplug(vo
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)
if(pdev)
{
-#if (UTS_UBUNTU_RELEASE_ABI < 0 && LINUX_VERSION_CODE < KERNEL_VERSION(4,1,3)) || (UTS_UBUNTU_RELEASE_ABI >= 0 && UTS_UBUNTU_RELEASE_ABI < 26 && LINUX_VERSION_CODE <= KERNEL_VERSION(3,19,8))
+#if 0 && (UTS_UBUNTU_RELEASE_ABI < 0 && LINUX_VERSION_CODE < KERNEL_VERSION(4,1,3)) || (UTS_UBUNTU_RELEASE_ABI >= 0 && UTS_UBUNTU_RELEASE_ABI < 26 && LINUX_VERSION_CODE <= KERNEL_VERSION(3,19,8))
pci_ignore_hotplug(pdev);
#else
pdev->ignore_hotplug = 1;

View File

@ -0,0 +1,4 @@
Section "Device"
Identifier "AMD Radeon GPU"
Driver "fglrx"
EndSection

View File

@ -0,0 +1,81 @@
comment "amd-catalyst needs a glibc toolchain"
depends on BR2_i386 || BR2_x86_64
depends on !BR2_TOOLCHAIN_USES_GLIBC
config BR2_PACKAGE_AMD_CATALYST
bool "amd-catalyst"
depends on BR2_i386 || BR2_x86_64
depends on BR2_TOOLCHAIN_USES_GLIBC
help
The binary-only driver blob for AMD cards.
This driver supports AMD Radeon HD 5xxx and newer graphics
cards.
http://www.amd.com/
if BR2_PACKAGE_AMD_CATALYST
comment "amd-catalyst X.org drivers needs a modular Xorg server <= 1.17"
depends on !BR2_PACKAGE_XORG7 \
|| !BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR \
|| !BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_19
config BR2_PACKAGE_AMD_CATALYST_XORG
bool "X.org drivers"
default y
depends on BR2_PACKAGE_XORG7
depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
depends on BR2_PACKAGE_XSERVER_XORG_SERVER_VIDEODRV_ABI_19
select BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX
select BR2_PACKAGE_ACPID # runtime
select BR2_PACKAGE_XLIB_LIBX11 # runtime
select BR2_PACKAGE_XLIB_LIBXEXT # runtime
select BR2_PACKAGE_XLIB_LIBXCOMPOSITE # runtime
# This package does not have standard GL headers
select BR2_PACKAGE_MESA3D_HEADERS
select BR2_PACKAGE_HAS_LIBGL
if BR2_PACKAGE_AMD_CATALYST_XORG
config BR2_PACKAGE_PROVIDES_LIBGL
default "amd-catalyst"
config BR2_PACKAGE_AMD_CATALYST_CMDLINE_TOOLS
bool "command-line configuration tools"
help
Build and install the AMD command line tools.
comment "Catalyst Control Center needs Qt4 with X11 and PNG support"
depends on !BR2_PACKAGE_QT || !BR2_PACKAGE_QT_X11 \
|| BR2_PACKAGE_QT_NOPNG
config BR2_PACKAGE_AMD_CATALYST_CCCLE
bool "Catalyst Control Center"
depends on BR2_PACKAGE_QT
depends on BR2_PACKAGE_QT_X11
depends on !BR2_PACKAGE_QT_NOPNG
select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # procps-ng
select BR2_PACKAGE_PROCPS_NG # runtime
select BR2_PACKAGE_QT_ACCESSIBILITY
help
Installs the Catalyst Control Center, a Qt graphical tool to
control AMD graphics accelerators.
endif
comment "amd-catalyst kernel module needs a kernel to be built"
depends on !BR2_LINUX_KERNEL
config BR2_PACKAGE_AMD_CATALYST_MODULE
bool "fglrx kernel module"
depends on BR2_LINUX_KERNEL
help
Builds and install the fglrx kernel module
config BR2_PACKAGE_AMD_CATALYST_OPENCL
bool "OpenCL support"
help
Installs the OpenCL binary blobs and the ICD profile
for GPGPU computing.
endif # BR2_PACKAGE_AMD_CATALYST

View File

@ -0,0 +1,2 @@
# Locally computed
sha256 bf3e6e7d5c51db3d075410a3f116f865b82823debc1d66698d187249feec6a91 amd-catalyst-15.9-linux-installer-15.201.1151-x86.x86_64.zip

View File

@ -0,0 +1,174 @@
################################################################################
#
# amd-catalyst
#
################################################################################
AMD_CATALYST_VERSION = 15.9
AMD_CATALYST_VERBOSE_VER = 15.201.1151
AMD_CATALYST_SITE = http://www2.ati.com/drivers/linux
AMD_CATALYST_DL_OPTS = --referer='http://support.amd.com'
AMD_CATALYST_SOURCE = amd-catalyst-$(AMD_CATALYST_VERSION)-linux-installer-$(AMD_CATALYST_VERBOSE_VER)-x86.x86_64.zip
AMD_CATALYST_LICENSE = AMD Software License
AMD_CATALYST_LICENSE_FILES = LICENSE.TXT
AMD_CATALYST_INSTALL_STAGING = YES
AMD_CATALYST_SUFFIX = $(if $(BR2_x86_64),_64)
AMD_CATALYST_ARCH_DIR = $(@D)/arch/x86$(AMD_CATALYST_SUFFIX)
AMD_CATALYST_LIB_SUFFIX = $(if $(BR2_x86_64),64)
define AMD_CATALYST_EXTRACT_CMDS
unzip -q $(DL_DIR)/$(AMD_CATALYST_SOURCE) -d $(@D)
$(SHELL) $(@D)/AMD-Catalyst-$(AMD_CATALYST_VERSION)-Linux-installer-$(AMD_CATALYST_VERBOSE_VER)-x86.x86_64.run --extract $(@D)
endef
ifeq ($(BR2_PACKAGE_AMD_CATALYST_MODULE),y)
AMD_CATALYST_MODULE_SUBDIRS = common/lib/modules/fglrx/build_mod/2.6.x
AMD_CATALYST_MODULE_MAKE_OPTS = \
CFLAGS_MODULE="-DCOMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space"
define AMD_CATALYST_PREPARE_MODULE
# The Makefile expects to have source in the folder 2.6.x
cp $(@D)/common/lib/modules/fglrx/build_mod/*.{c,h} \
$(@D)/common/lib/modules/fglrx/build_mod/2.6.x
# This static lib is required during the link
cp $(@D)/arch/x86$(AMD_CATALYST_SUFFIX)/lib/modules/fglrx/build_mod/libfglrx_ip.a \
$(@D)/common/lib/modules/fglrx/build_mod/2.6.x
endef
AMD_CATALYST_POST_PATCH_HOOKS += AMD_CATALYST_PREPARE_MODULE
$(eval $(kernel-module))
endif
ifeq ($(BR2_PACKAGE_AMD_CATALYST_OPENCL),y)
AMD_CATALYST_OCL_SUFFIX = $(if $(BR2_x86_64),64,32)
AMD_CATALYST_OPENCL_FILES = \
libOpenCL.so.1 \
libaticalcl.so \
libamdocl$(AMD_CATALYST_OCL_SUFFIX).so \
libamdocl12cl$(AMD_CATALYST_OCL_SUFFIX).so
define AMD_CATALYST_INSTALL_OPENCL
$(foreach f,$(AMD_CATALYST_OPENCL_FILES), \
$(INSTALL) -D -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/lib$(AMD_CATALYST_LIB_SUFFIX)/$(f) $(TARGET_DIR)/usr/lib/$(f)
)
ln -sf libOpenCL.so.1 \
$(TARGET_DIR)/usr/lib/libOpenCL.so
$(INSTALL) -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/bin/clinfo \
$(TARGET_DIR)/usr/bin/clinfo
$(INSTALL) -D -m 0644 $(AMD_CATALYST_ARCH_DIR)/etc/OpenCL/vendors/amdocl$(AMD_CATALYST_OCL_SUFFIX).icd \
$(TARGET_DIR)/etc/OpenCL/vendors/amdocl$(AMD_CATALYST_OCL_SUFFIX).icd
endef
endif
ifeq ($(BR2_PACKAGE_AMD_CATALYST_XORG), y)
# GL headers are needed by any package that wants to use libgl, so they need to
# be installed before any user of it. The only way to do so is to have this
# package depends on mesa3d-headers.
AMD_CATALYST_DEPENDENCIES += mesa3d-headers
AMD_CATALYST_PROVIDES = libgl
AMD_CATALYST_X11R6_LIB = $(@D)/xpic$(if $(BR2_x86_64),_64a)/usr/X11R6/lib$(AMD_CATALYST_LIB_SUFFIX)
define AMD_CATALYST_INSTALL_GL_LIBS
$(INSTALL) -m 0644 $(AMD_CATALYST_ARCH_DIR)/usr/X11R6/lib$(AMD_CATALYST_LIB_SUFFIX)/fglrx/fglrx-libGL.so.1.2 \
$(1)/usr/lib
ln -sf fglrx-libGL.so.1.2 $(1)/usr/lib/libGL.so.1.2
ln -sf fglrx-libGL.so.1.2 $(1)/usr/lib/libGL.so.1
ln -sf fglrx-libGL.so.1.2 $(1)/usr/lib/libGL.so
endef
define AMD_CATALYST_INSTALL_STAGING_XORG
$(call AMD_CATALYST_INSTALL_GL_LIBS,$(STAGING_DIR))
$(INSTALL) -D -m 0644 package/amd-catalyst/gl.pc \
$(STAGING_DIR)/usr/lib/pkgconfig/gl.pc
endef
AMD_CATALYST_XORG_DRIVERS_FILES = modules/amdxmm.so \
modules/drivers/fglrx_drv.so \
modules/linux/libfglrxdrm.so
define AMD_CATALYST_INSTALL_XORG
# Xorg drivers
$(foreach f,$(AMD_CATALYST_XORG_DRIVERS_FILES), \
$(INSTALL) -D -m 0755 $(AMD_CATALYST_X11R6_LIB)/$(f) \
$(TARGET_DIR)/usr/lib/xorg/$(f)
)
# Xorg is not able to detect the driver automatically
$(INSTALL) -D -m 0644 package/amd-catalyst/20-fglrx.conf \
$(TARGET_DIR)/etc/X11/xorg.conf.d/20-fglrx.conf
# Common files: containing binary profiles about GPUs,
# required by the fglrx_drv xorg driver
$(INSTALL) -d $(TARGET_DIR)/etc/ati
$(INSTALL) -m 0644 $(@D)/common/etc/ati/* $(TARGET_DIR)/etc/ati/
# DRI and GLX xorg modules: by default DRI is activated,
# these modules are required by the fglrx_drv.so xorg driver
$(INSTALL) -D -m 0644 $(AMD_CATALYST_ARCH_DIR)/usr/X11R6/lib$(AMD_CATALYST_LIB_SUFFIX)/modules/dri/fglrx_dri.so \
$(TARGET_DIR)/usr/lib/dri/fglrx_dri.so
$(INSTALL) -D -m 0644 $(AMD_CATALYST_X11R6_LIB)/modules/extensions/fglrx/fglrx-libglx.so \
$(TARGET_DIR)/usr/lib/xorg/modules/extensions/libglx.so
$(INSTALL) -D -m 0644 $(AMD_CATALYST_X11R6_LIB)/modules/glesx.so \
$(TARGET_DIR)/usr/lib/xorg/modules/glesx.so
# Userspace GL libraries, also runtime dependency of most of the cmdline
# tools
$(INSTALL) -m 0644 $(AMD_CATALYST_ARCH_DIR)/usr/X11R6/lib$(AMD_CATALYST_LIB_SUFFIX)/*.so \
$(TARGET_DIR)/usr/lib/
$(call AMD_CATALYST_INSTALL_GL_LIBS,$(TARGET_DIR))
# Runtime dependency required by libfglrxdrm.so
$(INSTALL) -m 0644 $(AMD_CATALYST_ARCH_DIR)/usr/lib$(AMD_CATALYST_LIB_SUFFIX)/libatiuki.so.1.0 \
$(TARGET_DIR)/usr/lib/
ln -sf libatiuki.so.1.0 \
$(TARGET_DIR)/usr/lib/libatiuki.so.1
endef
endif
ifeq ($(BR2_PACKAGE_AMD_CATALYST_CMDLINE_TOOLS), y)
AMD_CATALYST_CMDLINE_TOOLS_FILES = \
atiode \
atiodcli \
fgl_glxgears \
aticonfig \
amd-console-helper \
fglrxinfo
define AMD_CATALYST_INSTALL_CMDLINE_TOOLS
$(INSTALL) -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/sbin/atieventsd \
$(TARGET_DIR)/usr/sbin
$(foreach f,$(AMD_CATALYST_CMDLINE_TOOLS_FILES), \
$(INSTALL) -D -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/X11R6/bin/$(f) \
$(TARGET_DIR)/usr/bin/$(f)
)
endef
endif
ifeq ($(BR2_PACKAGE_AMD_CATALYST_CCCLE), y)
define AMD_CATALYST_INSTALL_CCCLE
$(INSTALL) -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/X11R6/bin/amdcccle \
$(TARGET_DIR)/usr/bin/amdcccle
$(INSTALL) -m 0755 $(AMD_CATALYST_ARCH_DIR)/usr/sbin/amdnotifyui \
$(TARGET_DIR)/usr/sbin/amdnotifyui
endef
endif
define AMD_CATALYST_INSTALL_STAGING_CMDS
$(call AMD_CATALYST_INSTALL_STAGING_XORG)
endef
define AMD_CATALYST_INSTALL_TARGET_CMDS
$(call AMD_CATALYST_INSTALL_XORG)
$(call AMD_CATALYST_INSTALL_CMDLINE_TOOLS)
$(call AMD_CATALYST_INSTALL_CCCLE)
$(call AMD_CATALYST_INSTALL_OPENCL)
endef
$(eval $(generic-package))

View File

@ -0,0 +1,12 @@
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: gl
Description: AMD Catalyst OpenGL library
Version: 15.9
Libs: -L${libdir} -lGL -lm -lXext -lX11 -ldl
Cflags: -I${includedir}
glx_tls: no

View File

@ -1,9 +1,6 @@
[PATCH] Fix build issue with musl [PATCH] Fix build issue with musl
cdefs.h header doesn't exist in musl toolchains: arpa/nameser.h doesn't use the same macro name to avoid several
http://wiki.musl-libc.org/wiki/FAQ
Also arpa/nameser.h doesn't use the same macro name to avoid several
inclusions. inclusions.
Finally had an issue with framebuffer_service.c since it was missing the Finally had an issue with framebuffer_service.c since it was missing the
@ -26,7 +23,7 @@ diff --git a/core/adbd/arpa_nameser.h b/core/adbd/arpa_nameser.h
index 438dc04..b2a28d6 100644 index 438dc04..b2a28d6 100644
--- a/core/adbd/arpa_nameser.h --- a/core/adbd/arpa_nameser.h
+++ b/core/adbd/arpa_nameser.h +++ b/core/adbd/arpa_nameser.h
@@ -52,11 +52,12 @@ @@ -52,6 +52,8 @@
#ifndef _ARPA_NAMESER_H_ #ifndef _ARPA_NAMESER_H_
#define _ARPA_NAMESER_H_ #define _ARPA_NAMESER_H_
@ -35,51 +32,12 @@ index 438dc04..b2a28d6 100644
#define BIND_4_COMPAT #define BIND_4_COMPAT
#include <sys/types.h>
-#include <sys/cdefs.h>
/*
* Revision information. This is the release date in YYYYMMDD format.
@@ -505,7 +506,9 @@ typedef enum __ns_cert_types {
#define ns_makecanon __ns_makecanon
#define ns_samename __ns_samename
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
int ns_msg_getflag(ns_msg, int);
uint16_t ns_get16(const u_char *);
uint32_t ns_get32(const u_char *);
@@ -560,7 +563,9 @@ int ns_samedomain(const char *, const char *);
int ns_subdomain(const char *, const char *);
int ns_makecanon(const char *, char *, size_t);
int ns_samename(const char *, const char *);
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
#ifdef BIND_4_COMPAT
#include "arpa_nameser_compat.h"
@@ -574,4 +579,5 @@ __END_DECLS @@ -574,4 +579,5 @@ __END_DECLS
#define XLOG(...) do {} while (0) #define XLOG(...) do {} while (0)
#endif #endif
+#endif /* !_ARPA_NAMESER_H */ +#endif /* !_ARPA_NAMESER_H */
#endif /* !_ARPA_NAMESER_H_ */ #endif /* !_ARPA_NAMESER_H_ */
diff --git a/core/adbd/base64.c b/core/adbd/base64.c
index 7270703..73725f5 100644
--- a/core/adbd/base64.c
+++ b/core/adbd/base64.c
@@ -42,7 +42,6 @@
* IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
-#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
__RCSID("$NetBSD: base64.c,v 1.8 2002/11/11 01:15:17 thorpej Exp $");
#endif /* LIBC_SCCS and not lint */
diff --git a/core/adbd/framebuffer_service.c b/core/adbd/framebuffer_service.c diff --git a/core/adbd/framebuffer_service.c b/core/adbd/framebuffer_service.c
index 20c08d2..48e0241 100644 index 20c08d2..48e0241 100644
--- a/core/adbd/framebuffer_service.c --- a/core/adbd/framebuffer_service.c
@ -92,140 +50,5 @@ index 20c08d2..48e0241 100644
#include <linux/fb.h> #include <linux/fb.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <sys/mman.h> #include <sys/mman.h>
diff --git a/core/adbd/qemu_pipe.h b/core/adbd/qemu_pipe.h
index 1a67022..572a242 100644
--- a/core/adbd/qemu_pipe.h
+++ b/core/adbd/qemu_pipe.h
@@ -16,7 +16,6 @@
#ifndef ANDROID_INCLUDE_HARDWARE_QEMU_PIPE_H
#define ANDROID_INCLUDE_HARDWARE_QEMU_PIPE_H
-#include <sys/cdefs.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>
diff --git a/core/include/cutils/android_reboot.h b/core/include/cutils/android_reboot.h
index 0c79be7..2ebe1cf 100644
--- a/core/include/cutils/android_reboot.h
+++ b/core/include/cutils/android_reboot.h
@@ -17,7 +17,9 @@
#ifndef __CUTILS_ANDROID_REBOOT_H__
#define __CUTILS_ANDROID_REBOOT_H__
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
/* Commands */
#define ANDROID_RB_RESTART 0xDEAD0001
@@ -30,6 +32,8 @@ __BEGIN_DECLS
int android_reboot(int cmd, int flags, char *arg);
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
#endif /* __CUTILS_ANDROID_REBOOT_H__ */
diff --git a/core/include/cutils/bitops.h b/core/include/cutils/bitops.h
index 1b3b762..a7c8cab 100644
--- a/core/include/cutils/bitops.h
+++ b/core/include/cutils/bitops.h
@@ -17,9 +17,9 @@
#ifndef __CUTILS_BITOPS_H
#define __CUTILS_BITOPS_H
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
static inline int popcount(unsigned int x)
{
@@ -36,6 +36,8 @@ static inline int popcountll(unsigned long long x)
return __builtin_popcountll(x);
}
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
#endif /* __CUTILS_BITOPS_H */
diff --git a/core/include/cutils/partition_utils.h b/core/include/cutils/partition_utils.h
index 597df92..0da9d5b 100644
--- a/core/include/cutils/partition_utils.h
+++ b/core/include/cutils/partition_utils.h
@@ -17,11 +17,15 @@
#ifndef __CUTILS_PARTITION_WIPED_H__
#define __CUTILS_PARTITION_WIPED_H__
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
int partition_wiped(char *source);
void erase_footer(const char *dev_path, long long size);
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
#endif /* __CUTILS_PARTITION_WIPED_H__ */
diff --git a/extras/ext4_utils/sha1.c b/extras/ext4_utils/sha1.c
index 463ec38..e2e29cf 100644
--- a/extras/ext4_utils/sha1.c
+++ b/extras/ext4_utils/sha1.c
@@ -17,9 +17,6 @@
#define SHA1HANDSOFF /* Copies data before messing with it. */
-#ifndef USE_MINGW
-#include <sys/cdefs.h>
-#endif
#include <sys/types.h>
#include <assert.h>
#include <string.h>
diff --git a/extras/ext4_utils/sha1.h b/extras/ext4_utils/sha1.h
index 9a8f7e3..fe3217e 100644
--- a/extras/ext4_utils/sha1.h
+++ b/extras/ext4_utils/sha1.h
@@ -17,11 +17,6 @@ typedef unsigned char u_char;
typedef unsigned int uint32_t;
typedef unsigned int u_int32_t;
typedef unsigned int u_int;
-
-#define __BEGIN_DECLS
-#define __END_DECLS
-#else
-#include <sys/cdefs.h>
#endif
#define SHA1_DIGEST_LENGTH 20
@@ -33,11 +28,15 @@ typedef struct {
u_char buffer[64];
} SHA1_CTX;
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
void SHA1Transform(uint32_t[5], const u_char[64]);
void SHA1Init(SHA1_CTX *);
void SHA1Update(SHA1_CTX *, const u_char *, u_int);
void SHA1Final(u_char[SHA1_DIGEST_LENGTH], SHA1_CTX *);
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
#endif /* _SYS_SHA1_H_ */
-- --
2.6.1 2.6.1

View File

@ -0,0 +1,61 @@
Fix build on big endian systems
The usb_linux_client.c file defines cpu_to_le16/32 by using the C
library htole16/32 function calls. However, cpu_to_le16/32 are used
when initializing structures, i.e in a context where a function call
is not allowed.
It works fine on little endian systems because htole16/32 are defined
by the C library as no-ops. But on big-endian systems, they are
actually doing something, which might involve calling a function,
causing build failures.
To solve this, we simply open-code cpu_to_le16/32 in a way that allows
them to be used when initializing structures.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/core/adb/usb_linux_client.c
===================================================================
--- a/core/adb/usb_linux_client.c
+++ b/core/adb/usb_linux_client.c
@@ -34,8 +34,15 @@
#define MAX_PACKET_SIZE_FS 64
#define MAX_PACKET_SIZE_HS 512
-#define cpu_to_le16(x) htole16(x)
-#define cpu_to_le32(x) htole32(x)
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define cpu_to_le16(x) (x)
+# define cpu_to_le32(x) (x)
+#else
+# define cpu_to_le16(x) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
+# define cpu_to_le32(x) \
+ ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \
+ (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
+#endif
struct usb_handle
{
Index: b/core/adbd/usb_linux_client.c
===================================================================
--- a/core/adbd/usb_linux_client.c
+++ b/core/adbd/usb_linux_client.c
@@ -34,8 +34,15 @@
#define MAX_PACKET_SIZE_FS 64
#define MAX_PACKET_SIZE_HS 512
-#define cpu_to_le16(x) htole16(x)
-#define cpu_to_le32(x) htole32(x)
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define cpu_to_le16(x) (x)
+# define cpu_to_le32(x) (x)
+#else
+# define cpu_to_le16(x) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
+# define cpu_to_le32(x) \
+ ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \
+ (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
+#endif
struct usb_handle
{

View File

@ -0,0 +1,41 @@
Include cdefs.h wherever it is needed
cdefs.h is included from within a lot of glibc headers, so it almost
invariably and automagically gets pulled in with glibc.
However, this might not be the case with other C libraries. musl does
not provide cdefs.h so it does not include it from its own headers
(cdefs.h must be provided separately).
So we must include it when we are going to use macros it provides.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
core/adbd/services.c | 1 +
core/libcutils/android_reboot.c | 1 +
2 files changed, 2 insertions(+), 0 deletion(-)
diff --git a/core/adbd/services.c b/core/adbd/services.c
index 20c08d2..48e0241 100644
--- a/core/adbd/services.c
+++ b/core/adbd/services.c
@@ -20,6 +20,7 @@
#include <string.h>
#include <errno.h>
#include <pwd.h>
+#include <sys/cdefs.h>
#include "sysdeps.h"
diff --git a/core/libcutils/android_reboot.c b/core/libcutils/android_reboot.c
index 20c08d2..48e0241 100644
--- a/core/libcutils/android_reboot.c
+++ b/core/libcutils/android_reboot.c
@@ -23,6 +23,7 @@
#include <string.h>
#include <linux/reboot.h>
#include <sys/syscall.h>
+#include <sys/cdefs.h>
#include <cutils/android_reboot.h>

View File

@ -17,21 +17,43 @@ config BR2_PACKAGE_ANDROID_TOOLS
if BR2_PACKAGE_ANDROID_TOOLS if BR2_PACKAGE_ANDROID_TOOLS
# We need kernel headers that support the __SANE_USERSPACE_TYPES__
# mechanism for 64 bits architectures, so that u64 gets defined as
# "unsigned long long" and not "unsigned long". We know that >= 3.16
# is needed for MIPS64 (kernel commit
# f4b3aa7cd9d32407670e67238c5ee752bb98f481) and >= 3.10 is needed for
# PowerPC64 (kernel commit
# 2c9c6ce0199a4d252e20c531cfdc9d24e39235c0). Without this, the build
# fails with a bad redefinition of u64 (the android-tools fastboot
# code defines it as "unsigned long long").
config BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT_GOOD_KERNEL_HEADERS
bool
default y if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 && (BR2_powerpc64 || BR2_powerpc64le)
default y if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 && (BR2_mips64 || BR2_mips64el)
default y if !BR2_powerpc64 && !BR2_powerpc64le && !BR2_mips64 && !BR2_mips64el
config BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT config BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT
bool "fastboot" bool "fastboot"
select BR2_PACKAGE_LIBSELINUX select BR2_PACKAGE_LIBSELINUX
select BR2_PACKAGE_ZLIB select BR2_PACKAGE_ZLIB
depends on BR2_TOOLCHAIN_HAS_THREADS # libselinux depends on BR2_TOOLCHAIN_HAS_THREADS # libselinux
depends on !BR2_STATIC_LIBS # libselinux depends on !BR2_STATIC_LIBS # libselinux
depends on BR2_TOOLCHAIN_USES_GLIBC # libselinux
depends on !BR2_arc # libselinux depends on !BR2_arc # libselinux
depends on BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT_GOOD_KERNEL_HEADERS
help help
This option will build and install the fastboot utility for This option will build and install the fastboot utility for
the target, which can be used to reflash other target devices the target, which can be used to reflash other target devices
implementing the fastboot protocol. implementing the fastboot protocol.
comment "fastboot needs a toolchain w/ threads, dynamic library" comment "fastboot needs a glibc toolchain w/ threads, dynamic library"
depends on !BR2_arc depends on !BR2_arc
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
!BR2_TOOLCHAIN_USES_GLIBC
comment "fastboot needs headers >= 3.10 (PowerPC64), headers >= 3.16 (MIPS64)"
depends on !BR2_arc
depends on !BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT_GOOD_KERNEL_HEADERS
config BR2_PACKAGE_ANDROID_TOOLS_ADB config BR2_PACKAGE_ANDROID_TOOLS_ADB
bool "adb" bool "adb"

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