mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-23 11:16:37 +00:00
Merge in buildroot-2018.02.7
This commit is contained in:
parent
bbe1d4f571
commit
c388a80638
197
Config.in
197
Config.in
@ -62,6 +62,14 @@ config BR2_HOST_GCC_AT_LEAST_7
|
||||
default y if BR2_HOST_GCC_VERSION = "7"
|
||||
select BR2_HOST_GCC_AT_LEAST_6
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_8
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "8"
|
||||
select BR2_HOST_GCC_AT_LEAST_7
|
||||
|
||||
# When adding new entries above, be sure to update
|
||||
# the HOSTCC_MAX_VERSION variable in the Makefile.
|
||||
|
||||
# Hidden boolean selected by packages in need of Java in order to build
|
||||
# (example: kodi)
|
||||
config BR2_NEEDS_HOST_JAVA
|
||||
@ -332,6 +340,9 @@ config BR2_CCACHE_DIR
|
||||
default "$(HOME)/.buildroot-ccache"
|
||||
help
|
||||
Where ccache should store cached files.
|
||||
If the Linux shell environment has defined the BR2_CCACHE_DIR
|
||||
environment variable, then this overrides this configuration
|
||||
item.
|
||||
|
||||
config BR2_CCACHE_INITIAL_SETUP
|
||||
string "Compiler cache initial setup"
|
||||
@ -458,7 +469,7 @@ choice
|
||||
config BR2_OPTIMIZE_0
|
||||
bool "optimization level 0"
|
||||
help
|
||||
Do not optimize. This is the default.
|
||||
Do not optimize.
|
||||
|
||||
config BR2_OPTIMIZE_1
|
||||
bool "optimization level 1"
|
||||
@ -525,6 +536,7 @@ config BR2_OPTIMIZE_S
|
||||
-falign-loops -falign-labels -freorder-blocks
|
||||
-freorder-blocks-and-partition -fprefetch-loop-arrays
|
||||
-ftree-vect-loop-version
|
||||
This is the default.
|
||||
|
||||
endchoice
|
||||
|
||||
@ -538,6 +550,7 @@ config BR2_GOOGLE_BREAKPAD_ENABLE
|
||||
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_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
|
||||
help
|
||||
This option will enable the use of google breakpad, a library
|
||||
and tool suite that allows you to distribute an application to
|
||||
@ -565,61 +578,6 @@ config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
|
||||
|
||||
endif
|
||||
|
||||
choice
|
||||
bool "build code with Stack Smashing Protection"
|
||||
default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
|
||||
depends on BR2_TOOLCHAIN_HAS_SSP
|
||||
help
|
||||
Enable stack smashing protection support using GCC's
|
||||
-fstack-protector option family.
|
||||
|
||||
See
|
||||
http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
|
||||
for details.
|
||||
|
||||
Note that this requires the toolchain to have SSP support.
|
||||
This is always the case for glibc and eglibc toolchain, but is
|
||||
optional in uClibc toolchains.
|
||||
|
||||
config BR2_SSP_NONE
|
||||
bool "None"
|
||||
help
|
||||
Disable stack-smashing protection.
|
||||
|
||||
config BR2_SSP_REGULAR
|
||||
bool "-fstack-protector"
|
||||
help
|
||||
Emit extra code to check for buffer overflows, such as stack
|
||||
smashing attacks. This is done by adding a guard variable to
|
||||
functions with vulnerable objects. This includes functions
|
||||
that call alloca, and functions with buffers larger than 8
|
||||
bytes. The guards are initialized when a function is entered
|
||||
and then checked when the function exits. If a guard check
|
||||
fails, an error message is printed and the program exits.
|
||||
|
||||
config BR2_SSP_STRONG
|
||||
bool "-fstack-protector-strong"
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
help
|
||||
Like -fstack-protector but includes additional functions to be
|
||||
protected - those that have local array definitions, or have
|
||||
references to local frame addresses.
|
||||
|
||||
comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
|
||||
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
|
||||
config BR2_SSP_ALL
|
||||
bool "-fstack-protector-all"
|
||||
help
|
||||
Like -fstack-protector except that all functions are
|
||||
protected. This option might have a significant performance
|
||||
impact on the compiled binaries.
|
||||
|
||||
endchoice
|
||||
|
||||
comment "Stack Smashing Protection needs a toolchain w/ SSP"
|
||||
depends on !BR2_TOOLCHAIN_HAS_SSP
|
||||
|
||||
choice
|
||||
bool "libraries"
|
||||
default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
|
||||
@ -730,6 +688,133 @@ config BR2_REPRODUCIBLE
|
||||
|
||||
endmenu
|
||||
|
||||
comment "Security Hardening Options"
|
||||
|
||||
choice
|
||||
bool "Stack Smashing Protection"
|
||||
default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
|
||||
depends on BR2_TOOLCHAIN_HAS_SSP
|
||||
help
|
||||
Enable stack smashing protection support using GCC's
|
||||
-fstack-protector option family.
|
||||
|
||||
See
|
||||
http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
|
||||
for details.
|
||||
|
||||
Note that this requires the toolchain to have SSP support.
|
||||
This is always the case for glibc and eglibc toolchain, but is
|
||||
optional in uClibc toolchains.
|
||||
|
||||
config BR2_SSP_NONE
|
||||
bool "None"
|
||||
help
|
||||
Disable stack-smashing protection.
|
||||
|
||||
config BR2_SSP_REGULAR
|
||||
bool "-fstack-protector"
|
||||
help
|
||||
Emit extra code to check for buffer overflows, such as stack
|
||||
smashing attacks. This is done by adding a guard variable to
|
||||
functions with vulnerable objects. This includes functions
|
||||
that call alloca, and functions with buffers larger than 8
|
||||
bytes. The guards are initialized when a function is entered
|
||||
and then checked when the function exits. If a guard check
|
||||
fails, an error message is printed and the program exits.
|
||||
|
||||
config BR2_SSP_STRONG
|
||||
bool "-fstack-protector-strong"
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
help
|
||||
Like -fstack-protector but includes additional functions to be
|
||||
protected - those that have local array definitions, or have
|
||||
references to local frame addresses.
|
||||
|
||||
comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
|
||||
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
|
||||
config BR2_SSP_ALL
|
||||
bool "-fstack-protector-all"
|
||||
help
|
||||
Like -fstack-protector except that all functions are
|
||||
protected. This option might have a significant performance
|
||||
impact on the compiled binaries.
|
||||
|
||||
endchoice
|
||||
|
||||
comment "Stack Smashing Protection needs a toolchain w/ SSP"
|
||||
depends on !BR2_TOOLCHAIN_HAS_SSP
|
||||
|
||||
choice
|
||||
bool "RELRO Protection"
|
||||
depends on BR2_SHARED_LIBS
|
||||
help
|
||||
Enable a link-time protection know as RELRO (RELocation Read Only)
|
||||
which helps to protect from certain type of exploitation techniques
|
||||
altering the content of some ELF sections.
|
||||
|
||||
config BR2_RELRO_NONE
|
||||
bool "None"
|
||||
help
|
||||
Disables Relocation link-time protections.
|
||||
|
||||
config BR2_RELRO_PARTIAL
|
||||
bool "Partial"
|
||||
help
|
||||
This option makes the dynamic section not writeable after
|
||||
initialization (with almost no performance penalty).
|
||||
|
||||
config BR2_RELRO_FULL
|
||||
bool "Full"
|
||||
help
|
||||
This option includes the partial configuration, but also
|
||||
marks the GOT as read-only at the cost of initialization time
|
||||
during program loading, i.e every time an executable is started.
|
||||
|
||||
endchoice
|
||||
|
||||
comment "RELocation Read Only (RELRO) needs shared libraries"
|
||||
depends on !BR2_SHARED_LIBS
|
||||
|
||||
choice
|
||||
bool "Buffer-overflow Detection (FORTIFY_SOURCE)"
|
||||
depends on BR2_TOOLCHAIN_USES_GLIBC
|
||||
depends on !BR2_OPTIMIZE_0
|
||||
help
|
||||
Enable the _FORTIFY_SOURCE macro which introduces additional
|
||||
checks to detect buffer-overflows in the following standard library
|
||||
functions: memcpy, mempcpy, memmove, memset, strcpy, stpcpy,
|
||||
strncpy, strcat, strncat, sprintf, vsprintf, snprintf, vsnprintf,
|
||||
gets.
|
||||
|
||||
NOTE: This feature requires an optimization level of s/1/2/3/g
|
||||
|
||||
Support for this feature has been present since GCC 4.x.
|
||||
|
||||
config BR2_FORTIFY_SOURCE_NONE
|
||||
bool "None"
|
||||
help
|
||||
Disables additional checks to detect buffer-overflows.
|
||||
|
||||
config BR2_FORTIFY_SOURCE_1
|
||||
bool "Conservative"
|
||||
help
|
||||
This option sets _FORTIFY_SOURCE to 1 and only introduces
|
||||
checks that shouldn't change the behavior of conforming
|
||||
programs. Adds checks at compile-time only.
|
||||
|
||||
config BR2_FORTIFY_SOURCE_2
|
||||
bool "Aggressive"
|
||||
help
|
||||
This option sets _FORTIFY_SOURCES to 2 and some more
|
||||
checking is added, but some conforming programs might fail.
|
||||
Also adds checks at run-time (detected buffer overflow
|
||||
terminates the program)
|
||||
|
||||
endchoice
|
||||
|
||||
comment "Fortify Source needs a glibc toolchain and optimization"
|
||||
depends on (!BR2_TOOLCHAIN_USES_GLIBC || BR2_OPTIMIZE_0)
|
||||
endmenu
|
||||
|
||||
source "toolchain/Config.in"
|
||||
|
236
Config.in.legacy
236
Config.in.legacy
@ -135,13 +135,95 @@ comment "legacy options in the menu below. Once you have "
|
||||
comment "disabled all legacy options, this text will "
|
||||
comment "disappear and you will be able to start the build. "
|
||||
comment "* "
|
||||
comment "Note: at some point in the future, the oldest legacy"
|
||||
comment "options will be removed, and configuration files "
|
||||
comment "that still have those options set, will fail to "
|
||||
comment "build, or run, in unpredictable ways. "
|
||||
comment "Note: legacy options older than 5 years have been "
|
||||
comment "removed, and configuration files that still have "
|
||||
comment "those options set, will fail to build, or run in "
|
||||
comment "unpredictable ways. "
|
||||
comment "----------------------------------------------------"
|
||||
endif
|
||||
|
||||
###############################################################################
|
||||
comment "Legacy options removed in 2018.02"
|
||||
|
||||
config BR2_PACKAGE_TRANSMISSION_REMOTE
|
||||
bool "transmission remote tool option removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_TRANSMISSION_DAEMON
|
||||
help
|
||||
Upstream does not provide a separate configure option for
|
||||
the tool transmission-remote, it is built when the
|
||||
transmission daemon has been enabled. Therefore, Buildroot
|
||||
has automatically enabled BR2_PACKAGE_TRANSMISSION_DAEMON
|
||||
for you.
|
||||
|
||||
config BR2_KERNEL_HEADERS_3_4
|
||||
bool "kernel headers version 3.4.x are no longer supported"
|
||||
select BR2_KERNEL_HEADERS_4_1
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Version 3.4.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_3_10
|
||||
bool "kernel headers version 3.10.x are no longer supported"
|
||||
select BR2_KERNEL_HEADERS_4_1
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Version 3.10.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_3_12
|
||||
bool "kernel headers version 3.12.x are no longer supported"
|
||||
select BR2_KERNEL_HEADERS_4_1
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Version 3.12.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_BINUTILS_VERSION_2_27_X
|
||||
bool "binutils version 2.27 support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for binutils version 2.27 has been removed. The
|
||||
current default version (2.29 or later) has been selected
|
||||
instead.
|
||||
|
||||
config BR2_PACKAGE_EEPROG
|
||||
bool "eeprog package removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_I2C_TOOLS
|
||||
select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
|
||||
help
|
||||
The eeprog program is now provided by the i2c-tools package.
|
||||
|
||||
config BR2_PACKAGE_GNUPG2_GPGV2
|
||||
bool "gnupg2 gpgv2 option removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_GNUPG2_GPGV
|
||||
help
|
||||
The gpgv2 executable is now named gpgv. The config option
|
||||
has been renamed accordingly.
|
||||
|
||||
config BR2_PACKAGE_IMX_GPU_VIV_APITRACE
|
||||
bool "Vivante apitrace tool option removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The apitrace tool for Vivante is not provided by the
|
||||
imx-gpu-viv package any longer.
|
||||
|
||||
config BR2_PACKAGE_IMX_GPU_VIV_G2D
|
||||
bool "Vivante G2D libraries from imx-gpu-viv removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_IMX_GPU_G2D
|
||||
help
|
||||
The G2D libraries are now provided by the imx-gpu-g2d package.
|
||||
|
||||
###############################################################################
|
||||
comment "Legacy options removed in 2017.11"
|
||||
|
||||
@ -1143,13 +1225,6 @@ config BR2_x86_i386
|
||||
The support for the i386 processors of the x86 architecture
|
||||
has been removed.
|
||||
|
||||
config BR2_PACKAGE_QT5WEBKIT_EXAMPLES
|
||||
bool "qt5webkit-examples package removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The qt5webkit-examples package has been removed, since it
|
||||
was removed from upstream starting from Qt 5.6.
|
||||
|
||||
config BR2_PACKAGE_QT5QUICK1
|
||||
bool "qt5quick1 package removed"
|
||||
select BR2_LEGACY
|
||||
@ -1319,6 +1394,7 @@ config BR2_LINUX_KERNEL_SAME_AS_HEADERS
|
||||
|
||||
config BR2_PACKAGE_CUPS_PDFTOPS
|
||||
bool "Pdftops support has been removed from Cups"
|
||||
select BR2_PACKAGE_CUPS_FILTERS
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Pdftops support has been removed from the cups package
|
||||
@ -3059,144 +3135,6 @@ config BR2_PACKAGE_LINUX_FIRMWARE_RTL_8712
|
||||
help
|
||||
Now covers the whole Realtek 87xx familly: 8712/8723.
|
||||
|
||||
###############################################################################
|
||||
comment "Legacy options removed in 2013.02"
|
||||
|
||||
config BR2_sa110
|
||||
bool "sa110 ARM target switched to strongarm"
|
||||
select BR2_LEGACY
|
||||
select BR2_strongarm
|
||||
help
|
||||
The SA110 is the same as a generic StrongARM, it just differs
|
||||
in speed, peripherals and cache.
|
||||
|
||||
config BR2_sa1100
|
||||
bool "sa1100 ARM target switched to strongarm"
|
||||
select BR2_LEGACY
|
||||
select BR2_strongarm
|
||||
help
|
||||
The SA1100 is the same as a generic StrongARM, it just differs
|
||||
in speed, peripherals and cache.
|
||||
|
||||
config BR2_PACKAGE_GDISK
|
||||
bool "gdisk has been replaced by gptfdisk"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_GPTFDISK
|
||||
help
|
||||
The option has been renamed BR2_PACKAGE_GPTFDISK.
|
||||
|
||||
config BR2_PACKAGE_GDISK_GDISK
|
||||
bool "gdisk tool from gdisk has been replaced by gdisk in gptfdisk"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_GPTFDISK
|
||||
select BR2_PACKAGE_GPTFDISK_GDISK
|
||||
help
|
||||
The option has been renamed BR2_PACKAGE_GPTFDISK_GDISK.
|
||||
|
||||
config BR2_PACKAGE_GDISK_SGDISK
|
||||
bool "sgdisk tool from gdisk has been replaced by sgdisk in gptfdisk"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_GPTFDISK
|
||||
select BR2_PACKAGE_GPTFDISK_SGDISK
|
||||
help
|
||||
The option has been renamed BR2_PACKAGE_GPTFDISK_SGDISK.
|
||||
|
||||
config BR2_PACKAGE_GDB_HOST
|
||||
bool "gdb for the host option has been renamed"
|
||||
select BR2_PACKAGE_HOST_GDB
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Due to the conversion of gdb to the package infrastructure,
|
||||
the BR2_PACKAGE_GDB_HOST option has been renamed
|
||||
BR2_PACKAGE_HOST_GDB.
|
||||
|
||||
config BR2_PACKAGE_DIRECTB_DITHER_RGB16
|
||||
bool "DirectFB RGB16 dithering option has been renamed"
|
||||
select BR2_PACKAGE_DIRECTFB_DITHER_RGB16
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The option has been renamed
|
||||
BR2_PACKAGE_DIRECTFB_DITHER_RGB16.
|
||||
|
||||
config BR2_PACKAGE_DIRECTB_TESTS
|
||||
bool "DirectFB Tests option has been renamed"
|
||||
select BR2_PACKAGE_DIRECTFB_TESTS
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The option has been renamed
|
||||
BR2_PACKAGE_DIRECTFB_TESTS.
|
||||
|
||||
###############################################################################
|
||||
comment "Legacy options removed in 2012.11"
|
||||
|
||||
config BR2_PACKAGE_CUSTOMIZE
|
||||
bool "customize package has been removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The 'customize' special package has been removed. Instead,
|
||||
we recommend to create either your own packages, or use a
|
||||
post-build script to customize your root filesystem. See
|
||||
Buildroot's documentation for more details.
|
||||
|
||||
config BR2_PACKAGE_XSERVER_xorg
|
||||
bool "X.org modular server"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
|
||||
help
|
||||
The option has been renamed
|
||||
BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR.
|
||||
|
||||
config BR2_PACKAGE_XSERVER_tinyx
|
||||
bool "KDrive / TinyX server"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE
|
||||
help
|
||||
The option has been renamed
|
||||
BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE.
|
||||
|
||||
config BR2_PACKAGE_PTHREAD_STUBS
|
||||
bool "pthread-stubs option has been renamed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_LIBPTHREAD_STUBS
|
||||
help
|
||||
For consistency reason, the pthread-stubs package has been
|
||||
renamed to libpthread-stubs.
|
||||
|
||||
###############################################################################
|
||||
comment "Legacy options removed in 2012.08"
|
||||
|
||||
config BR2_PACKAGE_GETTEXT_STATIC
|
||||
bool "libgettext.a is now selected by BR2_PREFER_STATIC_LIB"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
To build a static gettext library, select BR2_PREFER_STATIC_LIB.
|
||||
|
||||
|
||||
config BR2_PACKAGE_LIBINTL
|
||||
bool "libintl"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_GETTEXT
|
||||
help
|
||||
libintl is now installed by selecting BR2_PACKAGE_GETTEXT. This now
|
||||
only installs the library, not the executables.
|
||||
|
||||
config BR2_PACKAGE_INPUT_TOOLS_EVTEST
|
||||
bool "input-tools evtest is now a separate package evtest"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_EVTEST
|
||||
help
|
||||
The evtest program from input-tools is now a separate package.
|
||||
|
||||
config BR2_BFIN_FDPIC
|
||||
bool "BR2_BFIN_FDPIC is now BR2_BINFMT_FDPIC"
|
||||
select BR2_BINFMT_FDPIC
|
||||
select BR2_LEGACY
|
||||
|
||||
config BR2_BFIN_FLAT
|
||||
bool "BR2_BFIN_FLAT is now BR2_BINFMT_FLAT"
|
||||
select BR2_BINFMT_FLAT
|
||||
select BR2_LEGACY
|
||||
|
||||
endmenu
|
||||
|
||||
endif # !SKIP_LEGACY
|
||||
|
62
Makefile
62
Makefile
@ -2,7 +2,7 @@
|
||||
#
|
||||
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 2006-2014 by the Buildroot developers <buildroot@uclibc.org>
|
||||
# Copyright (C) 2014-2017 by the Buildroot developers <buildroot@buildroot.org>
|
||||
# Copyright (C) 2014-2018 by the Buildroot developers <buildroot@buildroot.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -60,6 +60,11 @@ override O := $(patsubst %/,%,$(patsubst %.,%,$(O)))
|
||||
# avoid empty CANONICAL_O in case on non-existing entry.
|
||||
CANONICAL_O := $(shell mkdir -p $(O) >/dev/null 2>&1)$(realpath $(O))
|
||||
|
||||
# gcc fails to build when the srcdir contains a '@'
|
||||
ifneq ($(findstring @,$(CANONICAL_O)),)
|
||||
$(error The build directory can not contain a '@')
|
||||
endif
|
||||
|
||||
CANONICAL_CURDIR = $(realpath $(CURDIR))
|
||||
|
||||
REQ_UMASK = 0022
|
||||
@ -87,9 +92,9 @@ all:
|
||||
.PHONY: all
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2017.11
|
||||
export BR2_VERSION := 2018.02.7
|
||||
# Actual time the release is cut (for reproducible builds)
|
||||
BR2_VERSION_EPOCH = 1512070000
|
||||
BR2_VERSION_EPOCH = 1540493000
|
||||
|
||||
# Save running make version since it's clobbered by the make package
|
||||
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
|
||||
@ -141,7 +146,7 @@ noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconf
|
||||
# We're building in two situations: when MAKECMDGOALS is empty
|
||||
# (default target is to build), or when MAKECMDGOALS contains
|
||||
# something else than one of the nobuild_targets.
|
||||
nobuild_targets := source %-source source-check \
|
||||
nobuild_targets := source %-source \
|
||||
legal-info %-legal-info external-deps _external-deps \
|
||||
clean distclean help show-targets graph-depends \
|
||||
%-graph-depends %-show-depends %-show-version \
|
||||
@ -355,14 +360,36 @@ export HOSTARCH := $(shell LC_ALL=C $(HOSTCC_NOCCACHE) -v 2>&1 | \
|
||||
-e 's/macppc/powerpc/' \
|
||||
-e 's/sh.*/sh/' )
|
||||
|
||||
HOSTCC_VERSION := $(shell $(HOSTCC_NOCCACHE) --version | \
|
||||
sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p')
|
||||
# When adding a new host gcc version in Config.in,
|
||||
# update the HOSTCC_MAX_VERSION variable:
|
||||
HOSTCC_MAX_VERSION := 8
|
||||
|
||||
HOSTCC_VERSION := $(shell V=$$($(HOSTCC_NOCCACHE) --version | \
|
||||
sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p'); \
|
||||
[ "$${V%% *}" -le $(HOSTCC_MAX_VERSION) ] || V=$(HOSTCC_MAX_VERSION); \
|
||||
printf "%s" "$${V}")
|
||||
|
||||
# For gcc >= 5.x, we only need the major version.
|
||||
ifneq ($(firstword $(HOSTCC_VERSION)),4)
|
||||
HOSTCC_VERSION := $(firstword $(HOSTCC_VERSION))
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_NEEDS_HOST_UTF8_LOCALE),y)
|
||||
# First, we try to use the user's configured locale (as that's the
|
||||
# language they'd expect messages to be displayed), then we favour
|
||||
# a non language-specific locale like C.UTF-8 if one is available,
|
||||
# so we sort with the C locale to get it at the top.
|
||||
# This is guaranteed to not be empty, because of the check in
|
||||
# support/dependencies/dependencies.sh
|
||||
HOST_UTF8_LOCALE := $(shell \
|
||||
( echo $${LC_ALL:-$${LC_MESSAGES:-$${LANG}}}; \
|
||||
locale -a 2>/dev/null | LC_ALL=C sort \
|
||||
) \
|
||||
| grep -i -E 'utf-?8$$' \
|
||||
| head -n 1)
|
||||
HOST_UTF8_LOCALE_ENV := LC_ALL=$(HOST_UTF8_LOCALE)
|
||||
endif
|
||||
|
||||
# Make sure pkg-config doesn't look outside the buildroot tree
|
||||
HOST_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH)
|
||||
unexport PKG_CONFIG_PATH
|
||||
@ -679,6 +706,10 @@ $(TARGETS_ROOTFS): target-finalize
|
||||
.PHONY: target-finalize
|
||||
target-finalize: $(PACKAGES)
|
||||
@$(call MESSAGE,"Finalizing target directory")
|
||||
# Check files that are touched by more than one package
|
||||
./support/scripts/check-uniq-files -t target $(BUILD_DIR)/packages-file-list.txt
|
||||
./support/scripts/check-uniq-files -t staging $(BUILD_DIR)/packages-file-list-staging.txt
|
||||
./support/scripts/check-uniq-files -t host $(BUILD_DIR)/packages-file-list-host.txt
|
||||
$(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep))
|
||||
rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \
|
||||
$(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
|
||||
@ -725,7 +756,8 @@ endif
|
||||
echo "ID=buildroot"; \
|
||||
echo "VERSION_ID=$(BR2_VERSION)"; \
|
||||
echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \
|
||||
) > $(TARGET_DIR)/etc/os-release
|
||||
) > $(TARGET_DIR)/usr/lib/os-release
|
||||
ln -sf ../usr/lib/os-release $(TARGET_DIR)/etc
|
||||
|
||||
@$(call MESSAGE,"Sanitizing RPATH in target tree")
|
||||
$(TOPDIR)/support/scripts/fix-rpath target
|
||||
@ -740,6 +772,8 @@ endif
|
||||
$(call MESSAGE,"Executing post-build script $(s)"); \
|
||||
$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
|
||||
|
||||
touch $(TARGET_DIR)/usr
|
||||
|
||||
.PHONY: target-post-image
|
||||
target-post-image: $(TARGETS_ROOTFS) target-finalize
|
||||
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \
|
||||
@ -754,10 +788,6 @@ _external-deps: $(foreach p,$(PACKAGES),$(p)-all-external-deps)
|
||||
external-deps:
|
||||
@$(MAKE1) -Bs $(EXTRAMAKEARGS) _external-deps | sort -u
|
||||
|
||||
# check if download URLs are outdated
|
||||
.PHONY: source-check
|
||||
source-check: $(foreach p,$(PACKAGES),$(p)-all-source-check)
|
||||
|
||||
.PHONY: legal-info-clean
|
||||
legal-info-clean:
|
||||
@rm -fr $(LEGAL_INFO_DIR)
|
||||
@ -789,7 +819,7 @@ legal-info: dirs legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p
|
||||
|
||||
.PHONY: show-targets
|
||||
show-targets:
|
||||
@echo $(PACKAGES) $(TARGETS_ROOTFS)
|
||||
@echo $(sort $(PACKAGES)) $(sort $(TARGETS_ROOTFS))
|
||||
|
||||
.PHONY: show-build-order
|
||||
show-build-order: $(patsubst %,%-show-build-order,$(PACKAGES))
|
||||
@ -957,7 +987,8 @@ $(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
|
||||
# displayed.
|
||||
.PHONY: printvars
|
||||
printvars:
|
||||
@:$(foreach V, \
|
||||
@:
|
||||
$(foreach V, \
|
||||
$(sort $(if $(VARS),$(filter $(VARS),$(.VARIABLES)),$(.VARIABLES))), \
|
||||
$(if $(filter-out environment% default automatic, \
|
||||
$(origin $V)), \
|
||||
@ -1000,8 +1031,8 @@ help:
|
||||
@echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
|
||||
@echo ' olddefconfig - Same as silentoldconfig but sets new symbols to their default value'
|
||||
@echo ' randconfig - New config with random answer to all options'
|
||||
@echo ' defconfig - New config with default answer to all options'
|
||||
@echo ' BR2_DEFCONFIG, if set, is used as input'
|
||||
@echo ' defconfig - New config with default answer to all options;'
|
||||
@echo ' BR2_DEFCONFIG, if set on the command line, is used as input'
|
||||
@echo ' savedefconfig - Save current config to BR2_DEFCONFIG (minimal config)'
|
||||
@echo ' allyesconfig - New config where all options are accepted with yes'
|
||||
@echo ' allnoconfig - New config where all options are answered with no'
|
||||
@ -1044,7 +1075,6 @@ help:
|
||||
@echo
|
||||
@echo 'Miscellaneous:'
|
||||
@echo ' source - download all sources needed for offline-build'
|
||||
@echo ' source-check - check selected packages for valid download URLs'
|
||||
@echo ' external-deps - list external packages used'
|
||||
@echo ' legal-info - generate info about license compliance'
|
||||
@echo ' printvars - dump all the internal variables'
|
||||
|
@ -79,6 +79,7 @@ config BR2_aarch64_be
|
||||
config BR2_bfin
|
||||
bool "Blackfin"
|
||||
select BR2_ARCH_HAS_FDPIC_SUPPORT
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
help
|
||||
The Blackfin is a family of 16 or 32-bit microprocessors developed,
|
||||
manufactured and marketed by Analog Devices.
|
||||
@ -261,6 +262,27 @@ config BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT
|
||||
bool
|
||||
default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
|
||||
|
||||
# The following symbols are selected by the individual
|
||||
# Config.in.$ARCH files
|
||||
config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
|
||||
bool
|
||||
|
||||
config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
|
||||
|
||||
config BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
|
||||
config BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
|
||||
config BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
|
||||
# The following string values are defined by the individual
|
||||
# Config.in.$ARCH files
|
||||
config BR2_ARCH
|
||||
|
@ -59,29 +59,42 @@ config BR2_ARM_CPU_ARMV7A
|
||||
config BR2_ARM_CPU_ARMV7M
|
||||
bool
|
||||
|
||||
config BR2_ARM_CPU_ARMV8
|
||||
config BR2_ARM_CPU_ARMV8A
|
||||
bool
|
||||
|
||||
choice
|
||||
prompt "Target Architecture Variant"
|
||||
default BR2_cortex_a53 if BR2_ARCH_IS_64
|
||||
default BR2_arm926t
|
||||
help
|
||||
Specific CPU variant to use
|
||||
|
||||
if !BR2_ARCH_IS_64
|
||||
comment "armv4 cores"
|
||||
config BR2_arm920t
|
||||
bool "arm920t"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_HAS_THUMB
|
||||
select BR2_ARM_CPU_ARMV4
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_arm922t
|
||||
bool "arm922t"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_HAS_THUMB
|
||||
select BR2_ARM_CPU_ARMV4
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_fa526
|
||||
bool "fa526/626"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_ARMV4
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
config BR2_strongarm
|
||||
bool "strongarm sa110/sa1100"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_ARMV4
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
|
||||
comment "armv5 cores"
|
||||
config BR2_arm926t
|
||||
bool "arm926t"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -89,14 +102,25 @@ config BR2_arm926t
|
||||
select BR2_ARM_CPU_HAS_THUMB
|
||||
select BR2_ARM_CPU_ARMV5
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_iwmmxt
|
||||
bool "iwmmxt"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_ARMV5
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
config BR2_xscale
|
||||
bool "xscale"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_HAS_THUMB
|
||||
select BR2_ARM_CPU_ARMV5
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
|
||||
comment "armv6 cores"
|
||||
config BR2_arm1136j_s
|
||||
bool "arm1136j-s"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_HAS_THUMB
|
||||
select BR2_ARM_CPU_ARMV6
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_arm1136jf_s
|
||||
bool "arm1136jf-s"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -104,14 +128,12 @@ config BR2_arm1136jf_s
|
||||
select BR2_ARM_CPU_HAS_THUMB
|
||||
select BR2_ARM_CPU_ARMV6
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_arm1176jz_s
|
||||
bool "arm1176jz-s"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_HAS_THUMB
|
||||
select BR2_ARM_CPU_ARMV6
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_arm1176jzf_s
|
||||
bool "arm1176jzf-s"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -119,7 +141,6 @@ config BR2_arm1176jzf_s
|
||||
select BR2_ARM_CPU_HAS_THUMB
|
||||
select BR2_ARM_CPU_ARMV6
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_arm11mpcore
|
||||
bool "mpcore"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -127,7 +148,8 @@ config BR2_arm11mpcore
|
||||
select BR2_ARM_CPU_HAS_THUMB
|
||||
select BR2_ARM_CPU_ARMV6
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
|
||||
comment "armv7a cores"
|
||||
config BR2_cortex_a5
|
||||
bool "cortex-A5"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -136,7 +158,6 @@ config BR2_cortex_a5
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_cortex_a7
|
||||
bool "cortex-A7"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -145,7 +166,6 @@ config BR2_cortex_a7
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_cortex_a8
|
||||
bool "cortex-A8"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -154,7 +174,6 @@ config BR2_cortex_a8
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_cortex_a9
|
||||
bool "cortex-A9"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -163,7 +182,6 @@ config BR2_cortex_a9
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_cortex_a12
|
||||
bool "cortex-A12"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -172,7 +190,6 @@ config BR2_cortex_a12
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_cortex_a15
|
||||
bool "cortex-A15"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -181,7 +198,6 @@ config BR2_cortex_a15
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_cortex_a15_a7
|
||||
bool "cortex-A15/A7 big.LITTLE"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -190,7 +206,7 @@ config BR2_cortex_a15_a7
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
config BR2_cortex_a17
|
||||
bool "cortex-A17"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -199,7 +215,7 @@ config BR2_cortex_a17
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
config BR2_cortex_a17_a7
|
||||
bool "cortex-A17/A7 big.LITTLE"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
@ -208,14 +224,52 @@ config BR2_cortex_a17_a7
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
config BR2_pj4
|
||||
bool "pj4"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_HAS_VFPV3
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
|
||||
comment "armv7m cores"
|
||||
config BR2_cortex_m3
|
||||
bool "cortex-M3"
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7M
|
||||
config BR2_cortex_m4
|
||||
bool "cortex-M4"
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7M
|
||||
endif # !BR2_ARCH_IS_64
|
||||
|
||||
comment "armv8 cores"
|
||||
config BR2_cortex_a32
|
||||
bool "cortex-A32"
|
||||
depends on !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_HAS_NEON
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
config BR2_cortex_a35
|
||||
bool "cortex-A35"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
config BR2_cortex_a53
|
||||
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_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
config BR2_cortex_a57
|
||||
bool "cortex-A57"
|
||||
@ -223,7 +277,7 @@ config BR2_cortex_a57
|
||||
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_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
config BR2_cortex_a57_a53
|
||||
bool "cortex-A57/A53 big.LITTLE"
|
||||
@ -231,66 +285,153 @@ config BR2_cortex_a57_a53
|
||||
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_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
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_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
config BR2_cortex_a72_a53
|
||||
bool "cortex-A72/A53 big.LITTLE"
|
||||
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_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
config BR2_cortex_m3
|
||||
bool "cortex-M3"
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7M
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_cortex_m4
|
||||
bool "cortex-M4"
|
||||
select BR2_ARM_CPU_HAS_THUMB2
|
||||
select BR2_ARM_CPU_ARMV7M
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_fa526
|
||||
bool "fa526/626"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_ARMV4
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
config BR2_cortex_a73
|
||||
bool "cortex-A73"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_pj4
|
||||
bool "pj4"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_HAS_VFPV3
|
||||
select BR2_ARM_CPU_ARMV7A
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
config BR2_cortex_a73_a35
|
||||
bool "cortex-A73/A35 big.LITTLE"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_strongarm
|
||||
bool "strongarm sa110/sa1100"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_ARMV4
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
config BR2_cortex_a73_a53
|
||||
bool "cortex-A73/A53 big.LITTLE"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_xscale
|
||||
bool "xscale"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_HAS_THUMB
|
||||
select BR2_ARM_CPU_ARMV5
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
config BR2_exynos_m1
|
||||
bool "exynos-m1"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
config BR2_iwmmxt
|
||||
bool "iwmmxt"
|
||||
select BR2_ARM_CPU_HAS_ARM
|
||||
select BR2_ARM_CPU_ARMV5
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
config BR2_falkor
|
||||
bool "falkor"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
depends on !BR2_ARCH_IS_64
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
config BR2_qdf24xx
|
||||
bool "qdf24xx"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
if BR2_ARCH_IS_64
|
||||
config BR2_thunderx
|
||||
bool "thunderx"
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
config BR2_thunderxt81
|
||||
bool "thunderxt81"
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
config BR2_thunderxt83
|
||||
bool "thunderxt83"
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
config BR2_thunderxt88
|
||||
bool "thunderxt88"
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
config BR2_thunderxt88p1
|
||||
bool "thunderxt88p1"
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
endif # BR2_ARCH_IS_64
|
||||
config BR2_xgene1
|
||||
bool "xgene1"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
|
||||
if BR2_ARCH_IS_64
|
||||
comment "armv8.1a cores"
|
||||
config BR2_thunderx2t99
|
||||
bool "thunderx2t99"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
config BR2_thunderx2t99p1
|
||||
bool "thunderx2t99p1"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
config BR2_vulcan
|
||||
bool "vulcan"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
||||
select BR2_ARM_CPU_HAS_FP_ARMV8
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
endif # BR2_ARCH_IS_64
|
||||
endchoice
|
||||
|
||||
config BR2_ARM_ENABLE_NEON
|
||||
@ -545,15 +686,23 @@ config BR2_ENDIAN
|
||||
default "BIG" if (BR2_armeb || BR2_aarch64_be)
|
||||
|
||||
config BR2_GCC_TARGET_CPU
|
||||
# armv4
|
||||
default "arm920t" if BR2_arm920t
|
||||
default "arm922t" if BR2_arm922t
|
||||
default "fa526" if BR2_fa526
|
||||
default "strongarm" if BR2_strongarm
|
||||
# armv5
|
||||
default "arm926ej-s" if BR2_arm926t
|
||||
default "iwmmxt" if BR2_iwmmxt
|
||||
default "xscale" if BR2_xscale
|
||||
# armv6
|
||||
default "arm1136j-s" if BR2_arm1136j_s
|
||||
default "arm1136jf-s" if BR2_arm1136jf_s
|
||||
default "arm1176jz-s" if BR2_arm1176jz_s
|
||||
default "arm1176jzf-s" if BR2_arm1176jzf_s
|
||||
default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2
|
||||
default "mpcorenovfp" if BR2_arm11mpcore
|
||||
# armv7a
|
||||
default "cortex-a5" if BR2_cortex_a5
|
||||
default "cortex-a7" if BR2_cortex_a7
|
||||
default "cortex-a8" if BR2_cortex_a8
|
||||
@ -563,18 +712,34 @@ config BR2_GCC_TARGET_CPU
|
||||
default "cortex-a15.cortex-a7" if BR2_cortex_a15_a7
|
||||
default "cortex-a17" if BR2_cortex_a17
|
||||
default "cortex-a17.cortex-a7" if BR2_cortex_a17_a7
|
||||
default "marvell-pj4" if BR2_pj4
|
||||
# armv7m
|
||||
default "cortex-m3" if BR2_cortex_m3
|
||||
default "cortex-m4" if BR2_cortex_m4
|
||||
default "fa526" if BR2_fa526
|
||||
default "marvell-pj4" if BR2_pj4
|
||||
default "strongarm" if BR2_strongarm
|
||||
default "xscale" if BR2_xscale
|
||||
default "iwmmxt" if BR2_iwmmxt
|
||||
# armv8a
|
||||
default "cortex-a32" if BR2_cortex_a32
|
||||
default "cortex-a35" if BR2_cortex_a35
|
||||
default "cortex-a53" if BR2_cortex_a53
|
||||
default "cortex-a57" if BR2_cortex_a57
|
||||
default "cortex-a57.cortex-a53" if BR2_cortex_a57_a53
|
||||
default "cortex-a72" if BR2_cortex_a72
|
||||
default "cortex-a72.cortex-a53" if BR2_cortex_a72_a53
|
||||
default "cortex-a73" if BR2_cortex_a73
|
||||
default "cortex-a73.cortex-a35" if BR2_cortex_a73_a35
|
||||
default "cortex-a73.cortex-a53" if BR2_cortex_a73_a53
|
||||
default "exynos-m1" if BR2_exynos_m1
|
||||
default "falkor" if BR2_falkor
|
||||
default "qdf24xx" if BR2_qdf24xx
|
||||
default "thunderx" if BR2_thunderx
|
||||
default "thunderxt81" if BR2_thunderxt81
|
||||
default "thunderxt83" if BR2_thunderxt83
|
||||
default "thunderxt88" if BR2_thunderxt88
|
||||
default "thunderxt88p1" if BR2_thunderxt88p1
|
||||
default "xgene1" if BR2_xgene1
|
||||
# armv8.1a
|
||||
default "thunderx2t99" if BR2_thunderx2t99
|
||||
default "thunderx2t99p1" if BR2_thunderx2t99p1
|
||||
default "vulcan" if BR2_vulcan
|
||||
|
||||
config BR2_GCC_TARGET_ABI
|
||||
default "aapcs-linux" if BR2_arm || BR2_armeb
|
||||
|
@ -7,9 +7,11 @@ config BR2_MIPS_CPU_MIPS32R2
|
||||
select BR2_MIPS_NAN_LEGACY
|
||||
config BR2_MIPS_CPU_MIPS32R5
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
config BR2_MIPS_CPU_MIPS32R6
|
||||
bool
|
||||
select BR2_MIPS_NAN_2008
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
config BR2_MIPS_CPU_MIPS64
|
||||
bool
|
||||
select BR2_MIPS_NAN_LEGACY
|
||||
@ -18,9 +20,11 @@ config BR2_MIPS_CPU_MIPS64R2
|
||||
select BR2_MIPS_NAN_LEGACY
|
||||
config BR2_MIPS_CPU_MIPS64R5
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
config BR2_MIPS_CPU_MIPS64R6
|
||||
bool
|
||||
select BR2_MIPS_NAN_2008
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
|
||||
choice
|
||||
prompt "Target Architecture Variant"
|
||||
@ -53,11 +57,13 @@ config BR2_mips_interaptiv
|
||||
bool "interAptiv"
|
||||
depends on !BR2_ARCH_IS_64
|
||||
select BR2_MIPS_CPU_MIPS32R2
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
config BR2_mips_m5150
|
||||
bool "M5150"
|
||||
depends on !BR2_ARCH_IS_64
|
||||
select BR2_MIPS_CPU_MIPS32R5
|
||||
select BR2_MIPS_NAN_2008
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
config BR2_mips_m6250
|
||||
bool "M6250"
|
||||
depends on !BR2_ARCH_IS_64
|
||||
@ -101,6 +107,7 @@ config BR2_mips_i6400
|
||||
bool "I6400"
|
||||
depends on BR2_ARCH_IS_64
|
||||
select BR2_MIPS_CPU_MIPS64R6
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
||||
config BR2_mips_p6600
|
||||
bool "P6600"
|
||||
depends on BR2_ARCH_IS_64
|
||||
@ -139,7 +146,7 @@ config BR2_MIPS_SOFT_FLOAT
|
||||
choice
|
||||
prompt "FP mode"
|
||||
depends on !BR2_ARCH_IS_64 && !BR2_MIPS_SOFT_FLOAT
|
||||
default BR2_MIPS_FP32_MODE_XX if BR2_TOOLCHAIN_HAS_MFPXX_OPTION
|
||||
default BR2_MIPS_FP32_MODE_XX
|
||||
help
|
||||
MIPS32 supports different FP modes (32,xx,64). Information about FP
|
||||
modes can be found here:
|
||||
@ -152,7 +159,7 @@ config BR2_MIPS_FP32_MODE_32
|
||||
|
||||
config BR2_MIPS_FP32_MODE_XX
|
||||
bool "xx"
|
||||
depends on BR2_TOOLCHAIN_HAS_MFPXX_OPTION
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
|
||||
config BR2_MIPS_FP32_MODE_64
|
||||
bool "64"
|
||||
@ -169,10 +176,10 @@ config BR2_MIPS_NAN_LEGACY
|
||||
|
||||
config BR2_MIPS_NAN_2008
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
||||
|
||||
choice
|
||||
prompt "Target NaN"
|
||||
depends on BR2_TOOLCHAIN_HAS_MNAN_OPTION
|
||||
depends on BR2_mips_32r5 || BR2_mips_64r5
|
||||
default BR2_MIPS_ENABLE_NAN_2008
|
||||
help
|
||||
|
@ -129,6 +129,15 @@ config BR2_x86_atom
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
config BR2_x86_silvermont
|
||||
bool "silvermont"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_SSE2
|
||||
select BR2_X86_CPU_HAS_SSE3
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
config BR2_x86_k6
|
||||
bool "k6"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@ -229,6 +238,7 @@ config BR2_ARCH
|
||||
default "i686" if BR2_x86_corei7_avx && BR2_i386
|
||||
default "i686" if BR2_x86_corei7_avx2 && BR2_i386
|
||||
default "i686" if BR2_x86_atom && BR2_i386
|
||||
default "i686" if BR2_x86_silvermont && BR2_i386
|
||||
default "i686" if BR2_x86_opteron && BR2_i386
|
||||
default "i686" if BR2_x86_opteron_sse3 && BR2_i386
|
||||
default "i686" if BR2_x86_barcelona && BR2_i386
|
||||
@ -261,6 +271,7 @@ config BR2_GCC_TARGET_ARCH
|
||||
default "corei7-avx" if BR2_x86_corei7_avx
|
||||
default "core-avx2" if BR2_x86_core_avx2
|
||||
default "atom" if BR2_x86_atom
|
||||
default "silvermont" if BR2_x86_silvermont
|
||||
default "k8" if BR2_x86_opteron
|
||||
default "k8-sse3" if BR2_x86_opteron_sse3
|
||||
default "barcelona" if BR2_x86_barcelona
|
||||
|
@ -6,10 +6,12 @@ source "boot/at91bootstrap3/Config.in"
|
||||
source "boot/at91dataflashboot/Config.in"
|
||||
source "boot/arm-trusted-firmware/Config.in"
|
||||
source "boot/barebox/Config.in"
|
||||
source "boot/binaries-marvell/Config.in"
|
||||
source "boot/boot-wrapper-aarch64/Config.in"
|
||||
source "boot/grub2/Config.in"
|
||||
source "boot/gummiboot/Config.in"
|
||||
source "boot/lpc32xxcdl/Config.in"
|
||||
source "boot/mv-ddr-marvell/Config.in"
|
||||
source "boot/mxs-bootlets/Config.in"
|
||||
source "boot/s500-bootloader/Config.in"
|
||||
source "boot/syslinux/Config.in"
|
||||
|
@ -56,6 +56,30 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM
|
||||
help
|
||||
Target plaform to build for.
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP
|
||||
bool "Build FIP image"
|
||||
help
|
||||
This option enables building the FIP image (Firmware Image
|
||||
Package). This is typically the image format used by
|
||||
platforms were ATF encapsulates the second stage bootloader
|
||||
(such as U-Boot).
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31
|
||||
bool "Build BL31 image"
|
||||
help
|
||||
This option enables building the BL31 image. This is
|
||||
typically used on platforms where another bootloader (e.g
|
||||
U-Boot) encapsulates ATF BL31.
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33
|
||||
bool "Use U-Boot as BL33"
|
||||
depends on BR2_TARGET_UBOOT
|
||||
help
|
||||
This option allows to embed u-boot.bin as the BL33 part of
|
||||
the ARM Trusted Firmware. It ensures that the u-boot package
|
||||
gets built before ATF, and that the appropriate BL33
|
||||
variable pointing to u-boot.bin is passed when building ATF.
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES
|
||||
string "Additional ATF build variables"
|
||||
help
|
||||
|
@ -8,8 +8,6 @@ ARM_TRUSTED_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_V
|
||||
ARM_TRUSTED_FIRMWARE_LICENSE = BSD-3-Clause
|
||||
ARM_TRUSTED_FIRMWARE_LICENSE_FILES = license.rst
|
||||
|
||||
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += uboot
|
||||
|
||||
ifeq ($(ARM_TRUSTED_FIRMWARE_VERSION),custom)
|
||||
# Handle custom ATF tarballs as specified by the configuration
|
||||
ARM_TRUSTED_FIRMWARE_TARBALL = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_TARBALL_LOCATION))
|
||||
@ -30,19 +28,57 @@ ARM_TRUSTED_FIRMWARE_PLATFORM = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_
|
||||
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
BL33=$(BINARIES_DIR)/u-boot.bin \
|
||||
$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES)) \
|
||||
PLAT=$(ARM_TRUSTED_FIRMWARE_PLATFORM)
|
||||
|
||||
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += BL33=$(BINARIES_DIR)/u-boot.bin
|
||||
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += uboot
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_VEXPRESS_FIRMWARE),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SCP_BL2=$(BINARIES_DIR)/scp-fw.bin
|
||||
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += vexpress-firmware
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_BINARIES_MARVELL),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SCP_BL2=$(BINARIES_DIR)/scp-fw.bin
|
||||
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += binaries-marvell
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_MV_DDR_MARVELL),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += MV_DDR_PATH=$(MV_DDR_MARVELL_DIR)
|
||||
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += mv-ddr-marvell
|
||||
endif
|
||||
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_TARGETS = all
|
||||
|
||||
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += fip
|
||||
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-openssl
|
||||
# fiptool only exists in newer (>= 1.3) versions of ATF, so we build
|
||||
# it conditionally. We need to explicitly build it as it requires
|
||||
# OpenSSL, and therefore needs to be passed proper variables to find
|
||||
# the host OpenSSL.
|
||||
define ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL
|
||||
if test -d $(@D)/tools/fiptool; then \
|
||||
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)/tools/fiptool \
|
||||
$(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \
|
||||
CPPFLAGS="$(HOST_CPPFLAGS)" \
|
||||
LDLIBS="$(HOST_LDFLAGS) -lcrypto" ; \
|
||||
fi
|
||||
endef
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += bl31
|
||||
endif
|
||||
|
||||
define ARM_TRUSTED_FIRMWARE_BUILD_CMDS
|
||||
$(ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL)
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
$(MAKE) -C $(@D) $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \
|
||||
all fip
|
||||
$(ARM_TRUSTED_FIRMWARE_MAKE_TARGETS)
|
||||
endef
|
||||
|
||||
define ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES_CMDS
|
||||
|
@ -8,6 +8,8 @@ config BR2_TARGET_AT91BOOTSTRAP3
|
||||
- Peripheral drivers such as PIO, PMC or SDRAMC...
|
||||
- Physical media algorithm such as DataFlash, NandFlash, NOR Flash...
|
||||
|
||||
https://www.at91.com/linux4sam/bin/view/Linux4SAM/AT91Bootstrap
|
||||
|
||||
if BR2_TARGET_AT91BOOTSTRAP3
|
||||
|
||||
choice
|
||||
|
32
boot/binaries-marvell/Config.in
Normal file
32
boot/binaries-marvell/Config.in
Normal file
@ -0,0 +1,32 @@
|
||||
config BR2_TARGET_BINARIES_MARVELL
|
||||
bool "binaries-marvell"
|
||||
depends on BR2_aarch64
|
||||
help
|
||||
Some systems, including Marvell Armada SoC, have a separate
|
||||
System Control Processor (SCP) for power management, clocks,
|
||||
reset and system control. ATF Boot Loader stage 2 (BL2) loads
|
||||
optional SCP_BL2 image into a platform-specific region
|
||||
of secure memory. This package downloads and installs such
|
||||
firmwares, which are needed to build ATF.
|
||||
|
||||
https://github.com/MarvellEmbeddedProcessors/binaries-marvell/
|
||||
|
||||
if BR2_TARGET_BINARIES_MARVELL
|
||||
|
||||
choice
|
||||
prompt "Marvell Armada platform"
|
||||
|
||||
config BR2_TARGET_BINARIES_MARVELL_7040
|
||||
bool "7040"
|
||||
|
||||
config BR2_TARGET_BINARIES_MARVELL_8040
|
||||
bool "8040"
|
||||
|
||||
endchoice
|
||||
|
||||
config BR2_TARGET_BINARIES_MARVELL_IMAGE
|
||||
string
|
||||
default "mrvl_scp_bl2_8040.img" if BR2_TARGET_BINARIES_MARVELL_8040
|
||||
default "mrvl_scp_bl2_7040.img" if BR2_TARGET_BINARIES_MARVELL_7040
|
||||
|
||||
endif
|
3
boot/binaries-marvell/binaries-marvell.hash
Normal file
3
boot/binaries-marvell/binaries-marvell.hash
Normal file
@ -0,0 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 7c41cddc2ce46038b630b59d2e9e50e903d27032bcfbf38019eaed14fcfdbe40 binaries-marvell-a8ac27b7884ed2c1efcf9f3326de3e0ed7b94e91.tar.gz
|
||||
sha256 d8560ab4ea4042a55eee6857ded1d7e4bca2d9120b8c7a86d2a7fdc4ba4994e0 README.md
|
20
boot/binaries-marvell/binaries-marvell.mk
Normal file
20
boot/binaries-marvell/binaries-marvell.mk
Normal file
@ -0,0 +1,20 @@
|
||||
################################################################################
|
||||
#
|
||||
# binaries-marvell
|
||||
#
|
||||
################################################################################
|
||||
|
||||
BINARIES_MARVELL_VERSION = a8ac27b7884ed2c1efcf9f3326de3e0ed7b94e91
|
||||
BINARIES_MARVELL_SITE = $(call github,MarvellEmbeddedProcessors,binaries-marvell,$(BINARIES_MARVELL_VERSION))
|
||||
|
||||
BINARIES_MARVELL_LICENSE = GPL-2.0 with freertos-exception-2.0
|
||||
BINARIES_MARVELL_LICENSE_FILES = README.md
|
||||
|
||||
BINARIES_MARVELL_IMAGE = $(call qstrip,$(BR2_TARGET_BINARIES_MARVELL_IMAGE))
|
||||
BINARIES_MARVELL_INSTALL_IMAGES = YES
|
||||
|
||||
define BINARIES_MARVELL_INSTALL_IMAGES_CMDS
|
||||
$(INSTALL) -D -m 0644 $(@D)/$(BINARIES_MARVELL_IMAGE) $(BINARIES_DIR)/scp-fw.bin
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
@ -6,7 +6,7 @@
|
||||
|
||||
BOOT_WRAPPER_AARCH64_VERSION = 4266507a84f8c06452109d38e0350d4759740694
|
||||
BOOT_WRAPPER_AARCH64_SITE = git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git
|
||||
BOOT_WRAPPER_AARCH64_LICENSE = BSD3c
|
||||
BOOT_WRAPPER_AARCH64_LICENSE = BSD-3-Clause
|
||||
BOOT_WRAPPER_AARCH64_LICENSE_FILES = LICENSE.txt
|
||||
BOOT_WRAPPER_AARCH64_DEPENDENCIES = linux
|
||||
BOOT_WRAPPER_AARCH64_INSTALL_IMAGES = YES
|
||||
|
@ -53,8 +53,8 @@ GRUB2_CONF_ENV = \
|
||||
$(HOST_CONFIGURE_OPTS) \
|
||||
CPP="$(HOSTCC) -E" \
|
||||
TARGET_CC="$(TARGET_CC)" \
|
||||
TARGET_CFLAGS="$(TARGET_CFLAGS) -fno-stack-protector" \
|
||||
TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \
|
||||
TARGET_CFLAGS="$(TARGET_CFLAGS)" \
|
||||
TARGET_CPPFLAGS="$(TARGET_CPPFLAGS) -fno-stack-protector" \
|
||||
TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
|
||||
NM="$(TARGET_NM)" \
|
||||
OBJCOPY="$(TARGET_OBJCOPY)" \
|
||||
|
10
boot/mv-ddr-marvell/Config.in
Normal file
10
boot/mv-ddr-marvell/Config.in
Normal file
@ -0,0 +1,10 @@
|
||||
config BR2_TARGET_MV_DDR_MARVELL
|
||||
bool "mv-ddr-marvell"
|
||||
depends on BR2_aarch64
|
||||
help
|
||||
Marvell keeps algorithms for DDR training in a separate
|
||||
repository. This code is not built separately, it is needed
|
||||
as a dependency to build ATF firmware for Marvell Armada 7040
|
||||
and 8040 SoCs.
|
||||
|
||||
https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell/
|
2
boot/mv-ddr-marvell/mv-ddr-marvell.hash
Normal file
2
boot/mv-ddr-marvell/mv-ddr-marvell.hash
Normal file
@ -0,0 +1,2 @@
|
||||
# Locally calculated
|
||||
sha256 d413546367ffa3b5f4373a777b9efeb32dcc74d6106897c248935ecb79afc454 mv-ddr-marvell-656440a9690f3d07be9e3d2c39d7cf56fd96eb7b.tar.gz
|
12
boot/mv-ddr-marvell/mv-ddr-marvell.mk
Normal file
12
boot/mv-ddr-marvell/mv-ddr-marvell.mk
Normal file
@ -0,0 +1,12 @@
|
||||
################################################################################
|
||||
#
|
||||
# mv-ddr-marvell
|
||||
#
|
||||
################################################################################
|
||||
|
||||
MV_DDR_MARVELL_VERSION = 656440a9690f3d07be9e3d2c39d7cf56fd96eb7b
|
||||
MV_DDR_MARVELL_SITE = $(call github,MarvellEmbeddedProcessors,mv-ddr-marvell,$(MV_DDR_MARVELL_VERSION))
|
||||
MV_DDR_MARVELL_LICENSE = GPL-2.0+ or LGPL-2.1 with freertos-exception-2.0, BSD-3-Clause, Marvell Commercial
|
||||
MV_DDR_MARVELL_LICENSE_FILES = ddr3_init.c
|
||||
|
||||
$(eval $(generic-package))
|
@ -38,7 +38,7 @@ choice
|
||||
Select the specific U-Boot version you want to use
|
||||
|
||||
config BR2_TARGET_UBOOT_LATEST_VERSION
|
||||
bool "2017.09"
|
||||
bool "2018.01"
|
||||
|
||||
config BR2_TARGET_UBOOT_CUSTOM_VERSION
|
||||
bool "Custom version"
|
||||
@ -86,7 +86,7 @@ endif
|
||||
|
||||
config BR2_TARGET_UBOOT_VERSION
|
||||
string
|
||||
default "2017.09" if BR2_TARGET_UBOOT_LATEST_VERSION
|
||||
default "2018.01" if BR2_TARGET_UBOOT_LATEST_VERSION
|
||||
default BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE \
|
||||
if BR2_TARGET_UBOOT_CUSTOM_VERSION
|
||||
default "custom" if BR2_TARGET_UBOOT_CUSTOM_TARBALL
|
||||
@ -158,6 +158,18 @@ config BR2_TARGET_UBOOT_NEEDS_OPENSSL
|
||||
typically the case when the board configuration has
|
||||
CONFIG_FIT_SIGNATURE enabled.
|
||||
|
||||
config BR2_TARGET_UBOOT_NEEDS_ATF_BL31
|
||||
bool "U-Boot needs ATF BL31"
|
||||
depends on BR2_TARGET_ARM_TRUSTED_FIRMWARE
|
||||
depends on !BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33
|
||||
select BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31
|
||||
help
|
||||
Some specific platforms (such as Allwinner A64/H5)
|
||||
encapsulate the BL31 part of ATF inside U-Boot. This option
|
||||
makes sure ATF gets built prior to U-Boot, and that the BL31
|
||||
variable pointing to ATF's BL31 binary, is passed during the
|
||||
Buildroot build.
|
||||
|
||||
menu "U-Boot binary format"
|
||||
|
||||
config BR2_TARGET_UBOOT_FORMAT_AIS
|
||||
@ -334,13 +346,14 @@ config BR2_TARGET_UBOOT_SPL
|
||||
into DDR.
|
||||
|
||||
config BR2_TARGET_UBOOT_SPL_NAME
|
||||
string "U-Boot SPL binary image name"
|
||||
string "U-Boot SPL/TPL binary image name(s)"
|
||||
default "spl/u-boot-spl.bin"
|
||||
depends on BR2_TARGET_UBOOT_SPL
|
||||
help
|
||||
A space-separated list of SPL binaries, generated during
|
||||
u-boot build. For most platform it is spl/u-boot-spl.bin but
|
||||
not always. It is MLO on OMAP and SPL on i.MX6 for example.
|
||||
A space-separated list of SPL/TPL binaries, generated during
|
||||
u-boot build. For most platform SPL name is spl/u-boot-spl.bin
|
||||
and TPL name is tpl/u-boot-tpl.bin but not always. SPL name is
|
||||
MLO on OMAP and SPL on i.MX6 for example.
|
||||
|
||||
config BR2_TARGET_UBOOT_ZYNQ_IMAGE
|
||||
bool "Generate image for Xilinx Zynq"
|
||||
|
@ -1,2 +1,2 @@
|
||||
# Locally computed:
|
||||
sha256 b2d15f2cf5f72e706025cde73d67247c6da8cd35f7e10891eefe7d9095089744 u-boot-2017.09.tar.bz2
|
||||
sha256 938f597394b33e82e5af8c98bd5ea1a238f61892aabef36384adbf7ca5b52dda u-boot-2018.01.tar.bz2
|
||||
|
@ -131,9 +131,14 @@ endif
|
||||
UBOOT_MAKE_OPTS += \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
ARCH=$(UBOOT_ARCH) \
|
||||
HOSTCC="$(HOSTCC) $(HOST_CFLAGS)" \
|
||||
HOSTCC="$(HOSTCC) $(subst -I/,-isystem /,$(subst -I /,-isystem /,$(HOST_CFLAGS)))" \
|
||||
HOSTLDFLAGS="$(HOST_LDFLAGS)"
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31),y)
|
||||
UBOOT_DEPENDENCIES += arm-trusted-firmware
|
||||
UBOOT_MAKE_OPTS += BL31=$(BINARIES_DIR)/bl31.bin
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y)
|
||||
UBOOT_DEPENDENCIES += host-dtc
|
||||
endif
|
||||
@ -183,12 +188,17 @@ define UBOOT_APPLY_LOCAL_PATCHES
|
||||
endef
|
||||
UBOOT_POST_PATCH_HOOKS += UBOOT_APPLY_LOCAL_PATCHES
|
||||
|
||||
# Bug: https://patchwork.ozlabs.org/patch/833760/
|
||||
define UBOOT_FIX_LIBFDT_SYSTEM_PATH
|
||||
[ ! -e $(@D)/tools/fdtgrep.c ] || \
|
||||
$(SED) 's%<../include/libfdt.h>%"../include/libfdt.h"%' $(@D)/tools/fdtgrep.c
|
||||
# This is equivalent to upstream commit
|
||||
# http://git.denx.de/?p=u-boot.git;a=commitdiff;h=e0d20dc1521e74b82dbd69be53a048847798a90a. It
|
||||
# fixes a build failure when libfdt-devel is installed system-wide.
|
||||
# This only works when scripts/dtc/libfdt exists (E.G. versions containing
|
||||
# http://git.denx.de/?p=u-boot.git;a=commitdiff;h=c0e032e0090d6541549b19cc47e06ccd1f302893)
|
||||
define UBOOT_FIXUP_LIBFDT_INCLUDE
|
||||
if [ -d $(@D)/scripts/dtc/libfdt ]; then \
|
||||
$(SED) 's%-I$$(srctree)/lib/libfdt%-I$$(srctree)/scripts/dtc/libfdt%' $(@D)/tools/Makefile; \
|
||||
fi
|
||||
endef
|
||||
UBOOT_POST_PATCH_HOOKS += UBOOT_FIX_LIBFDT_SYSTEM_PATH
|
||||
UBOOT_POST_PATCH_HOOKS += UBOOT_FIXUP_LIBFDT_INCLUDE
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y)
|
||||
define UBOOT_CONFIGURE_CMDS
|
||||
@ -205,7 +215,15 @@ endif # BR2_TARGET_UBOOT_USE_DEFCONFIG
|
||||
|
||||
UBOOT_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES))
|
||||
UBOOT_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
|
||||
UBOOT_KCONFIG_OPTS = $(UBOOT_MAKE_OPTS)
|
||||
|
||||
# UBOOT_MAKE_OPTS overrides HOSTCC / HOSTLDFLAGS to allow the build to
|
||||
# find our host-openssl. However, this triggers a bug in the kconfig
|
||||
# build script that causes it to build with /usr/include/ncurses.h
|
||||
# (which is typically wchar) but link with
|
||||
# $(HOST_DIR)/lib/libncurses.so (which is not). We don't actually
|
||||
# need any host-package for kconfig, so remove the HOSTCC/HOSTLDFLAGS
|
||||
# override again.
|
||||
UBOOT_KCONFIG_OPTS = $(UBOOT_MAKE_OPTS) HOSTCC="$(HOSTCC)" HOSTLDFLAGS=""
|
||||
define UBOOT_HELP_CMDS
|
||||
@echo ' uboot-menuconfig - Run U-Boot menuconfig'
|
||||
@echo ' uboot-savedefconfig - Run U-Boot savedefconfig'
|
||||
@ -238,6 +256,18 @@ define UBOOT_BUILD_OMAP_IFT
|
||||
-c $(call qstrip,$(BR2_TARGET_UBOOT_OMAP_IFT_CONFIG))
|
||||
endef
|
||||
|
||||
ifneq ($(BR2_TARGET_UBOOT_ENVIMAGE),)
|
||||
define UBOOT_GENERATE_ENV_IMAGE
|
||||
cat $(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)) \
|
||||
>$(@D)/buildroot-env.txt
|
||||
$(HOST_DIR)/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \
|
||||
$(if $(BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT),-r) \
|
||||
$(if $(filter "BIG",$(BR2_ENDIAN)),-b) \
|
||||
-o $(BINARIES_DIR)/uboot-env.bin \
|
||||
$(@D)/buildroot-env.txt
|
||||
endef
|
||||
endif
|
||||
|
||||
define UBOOT_INSTALL_IMAGES_CMDS
|
||||
$(foreach f,$(UBOOT_BINS), \
|
||||
cp -dpf $(@D)/$(f) $(BINARIES_DIR)/
|
||||
@ -249,12 +279,7 @@ define UBOOT_INSTALL_IMAGES_CMDS
|
||||
cp -dpf $(@D)/$(f) $(BINARIES_DIR)/
|
||||
)
|
||||
)
|
||||
$(if $(BR2_TARGET_UBOOT_ENVIMAGE),
|
||||
cat $(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)) | \
|
||||
$(HOST_DIR)/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \
|
||||
$(if $(BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT),-r) \
|
||||
$(if $(filter BIG,$(BR2_ENDIAN)),-b) \
|
||||
-o $(BINARIES_DIR)/uboot-env.bin -)
|
||||
$(UBOOT_GENERATE_ENV_IMAGE)
|
||||
$(if $(BR2_TARGET_UBOOT_BOOT_SCRIPT),
|
||||
$(HOST_DIR)/bin/mkimage -C none -A $(MKIMAGE_ARCH) -T script \
|
||||
-d $(call qstrip,$(BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE)) \
|
||||
|
@ -4,3 +4,5 @@ config BR2_TARGET_VEXPRESS_FIRMWARE
|
||||
help
|
||||
Versatile Express firmware from ARM, with Linaro mods last
|
||||
change.
|
||||
|
||||
https://git.linaro.org/arm/vexpress-firmware.git
|
||||
|
@ -5,6 +5,8 @@ config BR2_TARGET_XLOADER
|
||||
The x-loader bootloader. It is mainly used on OMAP-based
|
||||
platforms.
|
||||
|
||||
http://omappedia.org/wiki/Linux_OMAP_Kernel_Main
|
||||
|
||||
if BR2_TARGET_XLOADER
|
||||
config BR2_TARGET_XLOADER_BOARDNAME
|
||||
string "x-loader board name"
|
||||
|
110
docs/manual/adding-packages-cargo.txt
Normal file
110
docs/manual/adding-packages-cargo.txt
Normal file
@ -0,0 +1,110 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
=== Integration of Cargo-based packages
|
||||
|
||||
Cargo is the package manager for the Rust programming language. It allows the
|
||||
user to build programs or libraries written in Rust, but it also downloads and
|
||||
manages their dependencies, to ensure repeatable builds. Cargo packages are
|
||||
called "crates".
|
||||
|
||||
[[cargo-package-tutorial]]
|
||||
|
||||
==== Cargo-based package's +Config.in+ file
|
||||
|
||||
The +Config.in+ file of Cargo-based package 'foo' should contain:
|
||||
|
||||
---------------------------
|
||||
01: config BR2_PACKAGE_FOO
|
||||
02: bool "foo"
|
||||
03: depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
|
||||
04: select BR2_PACKAGE_HOST_CARGO
|
||||
05: help
|
||||
06: This is a comment that explains what foo is.
|
||||
07:
|
||||
08: http://foosoftware.org/foo/
|
||||
---------------------------
|
||||
|
||||
==== Cargo-based package's +.mk+ file
|
||||
|
||||
Buildroot does not (yet) provide a dedicated package infrastructure for
|
||||
Cargo-based packages. So, we will explain how to write a +.mk+ file for such a
|
||||
package. Let's start with an example:
|
||||
|
||||
------------------------------
|
||||
01: ################################################################################
|
||||
02: #
|
||||
03: # foo
|
||||
04: #
|
||||
05: ################################################################################
|
||||
06:
|
||||
07: FOO_VERSION = 1.0
|
||||
08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
|
||||
09: FOO_SITE = http://www.foosoftware.org/download
|
||||
10: FOO_LICENSE = GPL-3.0+
|
||||
11: FOO_LICENSE_FILES = COPYING
|
||||
12:
|
||||
13: FOO_DEPENDENCIES = host-cargo
|
||||
14:
|
||||
15: FOO_CARGO_ENV = CARGO_HOME=$(HOST_DIR)/share/cargo
|
||||
16: FOO_CARGO_MODE = $(if $(BR2_ENABLE_DEBUG),debug,release)
|
||||
17:
|
||||
18: FOO_BIN_DIR = target/$(RUSTC_TARGET_NAME)/$(FOO_CARGO_MODE)
|
||||
19:
|
||||
20: FOO_CARGO_OPTS = \
|
||||
21: --$(FOO_CARGO_MODE) \
|
||||
22: --target=$(RUSTC_TARGET_NAME) \
|
||||
23: --manifest-path=$(@D)/Cargo.toml
|
||||
24:
|
||||
25: define FOO_BUILD_CMDS
|
||||
26: $(TARGET_MAKE_ENV) $(FOO_CARGO_ENV) \
|
||||
27: cargo build $(FOO_CARGO_OPTS)
|
||||
28: endef
|
||||
29:
|
||||
30: define FOO_INSTALL_TARGET_CMDS
|
||||
31: $(INSTALL) -D -m 0755 $(@D)/$(FOO_BIN_DIR)/foo \
|
||||
32: $(TARGET_DIR)/usr/bin/foo
|
||||
33: endef
|
||||
34:
|
||||
35: $(eval $(generic-package))
|
||||
--------------------------------
|
||||
|
||||
The Makefile starts with the definition of the standard variables for package
|
||||
declaration (lines 7 to 11).
|
||||
|
||||
As seen in line 35, it is based on the
|
||||
xref:generic-package-tutorial[+generic-package+ infrastructure]. So, it defines
|
||||
the variables required by this particular infrastructure, where Cargo is
|
||||
invoked:
|
||||
|
||||
* +FOO_BUILD_CMDS+: Cargo is invoked to perform the build. The options required
|
||||
to configure the cross-compilation of the package are passed via
|
||||
+FOO_CONF_OPTS+.
|
||||
|
||||
* +FOO_INSTALL_TARGET_CMDS+: The binary executable generated is installed on
|
||||
the target.
|
||||
|
||||
In order to have Cargo available for the build, +FOO_DEPENDENCIES+ needs to
|
||||
contain +host-cargo+.
|
||||
|
||||
To sum it up, to add a new Cargo-based package, the Makefile example can be
|
||||
copied verbatim then edited to replace all occurences of +FOO+ with the
|
||||
uppercase name of the new package and update the values of the standard
|
||||
variables.
|
||||
|
||||
==== About Dependencies Management
|
||||
|
||||
A crate can depend on other libraries from crates.io or git repositories, listed
|
||||
in its Cargo.toml file. Before starting a build, Cargo usually downloads
|
||||
automatically them. This step can also be performed independently, via the
|
||||
+cargo fetch+ command.
|
||||
|
||||
Cargo maintains a local cache of the registry index and of git checkouts of the
|
||||
crates, whose location is given by +$CARGO_HOME+. As seen in the package
|
||||
Makefile example at line 15, this environment variable is set to
|
||||
+$(HOST_DIR)/share/cargo+.
|
||||
|
||||
This dependency download mechanism is not convenient when performing an offline
|
||||
build, as Cargo will fail to fetch the dependencies. In that case, it is advised
|
||||
to generate a tarball of the dependencies using the +cargo vendor+ and add it to
|
||||
+FOO_EXTRA_DOWNLOADS+.
|
@ -197,12 +197,25 @@ information is (assuming the package name is +libfoo+) :
|
||||
* +LIBFOO_VERSION+, mandatory, must contain the version of the
|
||||
package. Note that if +HOST_LIBFOO_VERSION+ doesn't exist, it is
|
||||
assumed to be the same as +LIBFOO_VERSION+. It can also be a
|
||||
revision number, branch or tag for packages that are fetched
|
||||
directly from their revision control system. +
|
||||
Examples: +
|
||||
+LIBFOO_VERSION = 0.1.2+ +
|
||||
+LIBFOO_VERSION = cb9d6aa9429e838f0e54faa3d455bcbab5eef057+ +
|
||||
+LIBFOO_VERSION = stable+
|
||||
revision number or a tag for packages that are fetched directly
|
||||
from their version control system. Examples:
|
||||
** a version for a release tarball: +LIBFOO_VERSION = 0.1.2+
|
||||
** a sha1 for a git tree: +LIBFOO_VERSION = cb9d6aa9429e838f0e54faa3d455bcbab5eef057+
|
||||
** a tag for a git tree +LIBFOO_VERSION = v0.1.2+
|
||||
+
|
||||
.Note:
|
||||
Using a branch name as +FOO_VERSION+ is not supported, because it does
|
||||
not and can not work as people would expect it should:
|
||||
+
|
||||
1. due to local caching, Buildroot will not re-fetch the repository,
|
||||
so people who expect to be able to follow the remote repository
|
||||
would be quite surprised and disappointed;
|
||||
2. because two builds can never be perfectly simultaneous, and because
|
||||
the remote repository may get new commits on the branch anytime,
|
||||
two users, using the same Buildroot tree and building the same
|
||||
configuration, may get different source, thus rendering the build
|
||||
non reproducible, and people would be quite surprised and
|
||||
disappointed.
|
||||
|
||||
* +LIBFOO_SOURCE+ may contain the name of the tarball of the package,
|
||||
which Buildroot will use to download the tarball from
|
||||
@ -453,6 +466,13 @@ information is (assuming the package name is +libfoo+) :
|
||||
FLAT binary format is only 4k bytes. If the application consumes more stack,
|
||||
append the required number here.
|
||||
|
||||
* +LIBFOO_BIN_ARCH_EXCLUDE+ is a space-separated list of paths (relative
|
||||
to the target directory) to ignore when checking that the package
|
||||
installs correctly cross-compiled binaries. You seldom need to set this
|
||||
variable, unless the package installs binary blobs outside the default
|
||||
locations, `/lib/firmware`, `/usr/lib/firmware`, `/lib/modules`,
|
||||
`/usr/lib/modules`, and `/usr/share`, which are automatically excluded.
|
||||
|
||||
The recommended way to define these variables is to use the following
|
||||
syntax:
|
||||
|
||||
|
101
docs/manual/adding-packages-meson.txt
Normal file
101
docs/manual/adding-packages-meson.txt
Normal file
@ -0,0 +1,101 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
=== Integration of Meson-based packages
|
||||
|
||||
[[meson-package-tutorial]]
|
||||
|
||||
==== +meson-package+ tutorial
|
||||
|
||||
http://mesonbuild.com[Meson] is an open source build system meant to be both
|
||||
extremely fast, and, even more importantly, as user friendly as possible.
|
||||
|
||||
Buildroot does not (yet) provide a dedicated package infrastructure for
|
||||
meson-based packages. So, we will explain how to write a +.mk+ file for such a
|
||||
package. Let's start with an example:
|
||||
|
||||
------------------------------
|
||||
01: ################################################################################
|
||||
02: #
|
||||
03: # foo
|
||||
04: #
|
||||
05: ################################################################################
|
||||
06:
|
||||
07: FOO_VERSION = 1.0
|
||||
08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
|
||||
09: FOO_SITE = http://www.foosoftware.org/download
|
||||
10: FOO_LICENSE = GPL-3.0+
|
||||
11: FOO_LICENSE_FILES = COPYING
|
||||
12: FOO_INSTALL_STAGING = YES
|
||||
13:
|
||||
14: FOO_DEPENDENCIES = host-meson host-pkgconf bar
|
||||
15:
|
||||
16: FOO_CONF_OPTS += \
|
||||
17: --prefix=/usr \
|
||||
18: --buildtype $(if $(BR2_ENABLE_DEBUG),debug,release) \
|
||||
19: --cross-file $(HOST_DIR)/etc/meson/cross-compilation.conf
|
||||
20:
|
||||
21: FOO_NINJA_OPTS = $(if $(VERBOSE),-v) -j$(PARALLEL_JOBS)
|
||||
22:
|
||||
23: ifeq ($(BR2_PACKAGE_BAZ),y)
|
||||
24: FOO_CONF_OPTS += -Dbaz
|
||||
25: endif
|
||||
26:
|
||||
27: define FOO_CONFIGURE_CMDS
|
||||
28: rm -rf $(@D)/build
|
||||
29: mkdir -p $(@D)/build
|
||||
30: $(TARGET_MAKE_ENV) meson $(FOO_CONF_OPTS) $(@D) $(@D)/build
|
||||
31: endef
|
||||
32:
|
||||
33: define FOO_BUILD_CMDS
|
||||
34: $(TARGET_MAKE_ENV) ninja $(FOO_NINJA_OPTS) -C $(@D)/build
|
||||
35: endef
|
||||
36:
|
||||
37: define FOO_INSTALL_TARGET_CMDS
|
||||
38: $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) ninja $(FOO_NINJA_OPTS) \
|
||||
39: -C $(@D)/build install
|
||||
40: endef
|
||||
41:
|
||||
42: define FOO_INSTALL_STAGING_CMDS
|
||||
43: $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) ninja $(FOO_NINJA_OPTS) \
|
||||
44: -C $(@D)/build install
|
||||
45: endef
|
||||
46:
|
||||
47: $(eval $(generic-package))
|
||||
--------------------------------
|
||||
|
||||
The Makefile starts with the definition of the standard variables for package
|
||||
declaration (lines 7 to 11).
|
||||
|
||||
As seen in line 47, it is based on the
|
||||
xref:generic-package-tutorial[+generic-package+ infrastructure]. So, it defines
|
||||
the variables required by this particular infrastructure, where Meson and its
|
||||
companion tool, Ninja, are invoked:
|
||||
|
||||
* +FOO_CONFIGURE_CMDS+: the build directory required by Meson is created, and
|
||||
Meson is invoked to generate the Ninja build file. The options required to
|
||||
configure the cross-compilation of the package are passed via
|
||||
+FOO_CONF_OPTS+.
|
||||
|
||||
* +FOO_BUILD_CMDS+: Ninja is invoked to perform the build.
|
||||
|
||||
* +FOO_INSTALL_TARGET_CMDS+: Ninja is invoked to install the files generated
|
||||
during the build step in the target directory.
|
||||
|
||||
* +FOO_INSTALL_STAGING_CMDS+: Ninja is invoked to install the files generated
|
||||
during the build step in the staging directory, as +FOO_INSTALL_STAGING+ is
|
||||
set to "YES".
|
||||
|
||||
In order to have Meson available for the build, +FOO_DEPENDENCIES+ needs to
|
||||
contain +host-meson+. In the example, +host-pkgconf+ and +bar+ are also
|
||||
declared as dependencies because the Meson build file of +foo+ uses `pkg-config`
|
||||
to determine the compilation flags and libraries of package +bar+.
|
||||
|
||||
If the "baz" package is selected, then support for the "baz" feature in "foo"
|
||||
is activated by adding +-Dbaz+ to +FOO_CONF_OPTS+, as specified in the
|
||||
+meson_options.txt+ file in "foo" source tree.
|
||||
|
||||
To sum it up, to add a new meson-based package, the Makefile example can be
|
||||
copied verbatim then edited to replace all occurences of +FOO+ with the
|
||||
uppercase name of the new package and update the values of the standard
|
||||
variables.
|
@ -46,7 +46,7 @@ built.
|
||||
|
||||
Most of these data can be retrieved from https://metacpan.org/.
|
||||
So, this file and the Config.in can be generated by running
|
||||
the script +supports/scripts/scancpan Foo-Bar+ in the Buildroot directory
|
||||
the script +utils/scancpan Foo-Bar+ in the Buildroot directory
|
||||
(or in a br2-external tree).
|
||||
This script creates a Config.in file and foo-bar.mk file for the
|
||||
requested package, and also recursively for all dependencies specified by
|
||||
|
@ -34,6 +34,10 @@ include::adding-packages-rebar.txt[]
|
||||
|
||||
include::adding-packages-waf.txt[]
|
||||
|
||||
include::adding-packages-meson.txt[]
|
||||
|
||||
include::adding-packages-cargo.txt[]
|
||||
|
||||
include::adding-packages-kernel-module.txt[]
|
||||
|
||||
include::adding-packages-asciidoc.txt[]
|
||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -111,13 +111,15 @@ III. Developer guide
|
||||
configuration files
|
||||
17.13. Infrastructure for rebar-based packages
|
||||
17.14. Infrastructure for Waf-based packages
|
||||
17.15. Infrastructure for packages building kernel modules
|
||||
17.16. Infrastructure for asciidoc documents
|
||||
17.17. Infrastructure specific to the Linux kernel package
|
||||
17.18. Hooks available in the various build steps
|
||||
17.19. Gettext integration and interaction with packages
|
||||
17.20. Tips and tricks
|
||||
17.21. Conclusion
|
||||
17.15. Integration of Meson-based packages
|
||||
17.16. Integration of Cargo-based packages
|
||||
17.17. Infrastructure for packages building kernel modules
|
||||
17.18. Infrastructure for asciidoc documents
|
||||
17.19. Infrastructure specific to the Linux kernel package
|
||||
17.20. Hooks available in the various build steps
|
||||
17.21. Gettext integration and interaction with packages
|
||||
17.22. Tips and tricks
|
||||
17.23. Conclusion
|
||||
|
||||
18. Patching a package
|
||||
|
||||
@ -158,15 +160,16 @@ List of Examples
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
Buildroot 2017.11 manual generated on 2017-11-30 21:37:14 UTC from
|
||||
git revision 9dd76697cc
|
||||
Buildroot 2018.02.7 manual generated on 2018-10-25 18:44:41 UTC from
|
||||
git revision 8c9284703c
|
||||
|
||||
The Buildroot manual is written by the Buildroot developers. It is
|
||||
licensed under the GNU General Public License, version 2. Refer to
|
||||
the COPYING [http://git.buildroot.org/buildroot/tree/COPYING] file in
|
||||
the Buildroot sources for the full text of this license.
|
||||
the COPYING [http://git.buildroot.org/buildroot/tree/COPYING?id=
|
||||
8c9284703c496b913d936689df72d49e095442e4] file in the Buildroot
|
||||
sources for the full text of this license.
|
||||
|
||||
Copyright © 2004-2017 The Buildroot developers
|
||||
Copyright © 2004-2018 The Buildroot developers
|
||||
|
||||
Part I. Getting started
|
||||
|
||||
@ -231,8 +234,8 @@ vary between distributions).
|
||||
+ make (version 3.81 or any later)
|
||||
+ binutils
|
||||
+ build-essential (only for Debian based systems)
|
||||
+ gcc (version 2.95 or any later)
|
||||
+ g++ (version 2.95 or any later)
|
||||
+ gcc (version 4.4 or any later)
|
||||
+ g++ (version 4.4 or any later)
|
||||
+ bash
|
||||
+ patch
|
||||
+ gzip
|
||||
@ -1524,14 +1527,17 @@ host/. The simplest way to use it is to add output/host/bin/ to your
|
||||
PATH environment variable and then to use ARCH-linux-gcc,
|
||||
ARCH-linux-objdump, ARCH-linux-ld, etc.
|
||||
|
||||
It is possible to relocate the toolchain - but then --sysroot must be
|
||||
passed every time the compiler is called to tell where the libraries
|
||||
and header files are.
|
||||
It is possible to relocate the toolchain, this allows to distribute
|
||||
the toolchain to other developers to build applications for your
|
||||
target. To achieve this:
|
||||
|
||||
It is also possible to generate the Buildroot toolchain in a
|
||||
directory other than output/host by using the Build options → Host
|
||||
dir option. This could be useful if the toolchain must be shared with
|
||||
other users.
|
||||
* run make sdk, which prepares the toolchain to be relocatable;
|
||||
* tarball the contents of the output/host directory;
|
||||
* distribute the resulting tarball.
|
||||
|
||||
Once the toolchain is installed to the new location, the user must
|
||||
run the relocate-sdk.sh script to make sure all paths are updated
|
||||
with the new location.
|
||||
|
||||
8.12.2. Using gdb in Buildroot
|
||||
|
||||
@ -3128,13 +3134,15 @@ Table of Contents
|
||||
configuration files
|
||||
17.13. Infrastructure for rebar-based packages
|
||||
17.14. Infrastructure for Waf-based packages
|
||||
17.15. Infrastructure for packages building kernel modules
|
||||
17.16. Infrastructure for asciidoc documents
|
||||
17.17. Infrastructure specific to the Linux kernel package
|
||||
17.18. Hooks available in the various build steps
|
||||
17.19. Gettext integration and interaction with packages
|
||||
17.20. Tips and tricks
|
||||
17.21. Conclusion
|
||||
17.15. Integration of Meson-based packages
|
||||
17.16. Integration of Cargo-based packages
|
||||
17.17. Infrastructure for packages building kernel modules
|
||||
17.18. Infrastructure for asciidoc documents
|
||||
17.19. Infrastructure specific to the Linux kernel package
|
||||
17.20. Hooks available in the various build steps
|
||||
17.21. Gettext integration and interaction with packages
|
||||
17.22. Tips and tricks
|
||||
17.23. Conclusion
|
||||
|
||||
18. Patching a package
|
||||
|
||||
@ -3384,7 +3392,7 @@ existing packages are integrated, which is needed for fixing issues
|
||||
or tuning their configuration.
|
||||
|
||||
When you add a new package, be sure to test it in various conditions;
|
||||
see Section 17.20.2, “How to test your package”
|
||||
see Section 17.22.2, “How to test your package”
|
||||
|
||||
17.1. Package directory
|
||||
|
||||
@ -4085,10 +4093,29 @@ information is (assuming the package name is libfoo) :
|
||||
* LIBFOO_VERSION, mandatory, must contain the version of the
|
||||
package. Note that if HOST_LIBFOO_VERSION doesn’t exist, it is
|
||||
assumed to be the same as LIBFOO_VERSION. It can also be a
|
||||
revision number, branch or tag for packages that are fetched
|
||||
directly from their revision control system. Examples:
|
||||
LIBFOO_VERSION = 0.1.2 LIBFOO_VERSION =
|
||||
cb9d6aa9429e838f0e54faa3d455bcbab5eef057 LIBFOO_VERSION = stable
|
||||
revision number or a tag for packages that are fetched directly
|
||||
from their version control system. Examples:
|
||||
|
||||
+ a version for a release tarball: LIBFOO_VERSION = 0.1.2
|
||||
+ a sha1 for a git tree: LIBFOO_VERSION =
|
||||
cb9d6aa9429e838f0e54faa3d455bcbab5eef057
|
||||
+ a tag for a git tree LIBFOO_VERSION = v0.1.2
|
||||
|
||||
Note: Using a branch name as FOO_VERSION is not supported,
|
||||
because it does not and can not work as people would expect
|
||||
it should:
|
||||
|
||||
1. due to local caching, Buildroot will not re-fetch the
|
||||
repository, so people who expect to be able to follow the
|
||||
remote repository would be quite surprised and
|
||||
disappointed;
|
||||
2. because two builds can never be perfectly simultaneous,
|
||||
and because the remote repository may get new commits on
|
||||
the branch anytime, two users, using the same Buildroot
|
||||
tree and building the same configuration, may get
|
||||
different source, thus rendering the build non
|
||||
reproducible, and people would be quite surprised and
|
||||
disappointed.
|
||||
* LIBFOO_SOURCE may contain the name of the tarball of the package,
|
||||
which Buildroot will use to download the tarball from
|
||||
LIBFOO_SITE. If HOST_LIBFOO_SOURCE is not specified, it defaults
|
||||
@ -4116,7 +4143,7 @@ information is (assuming the package name is libfoo) :
|
||||
Mercurial, and Bazaar are supported URL types for retrieving
|
||||
packages directly from source code management systems. There is a
|
||||
helper function to make it easier to download source tarballs
|
||||
from GitHub (refer to Section 17.20.3, “How to add a package from
|
||||
from GitHub (refer to Section 17.22.3, “How to add a package from
|
||||
GitHub” for details). A filesystem path may be used to specify
|
||||
either a tarball or a directory containing the package source
|
||||
code. See LIBFOO_SITE_METHOD below for more details on how
|
||||
@ -4193,7 +4220,7 @@ information is (assuming the package name is libfoo) :
|
||||
source directory into the package’s build directory. Note
|
||||
that for local packages, no patches are applied. If you need
|
||||
to still patch the source code, use LIBFOO_POST_RSYNC_HOOKS,
|
||||
see Section 17.18.1, “Using the POST_RSYNC hook”.
|
||||
see Section 17.20.1, “Using the POST_RSYNC hook”.
|
||||
* LIBFOO_GIT_SUBMODULES can be set to YES to create an archive with
|
||||
the git submodules in the repository. This is only available for
|
||||
packages downloaded with git (i.e. when LIBFOO_SITE_METHOD=git).
|
||||
@ -4317,6 +4344,13 @@ information is (assuming the package name is libfoo) :
|
||||
The default stack size for the FLAT binary format is only 4k
|
||||
bytes. If the application consumes more stack, append the
|
||||
required number here.
|
||||
* LIBFOO_BIN_ARCH_EXCLUDE is a space-separated list of paths
|
||||
(relative to the target directory) to ignore when checking that
|
||||
the package installs correctly cross-compiled binaries. You
|
||||
seldom need to set this variable, unless the package installs
|
||||
binary blobs outside the default locations, /lib/firmware, /usr/
|
||||
lib/firmware, /lib/modules, /usr/lib/modules, and /usr/share,
|
||||
which are automatically excluded.
|
||||
|
||||
The recommended way to define these variables is to use the following
|
||||
syntax:
|
||||
@ -4400,7 +4434,7 @@ In the action definitions, you can use the following variables:
|
||||
* Of course the $(HOST_DIR), $(STAGING_DIR) and $(TARGET_DIR)
|
||||
variables to install the packages properly.
|
||||
|
||||
Finally, you can also use hooks. See Section 17.18, “Hooks available
|
||||
Finally, you can also use hooks. See Section 17.20, “Hooks available
|
||||
in the various build steps” for more information.
|
||||
|
||||
17.6. Infrastructure for autotools-based packages
|
||||
@ -4545,7 +4579,7 @@ well for most autotools-based packages. However, when required, it is
|
||||
still possible to customize what is done in any particular step:
|
||||
|
||||
* By adding a post-operation hook (after extract, patch, configure,
|
||||
build or install). See Section 17.18, “Hooks available in the
|
||||
build or install). See Section 17.20, “Hooks available in the
|
||||
various build steps” for details.
|
||||
* By overriding one of the steps. For example, even if the
|
||||
autotools infrastructure is used, if the package .mk file defines
|
||||
@ -4684,7 +4718,7 @@ well for most CMake-based packages. However, when required, it is
|
||||
still possible to customize what is done in any particular step:
|
||||
|
||||
* By adding a post-operation hook (after extract, patch, configure,
|
||||
build or install). See Section 17.18, “Hooks available in the
|
||||
build or install). See Section 17.20, “Hooks available in the
|
||||
various build steps” for details.
|
||||
* By overriding one of the steps. For example, even if the CMake
|
||||
infrastructure is used, if the package .mk file defines its own
|
||||
@ -4837,7 +4871,7 @@ well for most Python-based packages. However, when required, it is
|
||||
still possible to customize what is done in any particular step:
|
||||
|
||||
* By adding a post-operation hook (after extract, patch, configure,
|
||||
build or install). See Section 17.18, “Hooks available in the
|
||||
build or install). See Section 17.20, “Hooks available in the
|
||||
various build steps” for details.
|
||||
* By overriding one of the steps. For example, even if the Python
|
||||
infrastructure is used, if the package .mk file defines its own
|
||||
@ -5052,7 +5086,7 @@ all the Makefile rules that actually allow the package to be built.
|
||||
|
||||
Most of these data can be retrieved from https://metacpan.org/. So,
|
||||
this file and the Config.in can be generated by running the script
|
||||
supports/scripts/scancpan Foo-Bar in the Buildroot directory (or in a
|
||||
utils/scancpan Foo-Bar in the Buildroot directory (or in a
|
||||
br2-external tree). This script creates a Config.in file and
|
||||
foo-bar.mk file for the requested package, and also recursively for
|
||||
all dependencies specified by CPAN. You should still manually edit
|
||||
@ -5412,7 +5446,7 @@ well for most rebar-based packages. However, when required, it is
|
||||
still possible to customize what is done in any particular step:
|
||||
|
||||
* By adding a post-operation hook (after extract, patch, configure,
|
||||
build or install). See Section 17.18, “Hooks available in the
|
||||
build or install). See Section 17.20, “Hooks available in the
|
||||
various build steps” for details.
|
||||
* By overriding one of the steps. For example, even if the rebar
|
||||
infrastructure is used, if the package .mk file defines its own
|
||||
@ -5493,7 +5527,202 @@ be defined.
|
||||
to the waf script during the target installation step. By
|
||||
default, empty.
|
||||
|
||||
17.15. Infrastructure for packages building kernel modules
|
||||
17.15. Integration of Meson-based packages
|
||||
|
||||
17.15.1. meson-package tutorial
|
||||
|
||||
Meson [http://mesonbuild.com] is an open source build system meant to
|
||||
be both extremely fast, and, even more importantly, as user friendly
|
||||
as possible.
|
||||
|
||||
Buildroot does not (yet) provide a dedicated package infrastructure
|
||||
for meson-based packages. So, we will explain how to write a .mk file
|
||||
for such a package. Let’s start with an example:
|
||||
|
||||
01: ################################################################################
|
||||
02: #
|
||||
03: # foo
|
||||
04: #
|
||||
05: ################################################################################
|
||||
06:
|
||||
07: FOO_VERSION = 1.0
|
||||
08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
|
||||
09: FOO_SITE = http://www.foosoftware.org/download
|
||||
10: FOO_LICENSE = GPL-3.0+
|
||||
11: FOO_LICENSE_FILES = COPYING
|
||||
12: FOO_INSTALL_STAGING = YES
|
||||
13:
|
||||
14: FOO_DEPENDENCIES = host-meson host-pkgconf bar
|
||||
15:
|
||||
16: FOO_CONF_OPTS += \
|
||||
17: --prefix=/usr \
|
||||
18: --buildtype $(if $(BR2_ENABLE_DEBUG),debug,release) \
|
||||
19: --cross-file $(HOST_DIR)/etc/meson/cross-compilation.conf
|
||||
20:
|
||||
21: FOO_NINJA_OPTS = $(if $(VERBOSE),-v) -j$(PARALLEL_JOBS)
|
||||
22:
|
||||
23: ifeq ($(BR2_PACKAGE_BAZ),y)
|
||||
24: FOO_CONF_OPTS += -Dbaz
|
||||
25: endif
|
||||
26:
|
||||
27: define FOO_CONFIGURE_CMDS
|
||||
28: rm -rf $(@D)/build
|
||||
29: mkdir -p $(@D)/build
|
||||
30: $(TARGET_MAKE_ENV) meson $(FOO_CONF_OPTS) $(@D) $(@D)/build
|
||||
31: endef
|
||||
32:
|
||||
33: define FOO_BUILD_CMDS
|
||||
34: $(TARGET_MAKE_ENV) ninja $(FOO_NINJA_OPTS) -C $(@D)/build
|
||||
35: endef
|
||||
36:
|
||||
37: define FOO_INSTALL_TARGET_CMDS
|
||||
38: $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) ninja $(FOO_NINJA_OPTS) \
|
||||
39: -C $(@D)/build install
|
||||
40: endef
|
||||
41:
|
||||
42: define FOO_INSTALL_STAGING_CMDS
|
||||
43: $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) ninja $(FOO_NINJA_OPTS) \
|
||||
44: -C $(@D)/build install
|
||||
45: endef
|
||||
46:
|
||||
47: $(eval $(generic-package))
|
||||
|
||||
The Makefile starts with the definition of the standard variables for
|
||||
package declaration (lines 7 to 11).
|
||||
|
||||
As seen in line 47, it is based on the generic-package infrastructure
|
||||
Section 17.5.1, “generic-package tutorial”. So, it defines the
|
||||
variables required by this particular infrastructure, where Meson and
|
||||
its companion tool, Ninja, are invoked:
|
||||
|
||||
* FOO_CONFIGURE_CMDS: the build directory required by Meson is
|
||||
created, and Meson is invoked to generate the Ninja build file.
|
||||
The options required to configure the cross-compilation of the
|
||||
package are passed via FOO_CONF_OPTS.
|
||||
* FOO_BUILD_CMDS: Ninja is invoked to perform the build.
|
||||
* FOO_INSTALL_TARGET_CMDS: Ninja is invoked to install the files
|
||||
generated during the build step in the target directory.
|
||||
* FOO_INSTALL_STAGING_CMDS: Ninja is invoked to install the files
|
||||
generated during the build step in the staging directory, as
|
||||
FOO_INSTALL_STAGING is set to "YES".
|
||||
|
||||
In order to have Meson available for the build, FOO_DEPENDENCIES
|
||||
needs to contain host-meson. In the example, host-pkgconf and bar are
|
||||
also declared as dependencies because the Meson build file of foo
|
||||
uses pkg-config to determine the compilation flags and libraries of
|
||||
package bar.
|
||||
|
||||
If the "baz" package is selected, then support for the "baz" feature
|
||||
in "foo" is activated by adding -Dbaz to FOO_CONF_OPTS, as specified
|
||||
in the meson_options.txt file in "foo" source tree.
|
||||
|
||||
To sum it up, to add a new meson-based package, the Makefile example
|
||||
can be copied verbatim then edited to replace all occurences of FOO
|
||||
with the uppercase name of the new package and update the values of
|
||||
the standard variables.
|
||||
|
||||
17.16. Integration of Cargo-based packages
|
||||
|
||||
Cargo is the package manager for the Rust programming language. It
|
||||
allows the user to build programs or libraries written in Rust, but
|
||||
it also downloads and manages their dependencies, to ensure
|
||||
repeatable builds. Cargo packages are called "crates".
|
||||
|
||||
17.16.1. Cargo-based package’s Config.in file
|
||||
|
||||
The Config.in file of Cargo-based package foo should contain:
|
||||
|
||||
01: config BR2_PACKAGE_FOO
|
||||
02: bool "foo"
|
||||
03: depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
|
||||
04: select BR2_PACKAGE_HOST_CARGO
|
||||
05: help
|
||||
06: This is a comment that explains what foo is.
|
||||
07:
|
||||
08: http://foosoftware.org/foo/
|
||||
|
||||
17.16.2. Cargo-based package’s .mk file
|
||||
|
||||
Buildroot does not (yet) provide a dedicated package infrastructure
|
||||
for Cargo-based packages. So, we will explain how to write a .mk file
|
||||
for such a package. Let’s start with an example:
|
||||
|
||||
01: ################################################################################
|
||||
02: #
|
||||
03: # foo
|
||||
04: #
|
||||
05: ################################################################################
|
||||
06:
|
||||
07: FOO_VERSION = 1.0
|
||||
08: FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
|
||||
09: FOO_SITE = http://www.foosoftware.org/download
|
||||
10: FOO_LICENSE = GPL-3.0+
|
||||
11: FOO_LICENSE_FILES = COPYING
|
||||
12:
|
||||
13: FOO_DEPENDENCIES = host-cargo
|
||||
14:
|
||||
15: FOO_CARGO_ENV = CARGO_HOME=$(HOST_DIR)/share/cargo
|
||||
16: FOO_CARGO_MODE = $(if $(BR2_ENABLE_DEBUG),debug,release)
|
||||
17:
|
||||
18: FOO_BIN_DIR = target/$(RUSTC_TARGET_NAME)/$(FOO_CARGO_MODE)
|
||||
19:
|
||||
20: FOO_CARGO_OPTS = \
|
||||
21: --$(FOO_CARGO_MODE) \
|
||||
22: --target=$(RUSTC_TARGET_NAME) \
|
||||
23: --manifest-path=$(@D)/Cargo.toml
|
||||
24:
|
||||
25: define FOO_BUILD_CMDS
|
||||
26: $(TARGET_MAKE_ENV) $(FOO_CARGO_ENV) \
|
||||
27: cargo build $(FOO_CARGO_OPTS)
|
||||
28: endef
|
||||
29:
|
||||
30: define FOO_INSTALL_TARGET_CMDS
|
||||
31: $(INSTALL) -D -m 0755 $(@D)/$(FOO_BIN_DIR)/foo \
|
||||
32: $(TARGET_DIR)/usr/bin/foo
|
||||
33: endef
|
||||
34:
|
||||
35: $(eval $(generic-package))
|
||||
|
||||
The Makefile starts with the definition of the standard variables for
|
||||
package declaration (lines 7 to 11).
|
||||
|
||||
As seen in line 35, it is based on the generic-package infrastructure
|
||||
Section 17.5.1, “generic-package tutorial”. So, it defines the
|
||||
variables required by this particular infrastructure, where Cargo is
|
||||
invoked:
|
||||
|
||||
* FOO_BUILD_CMDS: Cargo is invoked to perform the build. The
|
||||
options required to configure the cross-compilation of the
|
||||
package are passed via FOO_CONF_OPTS.
|
||||
* FOO_INSTALL_TARGET_CMDS: The binary executable generated is
|
||||
installed on the target.
|
||||
|
||||
In order to have Cargo available for the build, FOO_DEPENDENCIES
|
||||
needs to contain host-cargo.
|
||||
|
||||
To sum it up, to add a new Cargo-based package, the Makefile example
|
||||
can be copied verbatim then edited to replace all occurences of FOO
|
||||
with the uppercase name of the new package and update the values of
|
||||
the standard variables.
|
||||
|
||||
17.16.3. About Dependencies Management
|
||||
|
||||
A crate can depend on other libraries from crates.io or git
|
||||
repositories, listed in its Cargo.toml file. Before starting a build,
|
||||
Cargo usually downloads automatically them. This step can also be
|
||||
performed independently, via the cargo fetch command.
|
||||
|
||||
Cargo maintains a local cache of the registry index and of git
|
||||
checkouts of the crates, whose location is given by $CARGO_HOME. As
|
||||
seen in the package Makefile example at line 15, this environment
|
||||
variable is set to $(HOST_DIR)/share/cargo.
|
||||
|
||||
This dependency download mechanism is not convenient when performing
|
||||
an offline build, as Cargo will fail to fetch the dependencies. In
|
||||
that case, it is advised to generate a tarball of the dependencies
|
||||
using the cargo vendor and add it to FOO_EXTRA_DOWNLOADS.
|
||||
|
||||
17.17. Infrastructure for packages building kernel modules
|
||||
|
||||
Buildroot offers a helper infrastructure to make it easy to write
|
||||
packages that build and install Linux kernel modules. Some packages
|
||||
@ -5501,7 +5730,7 @@ only contain a kernel module, other packages contain programs and
|
||||
libraries in addition to kernel modules. Buildroot’s helper
|
||||
infrastructure supports either case.
|
||||
|
||||
17.15.1. kernel-module tutorial
|
||||
17.17.1. kernel-module tutorial
|
||||
|
||||
Let’s start with an example on how to prepare a simple package that
|
||||
only builds a kernel module, and no other component:
|
||||
@ -5577,7 +5806,7 @@ libbar is enabled, the kernel module located in sub-directory driver/
|
||||
bar, and defines the variable KVERSION to be passed to the Linux
|
||||
buildsystem when building the module(s).
|
||||
|
||||
17.15.2. kernel-module reference
|
||||
17.17.2. kernel-module reference
|
||||
|
||||
The main macro for the kernel module infrastructure is kernel-module.
|
||||
Unlike other package infrastructures, it is not stand-alone, and
|
||||
@ -5625,7 +5854,7 @@ You may also reference (but you may not set!) those variables:
|
||||
* KERNEL_ARCH contains the name of the current architecture, like
|
||||
arm, mips…
|
||||
|
||||
17.16. Infrastructure for asciidoc documents
|
||||
17.18. Infrastructure for asciidoc documents
|
||||
|
||||
The Buildroot manual, which you are currently reading, is entirely
|
||||
written using the AsciiDoc [http://asciidoc.org/] mark-up syntax. The
|
||||
@ -5647,7 +5876,7 @@ Buildroot”. This allows documentation for a br2-external tree to
|
||||
match the Buildroot documentation, as it will be rendered to the same
|
||||
formats and use the same layout and theme.
|
||||
|
||||
17.16.1. asciidoc-document tutorial
|
||||
17.18.1. asciidoc-document tutorial
|
||||
|
||||
Whereas package infrastructures are suffixed with -package, the
|
||||
document infrastructures are suffixed with -document. So, the
|
||||
@ -5674,7 +5903,7 @@ structure.
|
||||
On line 8, we call the asciidoc-document function, which generates
|
||||
all the Makefile code necessary to render the document.
|
||||
|
||||
17.16.2. asciidoc-document reference
|
||||
17.18.2. asciidoc-document reference
|
||||
|
||||
The list of variables that can be set in a .mk file to give metadata
|
||||
information is (assuming the document name is foo) :
|
||||
@ -5689,7 +5918,7 @@ information is (assuming the document name is foo) :
|
||||
If a hook of your document needs to access the Kconfig structure,
|
||||
you may add prepare-kconfig to the list of dependencies.
|
||||
|
||||
There are also additional hooks (see Section 17.18, “Hooks available
|
||||
There are also additional hooks (see Section 17.20, “Hooks available
|
||||
in the various build steps” for general information on hooks), that a
|
||||
document may set to define extra actions to be done at various steps:
|
||||
|
||||
@ -5742,13 +5971,13 @@ Here is a complete example that uses all variables and all hooks:
|
||||
30:
|
||||
31: $(eval $(call asciidoc-document))
|
||||
|
||||
17.17. Infrastructure specific to the Linux kernel package
|
||||
17.19. Infrastructure specific to the Linux kernel package
|
||||
|
||||
The Linux kernel package can use some specific infrastructures based
|
||||
on package hooks for building Linux kernel tools or/and building
|
||||
Linux kernel extensions.
|
||||
|
||||
17.17.1. linux-kernel-tools
|
||||
17.19.1. linux-kernel-tools
|
||||
|
||||
Buildroot offers a helper infrastructure to build some userspace
|
||||
tools for the target available within the Linux kernel sources. Since
|
||||
@ -5825,7 +6054,7 @@ Note. One must not call $(eval $(generic-package)) or any other
|
||||
package infrastructure! Linux tools are not packages by themselves,
|
||||
they are part of the linux-tools package.
|
||||
|
||||
17.17.2. linux-kernel-extensions
|
||||
17.19.2. linux-kernel-extensions
|
||||
|
||||
Some packages provide new features that require the Linux kernel tree
|
||||
to be modified. This can be in the form of patches to be applied on
|
||||
@ -5880,10 +6109,10 @@ modify the Linux kernel tree; this is specific to the linux extension
|
||||
and can use the variables defined by the foo package, like: $
|
||||
(FOO_DIR) or $(FOO_VERSION)… as well as all the Linux variables,
|
||||
like: $(LINUX_VERSION) or $(LINUX_VERSION_PROBED), $(KERNEL_ARCH)…
|
||||
See the definition of those kernel variables Section 17.15.2,
|
||||
See the definition of those kernel variables Section 17.17.2,
|
||||
“kernel-module reference”.
|
||||
|
||||
17.18. Hooks available in the various build steps
|
||||
17.20. Hooks available in the various build steps
|
||||
|
||||
The generic infrastructure (and as a result also the derived
|
||||
autotools and cmake infrastructures) allow packages to specify hooks.
|
||||
@ -5928,7 +6157,7 @@ endef
|
||||
|
||||
LIBFOO_POST_PATCH_HOOKS += LIBFOO_POST_PATCH_FIXUP
|
||||
|
||||
17.18.1. Using the POST_RSYNC hook
|
||||
17.20.1. Using the POST_RSYNC hook
|
||||
|
||||
The POST_RSYNC hook is run only for packages that use a local source,
|
||||
either through the local site method or the OVERRIDE_SRCDIR
|
||||
@ -5948,14 +6177,14 @@ among others, use the following variables:
|
||||
* $(SRCDIR): the path to the overridden source directory
|
||||
* $(@D): the path to the build directory
|
||||
|
||||
17.18.2. Target-finalize hook
|
||||
17.20.2. Target-finalize hook
|
||||
|
||||
Packages may also register hooks in LIBFOO_TARGET_FINALIZE_HOOKS.
|
||||
These hooks are run after all packages are built, but before the
|
||||
filesystem images are generated. They are seldom used, and your
|
||||
package probably do not need them.
|
||||
|
||||
17.19. Gettext integration and interaction with packages
|
||||
17.21. Gettext integration and interaction with packages
|
||||
|
||||
Many packages that support internationalization use the gettext
|
||||
library. Dependencies for this library are fairly complicated and
|
||||
@ -6012,9 +6241,9 @@ package should:
|
||||
* not add any gettext dependency in the DEPENDENCIES variable of
|
||||
their .mk file.
|
||||
|
||||
17.20. Tips and tricks
|
||||
17.22. Tips and tricks
|
||||
|
||||
17.20.1. Package name, config entry name and makefile variable
|
||||
17.22.1. Package name, config entry name and makefile variable
|
||||
relationship
|
||||
|
||||
In Buildroot, there is some relationship between:
|
||||
@ -6038,7 +6267,7 @@ the following rules:
|
||||
. and - characters substituted with _ (e.g.:
|
||||
FOO_BAR_BOO_VERSION).
|
||||
|
||||
17.20.2. How to test your package
|
||||
17.22.2. How to test your package
|
||||
|
||||
Once you have added your new package, it is important that you test
|
||||
it under various conditions: does it build for all architectures?
|
||||
@ -6124,7 +6353,7 @@ help by running:
|
||||
|
||||
$ ./utils/test-pkg -h
|
||||
|
||||
17.20.3. How to add a package from GitHub
|
||||
17.22.3. How to add a package from GitHub
|
||||
|
||||
Packages on GitHub often don’t have a download area with release
|
||||
tarballs. However, it is possible to download tarballs directly from
|
||||
@ -6164,7 +6393,7 @@ tag:
|
||||
then it’s an automatically generated tarball and you should use
|
||||
the github helper function.
|
||||
|
||||
17.21. Conclusion
|
||||
17.23. Conclusion
|
||||
|
||||
As you can see, adding a software package to Buildroot is simply a
|
||||
matter of writing a Makefile using an existing example and modifying
|
||||
|
@ -9,10 +9,10 @@ Buildroot {sys:echo $\{BR2_VERSION%%-git*\}} manual generated on {localdate}
|
||||
|
||||
The Buildroot manual is written by the Buildroot developers.
|
||||
It is licensed under the GNU General Public License, version 2. Refer to the
|
||||
http://git.buildroot.org/buildroot/tree/COPYING[COPYING] file in the Buildroot
|
||||
sources for the full text of this license.
|
||||
http://git.buildroot.org/buildroot/tree/COPYING?id={sys:git rev-parse HEAD}[COPYING]
|
||||
file in the Buildroot sources for the full text of this license.
|
||||
|
||||
Copyright (C) 2004-2017 The Buildroot developers
|
||||
Copyright (C) 2004-2018 The Buildroot developers
|
||||
|
||||
image::logo.png[]
|
||||
|
||||
|
@ -23,8 +23,8 @@ between distributions).
|
||||
** +make+ (version 3.81 or any later)
|
||||
** +binutils+
|
||||
** +build-essential+ (only for Debian based systems)
|
||||
** +gcc+ (version 2.95 or any later)
|
||||
** `g++` (version 2.95 or any later)
|
||||
** +gcc+ (version 4.4 or any later)
|
||||
** `g++` (version 4.4 or any later)
|
||||
** +bash+
|
||||
** +patch+
|
||||
** +gzip+
|
||||
|
@ -12,11 +12,15 @@ The toolchain generated by Buildroot is located by default in
|
||||
+output/host/bin/+ to your PATH environment variable and then to
|
||||
use +ARCH-linux-gcc+, +ARCH-linux-objdump+, +ARCH-linux-ld+, etc.
|
||||
|
||||
It is possible to relocate the toolchain - but then +--sysroot+ must
|
||||
be passed every time the compiler is called to tell where the
|
||||
libraries and header files are.
|
||||
It is possible to relocate the toolchain, this allows to distribute
|
||||
the toolchain to other developers to build applications for your
|
||||
target. To achieve this:
|
||||
|
||||
* run +make sdk+, which prepares the toolchain to be relocatable;
|
||||
* tarball the contents of the +output/host+ directory;
|
||||
* distribute the resulting tarball.
|
||||
|
||||
Once the toolchain is installed to the new location, the user must run
|
||||
the +relocate-sdk.sh+ script to make sure all paths are updated with
|
||||
the new location.
|
||||
|
||||
It is also possible to generate the Buildroot toolchain in a directory
|
||||
other than +output/host+ by using the +Build options -> Host dir+
|
||||
option. This could be useful if the toolchain must be shared with
|
||||
other users.
|
||||
|
@ -1,6 +1,6 @@
|
||||
|
||||
The code and graphics on this website (and it's mirror sites, if any) are
|
||||
Copyright (c) 1999-2005 by Erik Andersen, 2006-2014 The Buildroot
|
||||
Copyright (c) 1999-2005 by Erik Andersen, 2006-2018 The Buildroot
|
||||
developers. All rights reserved.
|
||||
|
||||
Documents on this Web site including their graphical elements, design, and
|
||||
|
@ -78,8 +78,8 @@
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">Training</div>
|
||||
<div class="panel-body">
|
||||
<p><a href="http://www.free-electrons.com">Free Electrons</a> offers a
|
||||
complete <a href="http://free-electrons.com/training/buildroot/">3-days
|
||||
<p><a href="http://www.bootlin.com">Bootlin</a> (formerly Free Electrons)
|
||||
offers a complete <a href="http://bootlin.com/training/buildroot/">3-days
|
||||
training course on Buildroot</a>. They also make the training
|
||||
materials freely available:</p>
|
||||
|
||||
@ -89,7 +89,7 @@
|
||||
<div class="panel-heading">Slides preview</div>
|
||||
<div class="panel-body">
|
||||
<div id="slides" style="width: 100%; padding-bottom: 75%; position: relative">
|
||||
<a href="http://free-electrons.com/doc/training/buildroot/buildroot-slides.pdf"><img src="images/buildroot-slides.png" alt="buildroot slides" style="position:absolute; width:100%; height:100%; top:0; left:0;"></a>
|
||||
<a href="http://bootlin.com/doc/training/buildroot/buildroot-slides.pdf"><img src="images/buildroot-slides.png" alt="buildroot slides" style="position:absolute; width:100%; height:100%; top:0; left:0;"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -100,9 +100,9 @@
|
||||
<div class="panel-heading">Training materials</div>
|
||||
<div class="panel-body">
|
||||
<ul>
|
||||
<li><a href="http://free-electrons.com/doc/training/buildroot/buildroot-slides.pdf">slides (PDF)</a></li>
|
||||
<li><a href="http://free-electrons.com/doc/training/buildroot/buildroot-labs.pdf">practical labs (PDF)</a></li>
|
||||
<li><a href="http://free-electrons.com/doc/training/buildroot/buildroot-labs.tar.xz">practical labs data (.tar.xz)</a></li>
|
||||
<li><a href="http://bootlin.com/doc/training/buildroot/buildroot-slides.pdf">slides (PDF)</a></li>
|
||||
<li><a href="http://bootlin.com/doc/training/buildroot/buildroot-labs.pdf">practical labs (PDF)</a></li>
|
||||
<li><a href="http://bootlin.com/doc/training/buildroot/buildroot-labs.tar.xz">practical labs data (.tar.xz)</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -8,105 +8,105 @@
|
||||
<div class="panel-heading">Download</div>
|
||||
<div class="panel-body">
|
||||
|
||||
<h3 style="text-align: center;">Latest long term support release: <b>2017.02.8</b></h3>
|
||||
<h3 style="text-align: center;">Latest stable / long term support release: <b>2018.02</b></h3>
|
||||
|
||||
<div class="row mt centered">
|
||||
<div class="col-sm-6">
|
||||
<div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');">
|
||||
<div class="flipper">
|
||||
<div class="front">
|
||||
<a href="/downloads/buildroot-2017.02.8.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
<a href="/downloads/buildroot-2018.02.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
</div>
|
||||
<div class="back">
|
||||
<a href="/downloads/buildroot-2017.02.8.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
<a href="/downloads/buildroot-2018.02.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h3><a href="/downloads/buildroot-2017.02.8.tar.gz">buildroot-2017.02.8.tar.gz</a></h3>
|
||||
<p><a href="/downloads/buildroot-2017.02.8.tar.gz.sign">PGP signature</a></p>
|
||||
<h3><a href="/downloads/buildroot-2018.02.tar.gz">buildroot-2018.02.tar.gz</a></h3>
|
||||
<p><a href="/downloads/buildroot-2018.02.tar.gz.sign">PGP signature</a></p>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');">
|
||||
<div class="flipper">
|
||||
<div class="front">
|
||||
<a href="/downloads/buildroot-2017.02.8.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
<a href="/downloads/buildroot-2018.02.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
</div>
|
||||
<div class="back">
|
||||
<a href="/downloads/buildroot-2017.02.8.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
<a href="/downloads/buildroot-2018.02.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3><a href="/downloads/buildroot-2017.02.8.tar.bz2">buildroot-2017.02.8.tar.bz2</a></h3>
|
||||
<p><a href="/downloads/buildroot-2017.02.8.tar.bz2.sign">PGP signature</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 style="text-align: center;">Latest stable release: <b>2017.11</b></h3>
|
||||
|
||||
<div class="row mt centered">
|
||||
<div class="col-sm-6">
|
||||
<div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');">
|
||||
<div class="flipper">
|
||||
<div class="front">
|
||||
<a href="/downloads/buildroot-2017.11.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
</div>
|
||||
<div class="back">
|
||||
<a href="/downloads/buildroot-2017.11.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h3><a href="/downloads/buildroot-2017.11.tar.gz">buildroot-2017.11.tar.gz</a></h3>
|
||||
<p><a href="/downloads/buildroot-2017.11.tar.gz.sign">PGP signature</a></p>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');">
|
||||
<div class="flipper">
|
||||
<div class="front">
|
||||
<a href="/downloads/buildroot-2017.11.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
</div>
|
||||
<div class="back">
|
||||
<a href="/downloads/buildroot-2017.11.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3><a href="/downloads/buildroot-2017.11.tar.bz2">buildroot-2017.11.tar.bz2</a></h3>
|
||||
<p><a href="/downloads/buildroot-2017.11.tar.bz2.sign">PGP signature</a></p>
|
||||
<h3><a href="/downloads/buildroot-2018.02.tar.bz2">buildroot-2018.02.tar.bz2</a></h3>
|
||||
<p><a href="/downloads/buildroot-2018.02.tar.bz2.sign">PGP signature</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<h3 style="text-align: center;">Latest release candidate: <b>2017.11-rc2</b></h3>
|
||||
<h3 style="text-align: center;">Latest stable release: <b>2017.11.2</b></h3>
|
||||
|
||||
<div class="row mt centered">
|
||||
<div class="col-sm-6">
|
||||
<div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');">
|
||||
<div class="flipper">
|
||||
<div class="front">
|
||||
<a href="/downloads/buildroot-2017.11-rc2.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
<a href="/downloads/buildroot-2017.11.2.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
</div>
|
||||
<div class="back">
|
||||
<a href="/downloads/buildroot-2017.11-rc2.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
<a href="/downloads/buildroot-2017.11.2.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3><a href="/downloads/buildroot-2017.11-rc2.tar.gz">buildroot-2017.11-rc2.tar.gz</a></h3>
|
||||
<p><a href="/downloads/buildroot-2017.11-rc2.tar.gz.sign">PGP signature</a></p>
|
||||
<h3><a href="/downloads/buildroot-2017.11.2.tar.gz">buildroot-2017.11.2.tar.gz</a></h3>
|
||||
<p><a href="/downloads/buildroot-2017.11.2.tar.gz.sign">PGP signature</a></p>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');">
|
||||
<div class="flipper">
|
||||
<div class="front">
|
||||
<a href="/downloads/buildroot-2017.11-rc2.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
<a href="/downloads/buildroot-2017.11.2.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
</div>
|
||||
<div class="back">
|
||||
<a href="/downloads/buildroot-2017.11-rc2.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
<a href="/downloads/buildroot-2017.11.2.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3><a href="/downloads/buildroot-2017.11-rc2.tar.bz2">buildroot-2017.11-rc2.tar.bz2</a></h3>
|
||||
<p><a href="/downloads/buildroot-2017.11-rc2.tar.bz2.sign">PGP signature</a></p>
|
||||
<h3><a href="/downloads/buildroot-2017.11.2.tar.bz2">buildroot-2017.11.2.tar.bz2</a></h3>
|
||||
<p><a href="/downloads/buildroot-2017.11.2.tar.bz2.sign">PGP signature</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 style="text-align: center;">Latest release candidate: <b>2018.02-rc3</b></h3>
|
||||
<div class="row mt centered">
|
||||
<div class="col-sm-6">
|
||||
<div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');">
|
||||
<div class="flipper">
|
||||
<div class="front">
|
||||
<a href="/downloads/buildroot-2018.02-rc3.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
</div>
|
||||
<div class="back">
|
||||
<a href="/downloads/buildroot-2018.02-rc3.tar.gz"><img src="images/zip.png" width="180" alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3><a href="/downloads/buildroot-2018.02-rc3.tar.gz">buildroot-2018.02-rc3.tar.gz</a></h3>
|
||||
<p><a href="/downloads/buildroot-2018.02-rc3.tar.gz.sign">PGP signature</a></p>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="flip-container center-block" ontouchstart="this.classList.toggle('hover');">
|
||||
<div class="flipper">
|
||||
<div class="front">
|
||||
<a href="/downloads/buildroot-2018.02-rc3.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
</div>
|
||||
<div class="back">
|
||||
<a href="/downloads/buildroot-2018.02-rc3.tar.bz2"><img src="images/package.png" width="180" alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3><a href="/downloads/buildroot-2018.02-rc3.tar.bz2">buildroot-2018.02-rc3.tar.bz2</a></h3>
|
||||
<p><a href="/downloads/buildroot-2018.02-rc3.tar.bz2.sign">PGP signature</a></p>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
|
@ -78,7 +78,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4>Supports hundreds of packages</h4>
|
||||
<h4>Supports several thousand packages</h4>
|
||||
<p>X.org stack, Gtk3, Qt 5, GStreamer, Webkit, Kodi, a large number of network-related and system-related utilities are supported.</p>
|
||||
|
||||
</div><!--/col-lg-4 -->
|
||||
|
@ -90,5 +90,5 @@ jQuery(document).ready(function($) {
|
||||
load_activity("http://buildroot-busybox.2317881.n4.nabble.com/Buildroot-busybox-ft2.xml", "mailing-list-activity");
|
||||
load_activity("http://git.buildroot.org/buildroot/atom/?h=master", "commit-activity");
|
||||
|
||||
$('#slides').html('<iframe src="https://docs.google.com/gview?url=http://free-electrons.com/doc/training/buildroot/buildroot-slides.pdf&embedded=true" style="position:absolute; width:100%; height:100%; top:0; left:0;" frameborder="0"></iframe>')
|
||||
$('#slides').html('<iframe src="https://docs.google.com/gview?url=http://bootlin.com/doc/training/buildroot/buildroot-slides.pdf&embedded=true" style="position:absolute; width:100%; height:100%; top:0; left:0;" frameborder="0"></iframe>')
|
||||
});
|
||||
|
@ -9,6 +9,171 @@
|
||||
<h2>News</h2>
|
||||
<ul class="timeline">
|
||||
|
||||
<li>
|
||||
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
|
||||
<div class="timeline-panel">
|
||||
<div class="timeline-heading">
|
||||
<h4 class="timeline-title">2018.02 released</h4>
|
||||
<p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>4 March 2018</small></p>
|
||||
</div>
|
||||
<div class="timeline-body">
|
||||
<p>The stable 2018.02 release is out - Thanks to everyone
|
||||
contributing and testing the release candidates. See the
|
||||
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2018.02">CHANGES</a>
|
||||
file for more details
|
||||
and go to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2018.02.tar.bz2">2018.02 release</a>.</p>
|
||||
|
||||
<p>Notice that this is a long term support release which will be
|
||||
supported with security and other important fixes until February 2019.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="timeline-inverted">
|
||||
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
|
||||
<div class="timeline-panel">
|
||||
<div class="timeline-heading">
|
||||
<h4 class="timeline-title">2018.02-rc3 released</h4>
|
||||
<p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>27 February 2018</small></p>
|
||||
</div>
|
||||
<div class="timeline-body">
|
||||
<p>Release candidate 3 is out with more cleanups and security
|
||||
/ build fixes. See
|
||||
the <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2018.02-rc3">CHANGES</a>
|
||||
file for details.</p>
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to
|
||||
pick up
|
||||
the <a href="/downloads/buildroot-2018.02-rc3.tar.bz2">2018.02-rc3
|
||||
release candidate</a>, and report any problems found to
|
||||
the <a href="support.html">mailing list</a>
|
||||
or <a href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
|
||||
<div class="timeline-panel">
|
||||
<div class="timeline-heading">
|
||||
<h4 class="timeline-title">2018.02-rc2 released</h4>
|
||||
<p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>15 February 2018</small></p>
|
||||
</div>
|
||||
<div class="timeline-body">
|
||||
<p>Another week, another release candidate with more cleanups
|
||||
and build fixes. See the
|
||||
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2018.02-rc2">CHANGES</a>
|
||||
file for details.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2018.02-rc2.tar.bz2">2018.02-rc2
|
||||
release candidate</a>, and report any problems found to the
|
||||
<a href="support.html">mailing list</a> or
|
||||
<a href="https://bugs.buildroot.org">bug tracker</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="timeline-inverted">
|
||||
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
|
||||
<div class="timeline-panel">
|
||||
<div class="timeline-heading">
|
||||
<h4 class="timeline-title">2018.02-rc1 released</h4>
|
||||
<p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>5 February 2018</small></p>
|
||||
</div>
|
||||
<div class="timeline-body">
|
||||
<p>We have a new release candidate! Lots of changes all over the
|
||||
tree, see the
|
||||
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2018.02-rc1">CHANGES</a>
|
||||
file for details and read the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2018-February/213171.html">announcement</a>.
|
||||
</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2018.02-rc1.tar.bz2">2018.02-rc1
|
||||
release candidate</a>, and report any problems found to the
|
||||
<a href="support.html">mailing list</a> or
|
||||
<a href="https://bugs.buildroot.org">bug tracker</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
|
||||
<div class="timeline-panel">
|
||||
<div class="timeline-heading">
|
||||
<h4 class="timeline-title">2017.02.10 released</h4>
|
||||
<p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 January 2018</small></p>
|
||||
</div>
|
||||
<div class="timeline-body">
|
||||
<p>The 2017.02.10 bugfix release is out, fixing a number of important /
|
||||
security related issues discovered since the 2017.02.9 release. See the
|
||||
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2017.02.10">CHANGES</a>
|
||||
file for more details, read the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2018-January/212844.html">announcement</a>
|
||||
and go to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2017.02.10.tar.bz2">2017.02.10 release</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="timeline-inverted">
|
||||
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
|
||||
<div class="timeline-panel">
|
||||
<div class="timeline-heading">
|
||||
<h4 class="timeline-title">2017.11.2 released</h4>
|
||||
<p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>21 January 2018</small></p>
|
||||
</div>
|
||||
<div class="timeline-body">
|
||||
<p>The 2017.11.2 bugfix release is out, fixing a number of important /
|
||||
security related issues discovered since the 2017.11.1 release. See the
|
||||
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2017.11.2">CHANGES</a>
|
||||
file for more details, read the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2018-January/212069.html">announcement</a>
|
||||
and go to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2017.11.2.tar.bz2">2017.11.2 release</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
|
||||
<div class="timeline-panel">
|
||||
<div class="timeline-heading">
|
||||
<h4 class="timeline-title">2017.02.9 released</h4>
|
||||
<p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>1 January 2018</small></p>
|
||||
</div>
|
||||
<div class="timeline-body">
|
||||
<p>The 2017.02.9 bugfix release is out, fixing a number of important /
|
||||
security related issues discovered since the 2017.02.8 release. See the
|
||||
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2017.02.9">CHANGES</a>
|
||||
file for more details, read the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2018-January/210559.html">announcement</a>
|
||||
and go to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2017.02.9.tar.bz2">2017.02.9 release</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="timeline-inverted">
|
||||
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
|
||||
<div class="timeline-panel">
|
||||
<div class="timeline-heading">
|
||||
<h4 class="timeline-title">2017.11.1 released</h4>
|
||||
<p><small class="text-muted"><i class="glyphicon glyphicon-time"></i>31 December 2017</small></p>
|
||||
</div>
|
||||
<div class="timeline-body">
|
||||
<p>The 2017.11.1 bugfix release is out, fixing a number of important /
|
||||
security related issues discovered since the 2017.11 release. See the
|
||||
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2017.11.1">CHANGES</a>
|
||||
file for more details, read the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2017-December/210505.html">announcement</a>
|
||||
and go to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2017.11.1.tar.bz2">2017.11.1 release</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="timeline-badge"><i class="glyphicon glyphicon-thumbs-up"></i></div>
|
||||
<div class="timeline-panel">
|
||||
@ -20,7 +185,8 @@
|
||||
<p>The stable 2017.11 release is out - Thanks to everyone
|
||||
contributing and testing the release candidates. See the
|
||||
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2017.11">CHANGES</a>
|
||||
file for more details
|
||||
file for more details, read the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2017-December/208338.html">announcement</a>
|
||||
and go to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2017.11.tar.bz2">2017.11 release</a>.</p>
|
||||
</div>
|
||||
|
@ -21,8 +21,8 @@
|
||||
<div class="col-sm-8">
|
||||
<a href="http://www.google.com">Google</a> is
|
||||
sponsoring
|
||||
the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2017">Buildroot
|
||||
Developers Meeting at FOSDEM 2017</a> in Brussels, by
|
||||
the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2018">Buildroot
|
||||
Developers Meeting at FOSDEM 2018</a> in Brussels, by
|
||||
providing logistics for the meeting: a free meeting
|
||||
room and lunch for the participants.
|
||||
</div>
|
||||
@ -39,8 +39,8 @@
|
||||
</div>
|
||||
<div class="col-sm-8">
|
||||
As it did in previous years, <a href="http://www.mind.be">Mind</a>
|
||||
is sponsoring the Monday night dinner at the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2017">Buildroot
|
||||
Developers Meeting at FOSDEM 2017</a> in Brussels.
|
||||
is sponsoring the Monday night dinner at the <a href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2018">Buildroot
|
||||
Developers Meeting at FOSDEM 2018</a> in Brussels.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -83,9 +83,9 @@
|
||||
<div class="col-sm-12">
|
||||
<a href="http://www.mind.be">Mind</a> sponsored the
|
||||
dinner of the FOSDEM 2014, 2015, 2016 and 2017
|
||||
Developers Meeting (Brussels) and ELCE 2016 (Berlin),
|
||||
the meeting room and the dinner for the ELCE 2014
|
||||
Developers Meeting (Düsseldorf).
|
||||
Developers Meeting (Brussels) and ELCE 2016 (Berlin)
|
||||
and 2017 (Prague), and the meeting room and the dinner for
|
||||
the ELCE 2014 Developers Meeting (Düsseldorf).
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -101,8 +101,8 @@
|
||||
<div class="col-sm-12">
|
||||
<p><a href="http://www.google.com">Google</a> provided
|
||||
the logistics for the FOSDEM 2013, FOSDEM 2014,
|
||||
FOSDEM 2015 and FOSDEM 2016 Developer Days in
|
||||
Brussels, Belgium.</p>
|
||||
FOSDEM 2015, FOSDEM 2016 and FOSDEM 2017 Developer Days
|
||||
in Brussels, Belgium.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -11,6 +11,7 @@ source "fs/jffs2/Config.in"
|
||||
source "fs/romfs/Config.in"
|
||||
source "fs/squashfs/Config.in"
|
||||
source "fs/tar/Config.in"
|
||||
source "fs/ubi/Config.in"
|
||||
source "fs/ubifs/Config.in"
|
||||
source "fs/yaffs2/Config.in"
|
||||
|
||||
|
@ -10,4 +10,4 @@ define ROOTFS_AXFS_CMD
|
||||
$(HOST_DIR)/bin/mkfs.axfs -s -a $(TARGET_DIR) $@
|
||||
endef
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,axfs))
|
||||
$(eval $(rootfs))
|
||||
|
@ -11,4 +11,4 @@ define ROOTFS_CLOOP_CMD
|
||||
$(HOST_DIR)/bin/create_compressed_fs - 65536 > $@
|
||||
endef
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,cloop))
|
||||
$(eval $(rootfs))
|
||||
|
45
fs/common.mk
45
fs/common.mk
@ -19,10 +19,6 @@
|
||||
# ROOTFS_$(FSTYPE)_POST_GEN_HOOKS, a list of hooks to call after
|
||||
# generating the filesystem image
|
||||
#
|
||||
# ROOTFS_$(FSTYPE)_POST_TARGETS, the list of targets that should be
|
||||
# run after running the main filesystem target. This is useful for
|
||||
# initramfs, to rebuild the kernel once the initramfs is generated.
|
||||
#
|
||||
# In terms of configuration option, this macro assumes that the
|
||||
# BR2_TARGET_ROOTFS_$(FSTYPE) config option allows to enable/disable
|
||||
# the generation of a filesystem image of a particular type. If
|
||||
@ -31,16 +27,17 @@
|
||||
# BR2_TARGET_ROOTFS_$(FSTYPE)_LZMA exist and are enabled, then the
|
||||
# macro will automatically generate a compressed filesystem image.
|
||||
|
||||
FAKEROOT_SCRIPT = $(BUILD_DIR)/_fakeroot.fs
|
||||
FULL_DEVICE_TABLE = $(BUILD_DIR)/_device_table.txt
|
||||
FS_DIR = $(BUILD_DIR)/buildroot-fs
|
||||
FAKEROOT_SCRIPT = $(FS_DIR)/fakeroot.fs
|
||||
FULL_DEVICE_TABLE = $(FS_DIR)/device_table.txt
|
||||
ROOTFS_DEVICE_TABLES = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE) \
|
||||
$(BR2_ROOTFS_STATIC_DEVICE_TABLE))
|
||||
USERS_TABLE = $(BUILD_DIR)/_users_table.txt
|
||||
USERS_TABLE = $(FS_DIR)/users_table.txt
|
||||
ROOTFS_USERS_TABLES = $(call qstrip,$(BR2_ROOTFS_USERS_TABLES))
|
||||
|
||||
# Since this function will be called from within an $(eval ...)
|
||||
# all variable references except the arguments must be $$-quoted.
|
||||
define ROOTFS_TARGET_INTERNAL
|
||||
define inner-rootfs
|
||||
|
||||
# extra deps
|
||||
ROOTFS_$(2)_DEPENDENCIES += host-fakeroot host-makedevs \
|
||||
@ -59,6 +56,11 @@ ROOTFS_$(2)_DEPENDENCIES += host-lzma
|
||||
ROOTFS_$(2)_COMPRESS_EXT = .lzma
|
||||
ROOTFS_$(2)_COMPRESS_CMD = $$(LZMA) -9 -c
|
||||
endif
|
||||
ifeq ($$(BR2_TARGET_ROOTFS_$(2)_LZ4),y)
|
||||
ROOTFS_$(2)_DEPENDENCIES += host-lz4
|
||||
ROOTFS_$(2)_COMPRESS_EXT = .lz4
|
||||
ROOTFS_$(2)_COMPRESS_CMD = lz4 -l -9 -c
|
||||
endif
|
||||
ifeq ($$(BR2_TARGET_ROOTFS_$(2)_LZO),y)
|
||||
ROOTFS_$(2)_DEPENDENCIES += host-lzop
|
||||
ROOTFS_$(2)_COMPRESS_EXT = .lzo
|
||||
@ -72,10 +74,9 @@ endif
|
||||
|
||||
$$(BINARIES_DIR)/rootfs.$(1): target-finalize $$(ROOTFS_$(2)_DEPENDENCIES)
|
||||
@$$(call MESSAGE,"Generating root filesystem image rootfs.$(1)")
|
||||
rm -rf $(FS_DIR)
|
||||
mkdir -p $(FS_DIR)
|
||||
$$(foreach hook,$$(ROOTFS_$(2)_PRE_GEN_HOOKS),$$(call $$(hook))$$(sep))
|
||||
rm -f $$(FAKEROOT_SCRIPT)
|
||||
rm -f $$(TARGET_DIR_WARNING_FILE)
|
||||
rm -f $$(USERS_TABLE)
|
||||
echo '#!/bin/sh' > $$(FAKEROOT_SCRIPT)
|
||||
echo "set -e" >> $$(FAKEROOT_SCRIPT)
|
||||
echo "chown -h -R 0:0 $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
|
||||
@ -83,7 +84,7 @@ ifneq ($$(ROOTFS_USERS_TABLES),)
|
||||
cat $$(ROOTFS_USERS_TABLES) >> $$(USERS_TABLE)
|
||||
endif
|
||||
$$(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),)
|
||||
cat $$(ROOTFS_DEVICE_TABLES) > $$(FULL_DEVICE_TABLE)
|
||||
ifeq ($$(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
|
||||
@ -91,10 +92,10 @@ ifeq ($$(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
|
||||
endif
|
||||
endif
|
||||
$$(call PRINTF,$$(PACKAGES_PERMISSIONS_TABLE)) >> $$(FULL_DEVICE_TABLE)
|
||||
#echo "$$(HOST_DIR)/bin/makedevs -d $$(FULL_DEVICE_TABLE) $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
|
||||
echo "$$(HOST_DIR)/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))
|
||||
echo $$(EXTRA_ENV) $$(s) $$(TARGET_DIR) $$(BR2_ROOTFS_POST_SCRIPT_ARGS) >> $$(FAKEROOT_SCRIPT)$$(sep))
|
||||
$$(foreach hook,$$(ROOTFS_PRE_CMD_HOOKS),\
|
||||
$$(call PRINTF,$$($$(hook))) >> $$(FAKEROOT_SCRIPT)$$(sep))
|
||||
ifeq ($$(BR2_REPRODUCIBLE),y)
|
||||
@ -104,9 +105,9 @@ endif
|
||||
$$(foreach hook,$$(ROOTFS_POST_CMD_HOOKS),\
|
||||
$$(call PRINTF,$$($$(hook))) >> $$(FAKEROOT_SCRIPT)$$(sep))
|
||||
chmod a+x $$(FAKEROOT_SCRIPT)
|
||||
rm -f $$(TARGET_DIR_WARNING_FILE)
|
||||
PATH=$$(BR_PATH) $$(HOST_DIR)/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
|
||||
$$(INSTALL) -m 0644 support/misc/target-dir-warning.txt $$(TARGET_DIR_WARNING_FILE)
|
||||
-@rm -f $$(FAKEROOT_SCRIPT) $$(FULL_DEVICE_TABLE)
|
||||
ifneq ($$(ROOTFS_$(2)_COMPRESS_CMD),)
|
||||
PATH=$$(BR_PATH) $$(ROOTFS_$(2)_COMPRESS_CMD) $$@ > $$@$$(ROOTFS_$(2)_COMPRESS_EXT)
|
||||
endif
|
||||
@ -115,7 +116,7 @@ endif
|
||||
rootfs-$(1)-show-depends:
|
||||
@echo $$(ROOTFS_$(2)_DEPENDENCIES)
|
||||
|
||||
rootfs-$(1): $$(BINARIES_DIR)/rootfs.$(1) $$(ROOTFS_$(2)_POST_TARGETS)
|
||||
rootfs-$(1): $$(BINARIES_DIR)/rootfs.$(1)
|
||||
|
||||
.PHONY: rootfs-$(1) rootfs-$(1)-show-depends
|
||||
|
||||
@ -123,10 +124,16 @@ ifeq ($$(BR2_TARGET_ROOTFS_$(2)),y)
|
||||
TARGETS_ROOTFS += rootfs-$(1)
|
||||
PACKAGES += $$(filter-out rootfs-%,$$(ROOTFS_$(2)_DEPENDENCIES))
|
||||
endif
|
||||
|
||||
# Check for legacy POST_TARGETS rules
|
||||
ifneq ($$(ROOTFS_$(2)_POST_TARGETS),)
|
||||
$$(error Filesystem $(1) uses post-target rules, which are no longer supported.\
|
||||
Update $(1) to use post-gen hooks instead)
|
||||
endif
|
||||
|
||||
endef
|
||||
|
||||
define ROOTFS_TARGET
|
||||
$(call ROOTFS_TARGET_INTERNAL,$(1),$(call UPPERCASE,$(1)))
|
||||
endef
|
||||
# $(pkgname) also works well to return the filesystem name
|
||||
rootfs = $(call inner-rootfs,$(pkgname),$(call UPPERCASE,$(pkgname)))
|
||||
|
||||
include $(sort $(wildcard fs/*/*.mk))
|
||||
|
@ -31,6 +31,11 @@ config BR2_TARGET_ROOTFS_CPIO_BZIP2
|
||||
help
|
||||
Do compress the cpio filesystem with bzip2.
|
||||
|
||||
config BR2_TARGET_ROOTFS_CPIO_LZ4
|
||||
bool "lz4"
|
||||
help
|
||||
Do compress the cpio filesystem with lz4.
|
||||
|
||||
config BR2_TARGET_ROOTFS_CPIO_LZMA
|
||||
bool "lzma"
|
||||
help
|
||||
|
@ -31,12 +31,13 @@ define ROOTFS_CPIO_CMD
|
||||
cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $@
|
||||
endef
|
||||
|
||||
$(BINARIES_DIR)/rootfs.cpio.uboot: $(BINARIES_DIR)/rootfs.cpio host-uboot-tools
|
||||
$(MKIMAGE) -A $(MKIMAGE_ARCH) -T ramdisk \
|
||||
-C none -d $<$(ROOTFS_CPIO_COMPRESS_EXT) $@
|
||||
|
||||
ifeq ($(BR2_TARGET_ROOTFS_CPIO_UIMAGE),y)
|
||||
ROOTFS_CPIO_POST_TARGETS += $(BINARIES_DIR)/rootfs.cpio.uboot
|
||||
ROOTFS_CPIO_DEPENDENCIES += host-uboot-tools
|
||||
define ROOTFS_CPIO_UBOOT_MKIMAGE
|
||||
$(MKIMAGE) -A $(MKIMAGE_ARCH) -T ramdisk \
|
||||
-C none -d $@$(ROOTFS_CPIO_COMPRESS_EXT) $@.uboot
|
||||
endef
|
||||
ROOTFS_CPIO_POST_GEN_HOOKS += ROOTFS_CPIO_UBOOT_MKIMAGE
|
||||
endif
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,cpio))
|
||||
$(eval $(rootfs))
|
||||
|
@ -4,4 +4,4 @@
|
||||
exec 0</dev/console
|
||||
exec 1>/dev/console
|
||||
exec 2>/dev/console
|
||||
exec /sbin/init $*
|
||||
exec /sbin/init "$@"
|
||||
|
@ -16,4 +16,4 @@ endef
|
||||
|
||||
ROOTFS_CRAMFS_DEPENDENCIES = host-cramfs
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,cramfs))
|
||||
$(eval $(rootfs))
|
||||
|
@ -108,6 +108,11 @@ config BR2_TARGET_ROOTFS_EXT2_BZIP2
|
||||
help
|
||||
Do compress the ext2/3/4 filesystem with bzip2.
|
||||
|
||||
config BR2_TARGET_ROOTFS_EXT2_LZ4
|
||||
bool "lz4"
|
||||
help
|
||||
Do compress the ext2 filesystem with lz4.
|
||||
|
||||
config BR2_TARGET_ROOTFS_EXT2_LZMA
|
||||
bool "lzma"
|
||||
help
|
||||
|
@ -36,13 +36,11 @@ define ROOTFS_EXT2_CMD
|
||||
}
|
||||
endef
|
||||
|
||||
rootfs-ext2-symlink:
|
||||
ln -sf rootfs.ext2$(ROOTFS_EXT2_COMPRESS_EXT) $(BINARIES_DIR)/rootfs.ext$(BR2_TARGET_ROOTFS_EXT2_GEN)$(ROOTFS_EXT2_COMPRESS_EXT)
|
||||
|
||||
.PHONY: rootfs-ext2-symlink
|
||||
|
||||
ifneq ($(BR2_TARGET_ROOTFS_EXT2_GEN),2)
|
||||
ROOTFS_EXT2_POST_TARGETS += rootfs-ext2-symlink
|
||||
define ROOTFS_EXT2_SYMLINK
|
||||
ln -sf rootfs.ext2$(ROOTFS_EXT2_COMPRESS_EXT) $(BINARIES_DIR)/rootfs.ext$(BR2_TARGET_ROOTFS_EXT2_GEN)$(ROOTFS_EXT2_COMPRESS_EXT)
|
||||
endef
|
||||
ROOTFS_EXT2_POST_GEN_HOOKS += ROOTFS_EXT2_SYMLINK
|
||||
endif
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,ext2))
|
||||
$(eval $(rootfs))
|
||||
|
@ -5,17 +5,25 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ROOTFS_INITRAMFS_DEPENDENCIES += rootfs-cpio
|
||||
|
||||
ROOTFS_INITRAMFS_POST_TARGETS += linux-rebuild-with-initramfs
|
||||
|
||||
|
||||
# The generic fs infrastructure isn't very useful here.
|
||||
#
|
||||
# The initramfs image does not actually build an image; its only purpose is:
|
||||
# 1- to ensure rootfs.cpio is generated,
|
||||
# 2- to then rebuild the kernel with rootfs.cpio as initramfs
|
||||
#
|
||||
# Note: ordering of the dependencies is not guaranteed here, but in
|
||||
# linux/linux.mk, via the linux-rebuild-with-initramfs rule, which depends
|
||||
# on the rootfs-cpio filesystem rule.
|
||||
#
|
||||
# Note: the trick here is that we directly depend on rebuilding the Linux
|
||||
# kernel image (which itself depends on the rootfs-cpio rule), while we
|
||||
# advertise that our dependency is on the rootfs-cpio rule, which is
|
||||
# cleaner in the dependency graph.
|
||||
|
||||
rootfs-initramfs: $(ROOTFS_INITRAMFS_DEPENDENCIES) $(ROOTFS_INITRAMFS_POST_TARGETS)
|
||||
rootfs-initramfs: linux-rebuild-with-initramfs
|
||||
|
||||
rootfs-initramfs-show-depends:
|
||||
@echo $(ROOTFS_INITRAMFS_DEPENDENCIES)
|
||||
@echo rootfs-cpio
|
||||
|
||||
.PHONY: rootfs-initramfs rootfs-initramfs-show-depends
|
||||
|
||||
|
@ -63,6 +63,15 @@ config BR2_TARGET_ROOTFS_ISO9660_INITRD
|
||||
contain a kernel image, an initrd image (unless an initramfs
|
||||
linked into the kernel is used) and the bootloader.
|
||||
|
||||
config BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION
|
||||
bool "transparent compression"
|
||||
depends on !BR2_TARGET_ROOTFS_ISO9660_INITRD
|
||||
depends on !BR2_TARGET_ROOTFS_INITRAMFS
|
||||
help
|
||||
Say 'y' to enable use of transparent (de)compression. Files
|
||||
are stored compressed and will be decompressed on-the-fly
|
||||
upon access at runtime.
|
||||
|
||||
config BR2_TARGET_ROOTFS_ISO9660_HYBRID
|
||||
bool "Build hybrid image"
|
||||
depends on BR2_TARGET_ROOTFS_ISO9660_ISOLINUX
|
||||
|
@ -35,12 +35,24 @@ ROOTFS_ISO9660_USE_INITRD = YES
|
||||
endif
|
||||
|
||||
ifeq ($(ROOTFS_ISO9660_USE_INITRD),YES)
|
||||
ROOTFS_ISO9660_TARGET_DIR = $(BUILD_DIR)/rootfs.iso9660.tmp
|
||||
ROOTFS_ISO9660_TARGET_DIR = $(FS_DIR)/rootfs.iso9660.tmp
|
||||
define ROOTFS_ISO9660_CREATE_TEMPDIR
|
||||
$(RM) -rf $(ROOTFS_ISO9660_TARGET_DIR)
|
||||
mkdir -p $(ROOTFS_ISO9660_TARGET_DIR)
|
||||
endef
|
||||
ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_CREATE_TEMPDIR
|
||||
else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION),y)
|
||||
ROOTFS_ISO9660_DEPENDENCIES += host-zisofs-tools
|
||||
ROOTFS_ISO9660_TARGET_DIR = $(FS_DIR)/rootfs.iso9660.tmp
|
||||
# This must be early, before we copy the bootloader files.
|
||||
define ROOTFS_ISO9660_MKZFTREE
|
||||
$(RM) -rf $(ROOTFS_ISO9660_TARGET_DIR)
|
||||
$(HOST_DIR)/bin/mkzftree -X -z 9 -p $(PARALLEL_JOBS) \
|
||||
$(TARGET_DIR) \
|
||||
$(ROOTFS_ISO9660_TARGET_DIR)
|
||||
endef
|
||||
ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_MKZFTREE
|
||||
ROOTFS_ISO9660_GENISOIMAGE_OPTS += -z
|
||||
else
|
||||
ROOTFS_ISO9660_TARGET_DIR = $(TARGET_DIR)
|
||||
endif
|
||||
@ -81,14 +93,13 @@ define ROOTFS_ISO9660_DISABLE_EXTERNAL_INITRD
|
||||
$(SED) '/__INITRD_PATH__/d' $(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH)
|
||||
endef
|
||||
|
||||
ifeq ($(ROOTFS_ISO9660_USE_INITRD),YES)
|
||||
|
||||
# Copy the kernel to temporary filesystem
|
||||
define ROOTFS_ISO9660_COPY_KERNEL
|
||||
$(INSTALL) -D -m 0644 $(LINUX_IMAGE_PATH) \
|
||||
$(ROOTFS_ISO9660_TARGET_DIR)/boot/$(LINUX_IMAGE_NAME)
|
||||
endef
|
||||
|
||||
ifeq ($(ROOTFS_ISO9660_USE_INITRD),YES)
|
||||
ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_COPY_KERNEL
|
||||
|
||||
# If initramfs is used, disable loading the initrd as the rootfs is
|
||||
@ -108,6 +119,10 @@ ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_COPY_INITRD
|
||||
endif
|
||||
|
||||
else # ROOTFS_ISO9660_USE_INITRD
|
||||
ifeq ($(BR2_TARGET_ROOTFS_ISO9660_TRANSPARENT_COMPRESSION),y)
|
||||
# We must use the uncompressed kernel image
|
||||
ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_COPY_KERNEL
|
||||
endif
|
||||
|
||||
ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_DISABLE_EXTERNAL_INITRD
|
||||
|
||||
@ -117,6 +132,7 @@ endif # ROOTFS_ISO9660_USE_INITRD
|
||||
define ROOTFS_ISO9660_CMD
|
||||
$(HOST_DIR)/bin/genisoimage -J -R -b $(ROOTFS_ISO9660_BOOT_IMAGE) \
|
||||
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
||||
$(ROOTFS_ISO9660_GENISOIMAGE_OPTS) \
|
||||
-o $@ $(ROOTFS_ISO9660_TARGET_DIR)
|
||||
endef
|
||||
|
||||
@ -128,4 +144,4 @@ endef
|
||||
ROOTFS_ISO9660_POST_GEN_HOOKS += ROOTFS_ISO9660_GEN_HYBRID
|
||||
endif
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,iso9660))
|
||||
$(eval $(rootfs))
|
||||
|
@ -49,4 +49,4 @@ define ROOTFS_JFFS2_CMD
|
||||
endef
|
||||
endif
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,jffs2))
|
||||
$(eval $(rootfs))
|
||||
|
@ -10,4 +10,4 @@ define ROOTFS_ROMFS_CMD
|
||||
$(HOST_DIR)/bin/genromfs -d $(TARGET_DIR) -f $@
|
||||
endef
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,romfs))
|
||||
$(eval $(rootfs))
|
||||
|
@ -24,4 +24,4 @@ define ROOTFS_SQUASHFS_CMD
|
||||
$(HOST_DIR)/bin/mksquashfs $(TARGET_DIR) $@ $(ROOTFS_SQUASHFS_ARGS)
|
||||
endef
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,squashfs))
|
||||
$(eval $(rootfs))
|
||||
|
@ -26,6 +26,11 @@ config BR2_TARGET_ROOTFS_TAR_BZIP2
|
||||
help
|
||||
Do compress the tarball with bzip2.
|
||||
|
||||
config BR2_TARGET_ROOTFS_TAR_LZ4
|
||||
bool "lz4"
|
||||
help
|
||||
Do compress the tarball with lz4.
|
||||
|
||||
config BR2_TARGET_ROOTFS_TAR_LZMA
|
||||
bool "lzma"
|
||||
help
|
||||
|
@ -11,4 +11,4 @@ define ROOTFS_TAR_CMD
|
||||
tar $(TAR_OPTS) -cf $@ --null --no-recursion -T - --numeric-owner)
|
||||
endef
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,tar))
|
||||
$(eval $(rootfs))
|
||||
|
51
fs/ubi/Config.in
Normal file
51
fs/ubi/Config.in
Normal file
@ -0,0 +1,51 @@
|
||||
config BR2_TARGET_ROOTFS_UBI
|
||||
bool "ubi image containing an ubifs root filesystem"
|
||||
select BR2_TARGET_ROOTFS_UBIFS
|
||||
help
|
||||
Build an ubi image from the ubifs one (with ubinize).
|
||||
|
||||
if BR2_TARGET_ROOTFS_UBI
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI_PEBSIZE
|
||||
hex "physical eraseblock size"
|
||||
default 0x20000
|
||||
help
|
||||
Tells ubinize the physical eraseblock (PEB) size of the
|
||||
flash chip the ubi image is created for. The value provided
|
||||
here is passed to the -p/--peb-size option of ubinize.
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI_SUBSIZE
|
||||
int "sub-page size"
|
||||
default 512
|
||||
help
|
||||
Tells ubinize that the flash supports sub-pages and the sub-page
|
||||
size. Use 0 if sub-pages are not supported on flash chip.
|
||||
The value provided here is passed to the -s/--sub-page-size
|
||||
option of ubinize.
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG
|
||||
bool "Use custom config file"
|
||||
help
|
||||
Select this option to use a custom ubinize configuration file,
|
||||
rather than the default configuration used by Buildroot (which
|
||||
defines a single dynamic volume marked as auto-resize). Passing
|
||||
a custom ubinize configuration file allows you to create several
|
||||
volumes, specify volume types, etc.
|
||||
|
||||
As a convenience, buildroot replaces the string
|
||||
"BR2_ROOTFS_UBIFS_PATH" with the path to the built ubifs file.
|
||||
So the volume defined for the root filesystem can specify the
|
||||
image path as: image=BR2_ROOTFS_UBIFS_PATH
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE
|
||||
string "Configuration file path"
|
||||
depends on BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG
|
||||
help
|
||||
Path to the ubinize configuration file.
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI_OPTS
|
||||
string "Additional ubinize options"
|
||||
help
|
||||
Any additional ubinize options you may want to include.
|
||||
|
||||
endif # BR2_TARGET_ROOTFS_UBI
|
@ -17,7 +17,7 @@ ROOTFS_UBI_DEPENDENCIES = rootfs-ubifs
|
||||
ifeq ($(BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG),y)
|
||||
UBINIZE_CONFIG_FILE_PATH = $(call qstrip,$(BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE))
|
||||
else
|
||||
UBINIZE_CONFIG_FILE_PATH = fs/ubifs/ubinize.cfg
|
||||
UBINIZE_CONFIG_FILE_PATH = fs/ubi/ubinize.cfg
|
||||
endif
|
||||
|
||||
# don't use sed -i as it misbehaves on systems with SELinux enabled when this is
|
||||
@ -29,4 +29,4 @@ define ROOTFS_UBI_CMD
|
||||
rm $(BUILD_DIR)/ubinize.cfg
|
||||
endef
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,ubi))
|
||||
$(eval $(rootfs))
|
@ -95,55 +95,4 @@ config BR2_TARGET_ROOTFS_UBIFS_OPTS
|
||||
help
|
||||
Any additional mkfs.ubifs options you may want to include.
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI
|
||||
bool "Embed into an UBI image"
|
||||
help
|
||||
Build an ubi image from the ubifs one (with ubinize).
|
||||
|
||||
if BR2_TARGET_ROOTFS_UBI
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI_PEBSIZE
|
||||
hex "physical eraseblock size"
|
||||
default 0x20000
|
||||
help
|
||||
Tells ubinize the physical eraseblock (PEB) size of the
|
||||
flash chip the ubi image is created for. The value provided
|
||||
here is passed to the -p/--peb-size option of ubinize.
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI_SUBSIZE
|
||||
int "sub-page size"
|
||||
default 512
|
||||
help
|
||||
Tells ubinize that the flash supports sub-pages and the sub-page
|
||||
size. Use 0 if sub-pages are not supported on flash chip.
|
||||
The value provided here is passed to the -s/--sub-page-size
|
||||
option of ubinize.
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG
|
||||
bool "Use custom config file"
|
||||
help
|
||||
Select this option to use a custom ubinize configuration file,
|
||||
rather than the default configuration used by Buildroot (which
|
||||
defines a single dynamic volume marked as auto-resize). Passing
|
||||
a custom ubinize configuration file allows you to create several
|
||||
volumes, specify volume types, etc.
|
||||
|
||||
As a convenience, buildroot replaces the string
|
||||
"BR2_ROOTFS_UBIFS_PATH" with the path to the built ubifs file.
|
||||
So the volume defined for the root filesystem can specify the
|
||||
image path as: image=BR2_ROOTFS_UBIFS_PATH
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE
|
||||
string "Configuration file path"
|
||||
depends on BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG
|
||||
help
|
||||
Path to the ubinize configuration file.
|
||||
|
||||
config BR2_TARGET_ROOTFS_UBI_OPTS
|
||||
string "Additional ubinize options"
|
||||
help
|
||||
Any additional ubinize options you may want to include.
|
||||
|
||||
endif # BR2_TARGET_ROOTFS_UBI
|
||||
|
||||
endif # BR2_TARGET_ROOTFS_UBIFS
|
||||
|
@ -4,7 +4,10 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
UBIFS_OPTS := -e $(BR2_TARGET_ROOTFS_UBIFS_LEBSIZE) -c $(BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT) -m $(BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE)
|
||||
UBIFS_OPTS = \
|
||||
-e $(BR2_TARGET_ROOTFS_UBIFS_LEBSIZE) \
|
||||
-c $(BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT) \
|
||||
-m $(BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE)
|
||||
|
||||
ifeq ($(BR2_TARGET_ROOTFS_UBIFS_RT_ZLIB),y)
|
||||
UBIFS_OPTS += -x zlib
|
||||
@ -24,4 +27,4 @@ define ROOTFS_UBIFS_CMD
|
||||
$(HOST_DIR)/sbin/mkfs.ubifs -d $(TARGET_DIR) $(UBIFS_OPTS) -o $@
|
||||
endef
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,ubifs))
|
||||
$(eval $(rootfs))
|
||||
|
@ -10,4 +10,4 @@ define ROOTFS_YAFFS2_CMD
|
||||
$(HOST_DIR)/bin/mkyaffs2 --all-root $(TARGET_DIR) $@
|
||||
endef
|
||||
|
||||
$(eval $(call ROOTFS_TARGET,yaffs2))
|
||||
$(eval $(rootfs))
|
||||
|
@ -8,6 +8,10 @@ config BR2_LINUX_KERNEL
|
||||
|
||||
if BR2_LINUX_KERNEL
|
||||
|
||||
comment "Linux kernel in thumb mode may be broken with binutils >= 2.29"
|
||||
depends on BR2_arm || BR2_armeb
|
||||
depends on !BR2_BINUTILS_VERSION_2_28_X
|
||||
|
||||
# Packages that need to have a kernel with support for loadable modules,
|
||||
# but do not use the kernel-modules infrastructure, should select that
|
||||
# option.
|
||||
@ -26,10 +30,10 @@ choice
|
||||
prompt "Kernel version"
|
||||
|
||||
config BR2_LINUX_KERNEL_LATEST_VERSION
|
||||
bool "Latest version (4.13)"
|
||||
bool "Latest version (4.15)"
|
||||
|
||||
config BR2_LINUX_KERNEL_LATEST_CIP_VERSION
|
||||
bool "Latest CIP SLTS version (v4.4.83-cip8)"
|
||||
bool "Latest CIP SLTS version (v4.4.138-cip25)"
|
||||
help
|
||||
CIP launched in the spring of 2016 to address the needs of
|
||||
organizations in industries such as power generation and
|
||||
@ -116,8 +120,8 @@ endif
|
||||
|
||||
config BR2_LINUX_KERNEL_VERSION
|
||||
string
|
||||
default "4.13.16" if BR2_LINUX_KERNEL_LATEST_VERSION
|
||||
default "v4.4.83-cip8" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION
|
||||
default "4.15.16" if BR2_LINUX_KERNEL_LATEST_VERSION
|
||||
default "v4.4.138-cip25" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION
|
||||
default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
|
||||
if BR2_LINUX_KERNEL_CUSTOM_VERSION
|
||||
default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
|
||||
@ -284,7 +288,7 @@ endchoice
|
||||
choice
|
||||
prompt "Kernel compression format"
|
||||
help
|
||||
This selection will just ensure that the correct host tools are build.
|
||||
This selection will just ensure that the correct host tools are built.
|
||||
The actual compression for the kernel should be selected in the
|
||||
kernel configuration menu.
|
||||
|
||||
@ -363,40 +367,19 @@ config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
|
||||
config BR2_LINUX_KERNEL_APPENDED_DTB
|
||||
bool
|
||||
|
||||
choice
|
||||
prompt "Device tree source"
|
||||
default BR2_LINUX_KERNEL_USE_INTREE_DTS
|
||||
|
||||
config BR2_LINUX_KERNEL_USE_INTREE_DTS
|
||||
bool "Use a device tree present in the kernel"
|
||||
help
|
||||
Use a device tree source distributed with
|
||||
the kernel sources. The dts files are located
|
||||
in the arch/<arch>/boot/dts folder.
|
||||
|
||||
config BR2_LINUX_KERNEL_USE_CUSTOM_DTS
|
||||
bool "Use a custom device tree file"
|
||||
help
|
||||
Use a custom device tree file, i.e, a device
|
||||
tree file that does not belong to the kernel
|
||||
source tree.
|
||||
endchoice
|
||||
|
||||
config BR2_LINUX_KERNEL_INTREE_DTS_NAME
|
||||
string "Device Tree Source file names"
|
||||
depends on BR2_LINUX_KERNEL_USE_INTREE_DTS
|
||||
string "In-tree Device Tree Source file names"
|
||||
help
|
||||
Name of the device tree source file, without
|
||||
Name of in-tree device tree source file, without
|
||||
the trailing .dts. You can provide a list of
|
||||
dts files to build, separated by spaces.
|
||||
|
||||
config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH
|
||||
string "Device Tree Source file paths"
|
||||
depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS
|
||||
string "Out-of-tree Device Tree Source file paths"
|
||||
help
|
||||
Path to the device tree source files. You can
|
||||
provide a list of dts paths to copy and build,
|
||||
separated by spaces.
|
||||
Path to to out-of-tree device tree source files.
|
||||
You can provide a list of dts paths to copy and
|
||||
build, separated by spaces.
|
||||
|
||||
endif
|
||||
|
||||
@ -412,6 +395,32 @@ config BR2_LINUX_KERNEL_INSTALL_TARGET
|
||||
/boot if DTBs have been generated by the kernel build
|
||||
process.
|
||||
|
||||
config BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL
|
||||
bool "Needs host OpenSSL"
|
||||
help
|
||||
Some Linux kernel configuration options (such as
|
||||
CONFIG_SYSTEM_TRUSTED_KEYRING) require building a host
|
||||
program called extract-cert, which itself needs
|
||||
OpenSSL. Enabling this option will ensure host-openssl gets
|
||||
built before the Linux kernel.
|
||||
|
||||
Enable this option if you get a Linux kernel build failure
|
||||
such as "scripts/extract-cert.c:21:25: fatal error:
|
||||
openssl/bio.h: No such file or directory".
|
||||
|
||||
config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF
|
||||
bool "Needs host libelf"
|
||||
help
|
||||
Some Linux kernel configuration options (such as
|
||||
CONFIG_UNWINDER_ORC) require building a host program that
|
||||
needs libelf. Enabling this option will ensure host-elfutils
|
||||
(which provides libelf) gets built before the Linux kernel.
|
||||
|
||||
Enable this option if you get a Linux kernel build failure
|
||||
such as "Cannot generate ORC metadata for
|
||||
CONFIG_UNWINDER_ORC=y, please install libelf-dev,
|
||||
libelf-devel or elfutils-libelf-devel".
|
||||
|
||||
# Linux extensions
|
||||
source "linux/Config.ext.in"
|
||||
|
||||
|
@ -80,6 +80,14 @@ LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZMA) += CONFIG_KERNEL_LZMA
|
||||
LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZO) += CONFIG_KERNEL_LZO
|
||||
LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_XZ) += CONFIG_KERNEL_XZ
|
||||
|
||||
ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL),y)
|
||||
LINUX_DEPENDENCIES += host-openssl
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF),y)
|
||||
LINUX_DEPENDENCIES += host-elfutils
|
||||
endif
|
||||
|
||||
# If host-uboot-tools is selected by the user, assume it is needed to
|
||||
# create a custom image
|
||||
ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS),y)
|
||||
@ -95,8 +103,7 @@ LINUX_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL)
|
||||
endif
|
||||
|
||||
LINUX_MAKE_FLAGS = \
|
||||
HOSTCC="$(HOSTCC)" \
|
||||
HOSTCFLAGS="$(HOSTCFLAGS)" \
|
||||
HOSTCC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS)" \
|
||||
ARCH=$(KERNEL_ARCH) \
|
||||
INSTALL_MOD_PATH=$(TARGET_DIR) \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
@ -118,15 +125,13 @@ endif
|
||||
# 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`
|
||||
|
||||
ifeq ($(BR2_LINUX_KERNEL_USE_INTREE_DTS),y)
|
||||
KERNEL_DTS_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_INTREE_DTS_NAME))
|
||||
else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),y)
|
||||
KERNEL_DTS_NAME += $(call qstrip,$(BR2_LINUX_KERNEL_INTREE_DTS_NAME))
|
||||
|
||||
# We keep only the .dts files, so that the user can specify both .dts
|
||||
# and .dtsi files in BR2_LINUX_KERNEL_CUSTOM_DTS_PATH. Both will be
|
||||
# copied to arch/<arch>/boot/dts, but only the .dts files will
|
||||
# actually be generated as .dtb.
|
||||
KERNEL_DTS_NAME = $(basename $(filter %.dts,$(notdir $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)))))
|
||||
endif
|
||||
KERNEL_DTS_NAME += $(basename $(filter %.dts,$(notdir $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)))))
|
||||
|
||||
KERNEL_DTBS = $(addsuffix .dtb,$(KERNEL_DTS_NAME))
|
||||
|
||||
@ -150,9 +155,9 @@ LINUX_IMAGE_NAME = zImage.epapr
|
||||
else ifeq ($(BR2_LINUX_KERNEL_APPENDED_ZIMAGE),y)
|
||||
LINUX_IMAGE_NAME = zImage
|
||||
else ifeq ($(BR2_LINUX_KERNEL_CUIMAGE),y)
|
||||
LINUX_IMAGE_NAME = cuImage.$(KERNEL_DTS_NAME)
|
||||
LINUX_IMAGE_NAME = cuImage.$(firstword $(KERNEL_DTS_NAME))
|
||||
else ifeq ($(BR2_LINUX_KERNEL_SIMPLEIMAGE),y)
|
||||
LINUX_IMAGE_NAME = simpleImage.$(KERNEL_DTS_NAME)
|
||||
LINUX_IMAGE_NAME = simpleImage.$(firstword $(KERNEL_DTS_NAME))
|
||||
else ifeq ($(BR2_LINUX_KERNEL_IMAGE),y)
|
||||
LINUX_IMAGE_NAME = Image
|
||||
else ifeq ($(BR2_LINUX_KERNEL_LINUX_BIN),y)
|
||||
@ -230,7 +235,14 @@ LINUX_KCONFIG_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE))
|
||||
endif
|
||||
LINUX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES))
|
||||
LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
|
||||
LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
|
||||
|
||||
# LINUX_MAKE_FLAGS overrides HOSTCC to allow the kernel build to find our
|
||||
# host-openssl and host-libelf. However, this triggers a bug in the kconfig
|
||||
# build script that causes it to build with /usr/include/ncurses.h (which is
|
||||
# typically wchar) but link with $(HOST_DIR)/lib/libncurses.so (which is not).
|
||||
# We don't actually need any host-package for kconfig, so remove the HOSTCC
|
||||
# override again.
|
||||
LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS) HOSTCC="$(HOSTCC)"
|
||||
|
||||
# If no package has yet set it, set it from the Kconfig option
|
||||
LINUX_NEEDS_MODULES ?= $(BR2_LINUX_NEEDS_MODULES)
|
||||
@ -280,6 +292,8 @@ define LINUX_KCONFIG_FIXUP_CMDS
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_ENABLE_DEFAULT_TRACERS,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_PERF_EVENTS,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_FUNCTION_TRACER,$(@D)/.config))
|
||||
$(if $(BR2_PACKAGE_LINUX_TOOLS_PERF),
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_PERF_EVENTS,$(@D)/.config))
|
||||
$(if $(BR2_PACKAGE_SYSTEMD),
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS,$(@D)/.config)
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_INOTIFY_USER,$(@D)/.config)
|
||||
@ -362,8 +376,9 @@ endif
|
||||
# Compilation. We make sure the kernel gets rebuilt when the
|
||||
# configuration has changed.
|
||||
define LINUX_BUILD_CMDS
|
||||
$(if $(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),
|
||||
cp -f $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)) $(KERNEL_ARCH_PATH)/boot/dts/)
|
||||
@for dts in $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)); do \
|
||||
cp -f $${dts} $(KERNEL_ARCH_PATH)/boot/dts/ ; \
|
||||
done
|
||||
$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME)
|
||||
@if grep -q "CONFIG_MODULES=y" $(@D)/.config; then \
|
||||
$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ; \
|
||||
@ -474,9 +489,9 @@ $(error No kernel configuration file specified, check your BR2_LINUX_KERNEL_CUST
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT)$(KERNEL_DTS_NAME),y)
|
||||
ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT):$(strip $(KERNEL_DTS_NAME)),y:)
|
||||
$(error No kernel device tree source specified, check your \
|
||||
BR2_LINUX_KERNEL_USE_INTREE_DTS / BR2_LINUX_KERNEL_USE_CUSTOM_DTS settings)
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME / BR2_LINUX_KERNEL_CUSTOM_DTS_PATH settings)
|
||||
endif
|
||||
|
||||
endif # BR_BUILDING
|
||||
@ -484,18 +499,17 @@ endif # BR_BUILDING
|
||||
$(eval $(kconfig-package))
|
||||
|
||||
# Support for rebuilding the kernel after the cpio archive has
|
||||
# been generated in $(BINARIES_DIR)/rootfs.cpio.
|
||||
$(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LINUX_DIR)/.stamp_images_installed $(BINARIES_DIR)/rootfs.cpio
|
||||
# been generated.
|
||||
.PHONY: linux-rebuild-with-initramfs
|
||||
linux-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_target_installed
|
||||
linux-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_images_installed
|
||||
linux-rebuild-with-initramfs: rootfs-cpio
|
||||
linux-rebuild-with-initramfs:
|
||||
@$(call MESSAGE,"Rebuilding kernel with initramfs")
|
||||
# Build the kernel.
|
||||
$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME)
|
||||
$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) $(LINUX_TARGET_NAME)
|
||||
$(LINUX_APPEND_DTB)
|
||||
# Copy the kernel image(s) to its(their) final destination
|
||||
$(call LINUX_INSTALL_IMAGE,$(BINARIES_DIR))
|
||||
# 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)
|
||||
$(Q)touch $@
|
||||
|
||||
# The initramfs building code must make sure this target gets called
|
||||
# after it generated the initramfs list of files.
|
||||
linux-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_initramfs_rebuilt
|
||||
|
@ -27,7 +27,6 @@ menu "Audio and video applications"
|
||||
source "package/jack2/Config.in"
|
||||
source "package/kodi/Config.in"
|
||||
source "package/lame/Config.in"
|
||||
source "package/libwebcam/Config.in"
|
||||
source "package/madplay/Config.in"
|
||||
source "package/mimic/Config.in"
|
||||
source "package/miraclecast/Config.in"
|
||||
@ -47,7 +46,6 @@ menu "Audio and video applications"
|
||||
source "package/opus-tools/Config.in"
|
||||
source "package/pulseaudio/Config.in"
|
||||
source "package/sox/Config.in"
|
||||
source "package/streameye/Config.in"
|
||||
source "package/squeezelite/Config.in"
|
||||
source "package/tidsp-binaries/Config.in"
|
||||
source "package/tovid/Config.in"
|
||||
@ -65,6 +63,7 @@ menu "Audio and video applications"
|
||||
endmenu
|
||||
|
||||
menu "Compressors and decompressors"
|
||||
source "package/brotli/Config.in"
|
||||
source "package/bzip2/Config.in"
|
||||
source "package/gzip/Config.in"
|
||||
source "package/lz4/Config.in"
|
||||
@ -126,6 +125,7 @@ menu "Debugging, profiling and benchmark"
|
||||
source "package/stress-ng/Config.in"
|
||||
source "package/sysdig/Config.in"
|
||||
source "package/sysprof/Config.in"
|
||||
source "package/tcf-agent/Config.in"
|
||||
source "package/tinymembench/Config.in"
|
||||
source "package/trace-cmd/Config.in"
|
||||
source "package/trinity/Config.in"
|
||||
@ -191,6 +191,7 @@ menu "Filesystem and flash utilities"
|
||||
source "package/mtd/Config.in"
|
||||
source "package/mtools/Config.in"
|
||||
source "package/nfs-utils/Config.in"
|
||||
source "package/nilfs-utils/Config.in"
|
||||
source "package/ntfs-3g/Config.in"
|
||||
source "package/sp-oops-extract/Config.in"
|
||||
source "package/squashfs/Config.in"
|
||||
@ -243,6 +244,7 @@ menu "Games"
|
||||
source "package/prboom/Config.in"
|
||||
source "package/rubix/Config.in"
|
||||
source "package/sl/Config.in"
|
||||
source "package/solarus/Config.in"
|
||||
source "package/stella/Config.in"
|
||||
source "package/supertux/Config.in"
|
||||
source "package/supertuxkart/Config.in"
|
||||
@ -360,6 +362,7 @@ endmenu
|
||||
menu "Hardware handling"
|
||||
menu "Firmware"
|
||||
source "package/am33x-cm3/Config.in"
|
||||
source "package/armbian-firmware/Config.in"
|
||||
source "package/b43-firmware/Config.in"
|
||||
source "package/linux-firmware/Config.in"
|
||||
source "package/rpi-bt-firmware/Config.in"
|
||||
@ -382,6 +385,7 @@ endmenu
|
||||
source "package/avrdude/Config.in"
|
||||
source "package/bcache-tools/Config.in"
|
||||
source "package/biosdevname/Config.in"
|
||||
source "package/brltty/Config.in"
|
||||
source "package/cbootimage/Config.in"
|
||||
source "package/cc-tool/Config.in"
|
||||
source "package/cdrkit/Config.in"
|
||||
@ -404,7 +408,6 @@ endmenu
|
||||
source "package/dvb-apps/Config.in"
|
||||
source "package/dvbsnoop/Config.in"
|
||||
source "package/edid-decode/Config.in"
|
||||
source "package/eeprog/Config.in"
|
||||
source "package/eudev/Config.in"
|
||||
source "package/ev3dev-linux-drivers/Config.in"
|
||||
source "package/evemu/Config.in"
|
||||
@ -436,7 +439,6 @@ endmenu
|
||||
source "package/irda-utils/Config.in"
|
||||
source "package/iucode-tool/Config.in"
|
||||
source "package/kbd/Config.in"
|
||||
source "package/lan951x-led-ctl/Config.in"
|
||||
source "package/lcdproc/Config.in"
|
||||
source "package/libuio/Config.in"
|
||||
source "package/libump/Config.in"
|
||||
@ -481,12 +483,13 @@ endmenu
|
||||
source "package/pulseview/Config.in"
|
||||
source "package/read-edid/Config.in"
|
||||
source "package/rng-tools/Config.in"
|
||||
source "package/rpi-armmem/Config.in"
|
||||
source "package/rpi-userland/Config.in"
|
||||
source "package/rs485conf/Config.in"
|
||||
source "package/rtl8188eu/Config.in"
|
||||
source "package/rtl8723bs/Config.in"
|
||||
source "package/rtl8723bu/Config.in"
|
||||
source "package/rtl8821au/Config.in"
|
||||
source "package/rtl8189fs/Config.in"
|
||||
source "package/sane-backends/Config.in"
|
||||
source "package/sdparm/Config.in"
|
||||
source "package/setserial/Config.in"
|
||||
@ -604,8 +607,11 @@ menu "Lua libraries/modules"
|
||||
source "package/lua-sdl2/Config.in"
|
||||
source "package/lua-stdlib/Config.in"
|
||||
source "package/lua-testmore/Config.in"
|
||||
source "package/lua-utf8/Config.in"
|
||||
source "package/luabitop/Config.in"
|
||||
source "package/luacrypto/Config.in"
|
||||
source "package/luadbi/Config.in"
|
||||
source "package/luadbi-sqlite3/Config.in"
|
||||
source "package/luaexpat/Config.in"
|
||||
source "package/luaexpatutils/Config.in"
|
||||
source "package/luafilesystem/Config.in"
|
||||
@ -765,6 +771,7 @@ menu "External python modules"
|
||||
source "package/python-enum/Config.in"
|
||||
source "package/python-enum34/Config.in"
|
||||
source "package/python-flask/Config.in"
|
||||
source "package/python-flask-cors/Config.in"
|
||||
source "package/python-flask-babel/Config.in"
|
||||
source "package/python-flask-jsonrpc/Config.in"
|
||||
source "package/python-flask-login/Config.in"
|
||||
@ -793,6 +800,7 @@ menu "External python modules"
|
||||
source "package/python-ipython-genutils/Config.in"
|
||||
source "package/python-iso8601/Config.in"
|
||||
source "package/python-itsdangerous/Config.in"
|
||||
source "package/python-jaraco-classes/Config.in"
|
||||
source "package/python-jinja2/Config.in"
|
||||
source "package/python-jsonschema/Config.in"
|
||||
source "package/python-json-schema-validator/Config.in"
|
||||
@ -810,6 +818,7 @@ menu "External python modules"
|
||||
source "package/python-mbstrdecoder/Config.in"
|
||||
source "package/python-meld3/Config.in"
|
||||
source "package/python-mistune/Config.in"
|
||||
source "package/python-more-itertools/Config.in"
|
||||
source "package/python-msgpack/Config.in"
|
||||
source "package/python-mutagen/Config.in"
|
||||
source "package/python-mwclient/Config.in"
|
||||
@ -820,6 +829,7 @@ menu "External python modules"
|
||||
source "package/python-networkmanager/Config.in"
|
||||
source "package/python-nfc/Config.in"
|
||||
source "package/python-numpy/Config.in"
|
||||
source "package/python-oauthlib/Config.in"
|
||||
source "package/python-paho-mqtt/Config.in"
|
||||
source "package/python-pam/Config.in"
|
||||
source "package/python-paramiko/Config.in"
|
||||
@ -829,7 +839,6 @@ menu "External python modules"
|
||||
source "package/python-pathvalidate/Config.in"
|
||||
source "package/python-pexpect/Config.in"
|
||||
source "package/python-pickleshare/Config.in"
|
||||
source "package/python-picamera/Config.in"
|
||||
source "package/python-pillow/Config.in"
|
||||
source "package/python-portend/Config.in"
|
||||
source "package/python-posix-ipc/Config.in"
|
||||
@ -844,7 +853,6 @@ menu "External python modules"
|
||||
source "package/python-pycli/Config.in"
|
||||
source "package/python-pycparser/Config.in"
|
||||
source "package/python-pycrypto/Config.in"
|
||||
source "package/python-pycurl/Config.in"
|
||||
source "package/python-pydal/Config.in"
|
||||
source "package/python-pyelftools/Config.in"
|
||||
source "package/python-pyftpdlib/Config.in"
|
||||
@ -852,10 +860,8 @@ menu "External python modules"
|
||||
source "package/python-pygments/Config.in"
|
||||
source "package/python-pyicu/Config.in"
|
||||
source "package/python-pyinotify/Config.in"
|
||||
source "package/python-pyjwt/Config.in"
|
||||
source "package/python-pylibftdi/Config.in"
|
||||
source "package/python-pylru/Config.in"
|
||||
source "package/python-pymongo/Config.in"
|
||||
source "package/python-pymysql/Config.in"
|
||||
source "package/python-pynacl/Config.in"
|
||||
source "package/python-pyopenssl/Config.in"
|
||||
@ -883,14 +889,19 @@ menu "External python modules"
|
||||
source "package/python-pyxb/Config.in"
|
||||
source "package/python-pyyaml/Config.in"
|
||||
source "package/python-pyzmq/Config.in"
|
||||
source "package/python-redis/Config.in"
|
||||
source "package/python-raven/Config.in"
|
||||
source "package/python-remi/Config.in"
|
||||
source "package/python-requests/Config.in"
|
||||
source "package/python-requests-oauthlib/Config.in"
|
||||
source "package/python-requests-toolbelt/Config.in"
|
||||
source "package/python-rpi-gpio/Config.in"
|
||||
source "package/python-rtslib-fb/Config.in"
|
||||
source "package/python-scandir/Config.in"
|
||||
source "package/python-scapy3k/Config.in"
|
||||
source "package/python-schedule/Config.in"
|
||||
source "package/python-sdnotify/Config.in"
|
||||
source "package/python-secretstorage/Config.in"
|
||||
source "package/python-see/Config.in"
|
||||
source "package/python-serial/Config.in"
|
||||
source "package/python-service-identity/Config.in"
|
||||
source "package/python-setproctitle/Config.in"
|
||||
@ -910,6 +921,7 @@ menu "External python modules"
|
||||
source "package/python-sortedcontainers//Config.in"
|
||||
source "package/python-spidev/Config.in"
|
||||
source "package/python-systemd/Config.in"
|
||||
source "package/python-tabledata/Config.in"
|
||||
source "package/python-tempora/Config.in"
|
||||
source "package/python-typepy/Config.in"
|
||||
source "package/python-thrift/Config.in"
|
||||
@ -920,6 +932,7 @@ menu "External python modules"
|
||||
source "package/python-treq/Config.in"
|
||||
source "package/python-twisted/Config.in"
|
||||
source "package/python-txaio/Config.in"
|
||||
source "package/python-txtorcon/Config.in"
|
||||
source "package/python-u-msgpack/Config.in"
|
||||
source "package/python-ubjson/Config.in"
|
||||
source "package/python-ujson/Config.in"
|
||||
@ -935,6 +948,7 @@ menu "External python modules"
|
||||
source "package/python-whoosh/Config.in"
|
||||
source "package/python-ws4py/Config.in"
|
||||
source "package/python-wsaccel/Config.in"
|
||||
source "package/python-xlib/Config.in"
|
||||
source "package/python-xlrd/Config.in"
|
||||
source "package/python-xlsxwriter/Config.in"
|
||||
source "package/python-xlutils/Config.in"
|
||||
@ -1046,6 +1060,7 @@ menu "Crypto"
|
||||
source "package/tinydtls/Config.in"
|
||||
source "package/trousers/Config.in"
|
||||
source "package/ustream-ssl/Config.in"
|
||||
source "package/wolfssl/Config.in"
|
||||
endmenu
|
||||
|
||||
menu "Database"
|
||||
@ -1123,6 +1138,7 @@ menu "Graphics"
|
||||
source "package/libglew/Config.in"
|
||||
source "package/libglfw/Config.in"
|
||||
source "package/libglu/Config.in"
|
||||
source "package/libgta/Config.in"
|
||||
source "package/libgtk2/Config.in"
|
||||
source "package/libgtk3/Config.in"
|
||||
source "package/libmediaart/Config.in"
|
||||
@ -1152,8 +1168,10 @@ menu "Graphics"
|
||||
source "package/tiff/Config.in"
|
||||
source "package/wayland/Config.in"
|
||||
source "package/wayland-protocols/Config.in"
|
||||
source "package/waylandpp/Config.in"
|
||||
source "package/webkitgtk/Config.in"
|
||||
source "package/webp/Config.in"
|
||||
source "package/woff2/Config.in"
|
||||
source "package/zbar/Config.in"
|
||||
source "package/zxing-cpp/Config.in"
|
||||
endmenu
|
||||
@ -1249,6 +1267,7 @@ menu "JSON/XML"
|
||||
source "package/jose/Config.in"
|
||||
source "package/jsmn/Config.in"
|
||||
source "package/json-c/Config.in"
|
||||
source "package/json-for-modern-cpp/Config.in"
|
||||
source "package/json-glib/Config.in"
|
||||
source "package/jsoncpp/Config.in"
|
||||
source "package/libbson/Config.in"
|
||||
@ -1282,6 +1301,7 @@ menu "Logging"
|
||||
source "package/log4cplus/Config.in"
|
||||
source "package/log4cpp/Config.in"
|
||||
source "package/log4cxx/Config.in"
|
||||
source "package/opentracing-cpp/Config.in"
|
||||
source "package/zlog/Config.in"
|
||||
endmenu
|
||||
|
||||
@ -1331,7 +1351,9 @@ menu "Networking"
|
||||
source "package/canfestival/Config.in"
|
||||
source "package/cgic/Config.in"
|
||||
source "package/cppzmq/Config.in"
|
||||
source "package/curlpp/Config.in"
|
||||
source "package/czmq/Config.in"
|
||||
source "package/daq/Config.in"
|
||||
source "package/filemq/Config.in"
|
||||
source "package/flickcurl/Config.in"
|
||||
source "package/fmlib/Config.in"
|
||||
@ -1347,6 +1369,7 @@ menu "Networking"
|
||||
source "package/libcgi/Config.in"
|
||||
source "package/libcgicc/Config.in"
|
||||
source "package/libcoap/Config.in"
|
||||
source "package/libcpprestsdk/Config.in"
|
||||
source "package/libcurl/Config.in"
|
||||
source "package/libdnet/Config.in"
|
||||
source "package/libeXosip2/Config.in"
|
||||
@ -1391,6 +1414,7 @@ menu "Networking"
|
||||
source "package/libtirpc/Config.in"
|
||||
source "package/libtorrent/Config.in"
|
||||
source "package/libupnp/Config.in"
|
||||
source "package/libupnp18/Config.in"
|
||||
source "package/libupnpp/Config.in"
|
||||
source "package/liburiparser/Config.in"
|
||||
source "package/libvncserver/Config.in"
|
||||
@ -1443,6 +1467,8 @@ menu "Other"
|
||||
source "package/elfutils/Config.in"
|
||||
source "package/fftw/Config.in"
|
||||
source "package/flann/Config.in"
|
||||
source "package/flatbuffers/Config.in"
|
||||
source "package/gconf/Config.in"
|
||||
source "package/gflags/Config.in"
|
||||
source "package/glibmm/Config.in"
|
||||
source "package/glm/Config.in"
|
||||
@ -1533,6 +1559,7 @@ menu "Security"
|
||||
source "package/libselinux/Config.in"
|
||||
source "package/libsemanage/Config.in"
|
||||
source "package/libsepol/Config.in"
|
||||
source "package/safeclib/Config.in"
|
||||
endmenu
|
||||
|
||||
menu "Text and terminal handling"
|
||||
@ -1588,6 +1615,7 @@ menu "Miscellaneous"
|
||||
source "package/linux-syscall-support/Config.in"
|
||||
source "package/mcrypt/Config.in"
|
||||
source "package/mobile-broadband-provider-info/Config.in"
|
||||
source "package/proj/Config.in"
|
||||
source "package/qemu/Config.in"
|
||||
source "package/qpdf/Config.in"
|
||||
source "package/shared-mime-info/Config.in"
|
||||
@ -1598,6 +1626,7 @@ endmenu
|
||||
|
||||
menu "Networking applications"
|
||||
source "package/aircrack-ng/Config.in"
|
||||
source "package/aoetools/Config.in"
|
||||
source "package/apache/Config.in"
|
||||
source "package/argus/Config.in"
|
||||
source "package/arp-scan/Config.in"
|
||||
@ -1632,6 +1661,7 @@ menu "Networking applications"
|
||||
source "package/crda/Config.in"
|
||||
source "package/ctorrent/Config.in"
|
||||
source "package/cups/Config.in"
|
||||
source "package/cups-filters/Config.in"
|
||||
source "package/dante/Config.in"
|
||||
source "package/darkhttpd/Config.in"
|
||||
source "package/dhcp/Config.in"
|
||||
@ -1652,6 +1682,7 @@ menu "Networking applications"
|
||||
source "package/freeswitch/Config.in"
|
||||
source "package/freeswitch-mod-bcg729/Config.in"
|
||||
source "package/gesftpserver/Config.in"
|
||||
source "package/glorytun/Config.in"
|
||||
source "package/gupnp-tools/Config.in"
|
||||
source "package/gutenprint/Config.in"
|
||||
source "package/hans/Config.in"
|
||||
@ -1696,6 +1727,7 @@ menu "Networking applications"
|
||||
source "package/linuxptp/Config.in"
|
||||
source "package/lldpd/Config.in"
|
||||
source "package/lrzsz/Config.in"
|
||||
source "package/lynx/Config.in"
|
||||
source "package/macchanger/Config.in"
|
||||
source "package/memcached/Config.in"
|
||||
source "package/mii-diag/Config.in"
|
||||
@ -1740,6 +1772,7 @@ endif
|
||||
source "package/odhcp6c/Config.in"
|
||||
source "package/odhcploc/Config.in"
|
||||
source "package/olsr/Config.in"
|
||||
source "package/open-lldp/Config.in"
|
||||
source "package/open-plc-utils/Config.in"
|
||||
source "package/openntpd/Config.in"
|
||||
source "package/openobex/Config.in"
|
||||
@ -1749,6 +1782,7 @@ endif
|
||||
source "package/p910nd/Config.in"
|
||||
source "package/phidgetwebservice/Config.in"
|
||||
source "package/phytool/Config.in"
|
||||
source "package/pimd/Config.in"
|
||||
source "package/pound/Config.in"
|
||||
source "package/pppd/Config.in"
|
||||
source "package/pptp-linux/Config.in"
|
||||
@ -1769,6 +1803,7 @@ endif
|
||||
source "package/rsync/Config.in"
|
||||
source "package/rtorrent/Config.in"
|
||||
source "package/rtptools/Config.in"
|
||||
source "package/rygel/Config.in"
|
||||
source "package/s6-dns/Config.in"
|
||||
source "package/s6-networking/Config.in"
|
||||
source "package/samba4/Config.in"
|
||||
@ -1798,6 +1833,7 @@ endif
|
||||
source "package/tinyhttpd/Config.in"
|
||||
source "package/tn5250/Config.in"
|
||||
source "package/tor/Config.in"
|
||||
source "package/traceroute/Config.in"
|
||||
source "package/transmission/Config.in"
|
||||
source "package/tunctl/Config.in"
|
||||
source "package/tvheadend/Config.in"
|
||||
@ -1912,6 +1948,7 @@ menu "System tools"
|
||||
source "package/debianutils/Config.in"
|
||||
source "package/docker-containerd/Config.in"
|
||||
source "package/docker-engine/Config.in"
|
||||
source "package/docker-proxy/Config.in"
|
||||
source "package/dsp-tools/Config.in"
|
||||
source "package/efibootmgr/Config.in"
|
||||
source "package/efivar/Config.in"
|
||||
@ -1926,6 +1963,7 @@ menu "System tools"
|
||||
source "package/keyutils/Config.in"
|
||||
source "package/kmod/Config.in"
|
||||
source "package/kvmtool/Config.in"
|
||||
source "package/libostree/Config.in"
|
||||
source "package/lxc/Config.in"
|
||||
source "package/monit/Config.in"
|
||||
source "package/ncdu/Config.in"
|
||||
|
@ -2,6 +2,7 @@ menu "Host utilities"
|
||||
|
||||
source "package/aespipe/Config.in.host"
|
||||
source "package/android-tools/Config.in.host"
|
||||
source "package/cargo/Config.in.host"
|
||||
source "package/cbootimage/Config.in.host"
|
||||
source "package/checkpolicy/Config.in.host"
|
||||
source "package/cmake/Config.in.host"
|
||||
@ -18,6 +19,7 @@ menu "Host utilities"
|
||||
source "package/genext2fs/Config.in.host"
|
||||
source "package/genimage/Config.in.host"
|
||||
source "package/genpart/Config.in.host"
|
||||
source "package/gnupg/Config.in.host"
|
||||
source "package/go/Config.in.host"
|
||||
source "package/go-bootstrap/Config.in.host"
|
||||
source "package/google-breakpad/Config.in.host"
|
||||
@ -45,6 +47,7 @@ menu "Host utilities"
|
||||
source "package/qemu/Config.in.host"
|
||||
source "package/raspberrypi-usbboot/Config.in.host"
|
||||
source "package/rauc/Config.in.host"
|
||||
source "package/rustc/Config.in.host"
|
||||
source "package/s6-rc/Config.in.host"
|
||||
source "package/sam-ba/Config.in.host"
|
||||
source "package/squashfs/Config.in.host"
|
||||
|
@ -138,11 +138,37 @@ ifeq ($(BR2_DEBUG_3),y)
|
||||
TARGET_DEBUGGING = -g3
|
||||
endif
|
||||
|
||||
TARGET_CFLAGS_RELRO = -Wl,-z,relro
|
||||
TARGET_CFLAGS_RELRO_FULL = -Wl,-z,now $(TARGET_CFLAGS_RELRO)
|
||||
|
||||
TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS))
|
||||
|
||||
ifeq ($(BR2_SSP_REGULAR),y)
|
||||
TARGET_CPPFLAGS += -fstack-protector
|
||||
else ifeq ($(BR2_SSP_STRONG),y)
|
||||
TARGET_CPPFLAGS += -fstack-protector-strong
|
||||
else ifeq ($(BR2_SSP_ALL),y)
|
||||
TARGET_CPPFLAGS += -fstack-protector-all
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_RELRO_PARTIAL),y)
|
||||
TARGET_CPPFLAGS += $(TARGET_CFLAGS_RELRO)
|
||||
TARGET_LDFLAGS += $(TARGET_CFLAGS_RELRO)
|
||||
else ifeq ($(BR2_RELRO_FULL),y)
|
||||
TARGET_CPPFLAGS += -fPIE $(TARGET_CFLAGS_RELRO_FULL)
|
||||
TARGET_LDFLAGS += -pie
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_FORTIFY_SOURCE_1),y)
|
||||
TARGET_CPPFLAGS += -D_FORTIFY_SOURCE=1
|
||||
else ifeq ($(BR2_FORTIFY_SOURCE_2),y)
|
||||
TARGET_CPPFLAGS += -D_FORTIFY_SOURCE=2
|
||||
endif
|
||||
|
||||
TARGET_CPPFLAGS += -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
|
||||
TARGET_CFLAGS = $(TARGET_CPPFLAGS) $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
|
||||
TARGET_CXXFLAGS = $(TARGET_CFLAGS)
|
||||
TARGET_FCFLAGS = $(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
|
||||
TARGET_LDFLAGS = $(call qstrip,$(BR2_TARGET_LDFLAGS))
|
||||
|
||||
ifeq ($(BR2_BINFMT_FLAT),y)
|
||||
TARGET_CFLAGS += $(if $($(PKG)_FLAT_STACKSIZE),-Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\
|
||||
@ -167,20 +193,6 @@ TARGET_FCFLAGS += -msep-data
|
||||
TARGET_CXXFLAGS += -msep-data
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_SSP_REGULAR),y)
|
||||
TARGET_CFLAGS += -fstack-protector
|
||||
TARGET_CXXFLAGS += -fstack-protector
|
||||
TARGET_FCFLAGS += -fstack-protector
|
||||
else ifeq ($(BR2_SSP_STRONG),y)
|
||||
TARGET_CFLAGS += -fstack-protector-strong
|
||||
TARGET_CXXFLAGS += -fstack-protector-strong
|
||||
TARGET_FCFLAGS += -fstack-protector-strong
|
||||
else ifeq ($(BR2_SSP_ALL),y)
|
||||
TARGET_CFLAGS += -fstack-protector-all
|
||||
TARGET_CXXFLAGS += -fstack-protector-all
|
||||
TARGET_FCFLAGS += -fstack-protector-all
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
|
||||
TARGET_CROSS = $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-
|
||||
else
|
||||
@ -230,7 +242,7 @@ HOST_LDFLAGS += -L$(HOST_DIR)/lib -Wl,-rpath,$(HOST_DIR)/lib
|
||||
# Exit code chooses option. "$$TMP" is can be used as temporary file and
|
||||
# is automatically cleaned up.
|
||||
try-run = $(shell set -e; \
|
||||
TMP="$$(tempfile)"; \
|
||||
TMP="$$(mktemp)"; \
|
||||
if ($(1)) >/dev/null 2>&1; \
|
||||
then echo "$(2)"; \
|
||||
else echo "$(3)"; \
|
||||
@ -397,8 +409,16 @@ else
|
||||
NLS_OPTS = --disable-nls
|
||||
endif
|
||||
|
||||
# We need anything that is invalid. Traditionally, we'd have used 'false' (and
|
||||
# we did so in the past). However, that breaks libtool for packages that have
|
||||
# optional C++ support (e.g. gnutls), because libtool will *require* a *valid*
|
||||
# C++ preprocessor as long as CXX is not 'no'.
|
||||
# Now, whether we use 'no' or 'false' for CXX as the same side effect: it is an
|
||||
# invalid C++ compiler, and thus will cause detection of C++ to fail (which is
|
||||
# expected and what we want), while at the same time taming libtool into
|
||||
# silence.
|
||||
ifneq ($(BR2_INSTALL_LIBSTDCPP),y)
|
||||
TARGET_CONFIGURE_OPTS += CXX=false
|
||||
TARGET_CONFIGURE_OPTS += CXX=no
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_STATIC_LIBS),y)
|
||||
|
32
package/acl/0001-Build-with-old-GCC-versions.patch
Normal file
32
package/acl/0001-Build-with-old-GCC-versions.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From a42519dceef0493ece45538375ae1791313f16d3 Mon Sep 17 00:00:00 2001
|
||||
From: Hollis Blanchard <hollis_blanchard@mentor.com>
|
||||
Date: Mon, 30 Jul 2018 14:29:46 -0700
|
||||
Subject: [PATCH] Remove pragmas inside functions
|
||||
|
||||
GCC 4.4.7, as found in RHEL6, reports:
|
||||
libacl/acl_from_text.c:307: error: #pragma GCC diagnostic not allowed inside functions
|
||||
|
||||
Signed-off-by: Hollis Blanchard <hollis_blanchard@mentor.com>
|
||||
---
|
||||
libacl/acl_from_text.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/libacl/acl_from_text.c b/libacl/acl_from_text.c
|
||||
index 09790c9..fb6bc07 100644
|
||||
--- a/libacl/acl_from_text.c
|
||||
+++ b/libacl/acl_from_text.c
|
||||
@@ -304,11 +304,8 @@ parse_acl_entry(const char **text_p, acl_t *acl_p)
|
||||
create_entry:
|
||||
if (acl_create_entry(acl_p, &entry_d) != 0)
|
||||
return -1;
|
||||
-#pragma GCC diagnostic push
|
||||
-#pragma GCC diagnostic ignored "-Waddress"
|
||||
if (acl_copy_entry(entry_d, int2ext(&entry_obj)) != 0)
|
||||
return -1;
|
||||
-#pragma GCC diagnostic pop
|
||||
return 0;
|
||||
|
||||
fail:
|
||||
--
|
||||
2.13.0
|
||||
|
@ -1,29 +0,0 @@
|
||||
Support installation of .a file when doing static linking
|
||||
|
||||
When doing static linking (i.e ENABLE_SHARED != yes), the acl build
|
||||
logic wasn't installing any library at all, not even the .a file which
|
||||
is needed for static linking. This patch fixes that.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/include/buildmacros
|
||||
===================================================================
|
||||
--- a/include/buildmacros
|
||||
+++ b/include/buildmacros
|
||||
@@ -97,7 +97,15 @@
|
||||
|
||||
INSTALL_LTLIB_STATIC = \
|
||||
cd $(TOPDIR)/$(LIBNAME)/.libs; \
|
||||
- ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR);
|
||||
+ ../$(INSTALL) -m 755 -d $(PKG_DEVLIB_DIR); \
|
||||
+ ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).la $(PKG_DEVLIB_DIR); \
|
||||
+ ../$(INSTALL) -m 644 $(LIBNAME).la $(PKG_DEVLIB_DIR)/$(LIBNAME).la ; \
|
||||
+ ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \
|
||||
+ ../$(INSTALL) -T so_base $(LIBNAME).la $(PKG_LIB_DIR); \
|
||||
+ if test "x$(PKG_DEVLIB_DIR)" != "x$(PKG_LIB_DIR)" ; then \
|
||||
+ ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \
|
||||
+ ../$(INSTALL) -S $(PKG_DEVLIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \
|
||||
+ fi
|
||||
|
||||
INSTALL_MAN = \
|
||||
@for d in $(MAN_PAGES); do \
|
@ -1,292 +0,0 @@
|
||||
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 **)"ed_str, "ed_str_len,
|
||||
+ if (__acl_high_water_alloc((void **)"ed_str, "ed_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
|
||||
|
@ -1,2 +1,2 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
sha256 179074bb0580c06c4b4137be4c5a92a701583277967acdb5546043c7874e0d23 acl-2.2.52.src.tar.gz
|
||||
sha256 06be9865c6f418d851ff4494e12406568353b891ffe1f596b34693c387af26c7 acl-2.2.53.tar.gz
|
||||
|
@ -4,54 +4,18 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ACL_VERSION = 2.2.52
|
||||
ACL_SOURCE = acl-$(ACL_VERSION).src.tar.gz
|
||||
ACL_VERSION = 2.2.53
|
||||
ACL_SITE = http://download.savannah.gnu.org/releases/acl
|
||||
ACL_INSTALL_STAGING = YES
|
||||
ACL_DEPENDENCIES = attr
|
||||
ACL_CONF_OPTS = --enable-gettext=no
|
||||
ACL_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (libraries)
|
||||
ACL_LICENSE_FILES = doc/COPYING doc/COPYING.LGPL
|
||||
|
||||
# While the configuration system uses autoconf, the Makefiles are
|
||||
# hand-written and do not use automake. Therefore, we have to hack
|
||||
# around their deficiencies by:
|
||||
# - explicitly passing CFLAGS (LDFLAGS are passed on from configure,
|
||||
# CFLAGS are not).
|
||||
# - explicitly passing the installation prefix, not using DESTDIR.
|
||||
|
||||
ACL_MAKE_ENV = CFLAGS="$(TARGET_CFLAGS)"
|
||||
|
||||
ACL_INSTALL_STAGING_OPTS = \
|
||||
prefix=$(STAGING_DIR)/usr \
|
||||
exec_prefix=$(STAGING_DIR)/usr \
|
||||
PKG_DEVLIB_DIR=$(STAGING_DIR)/usr/lib \
|
||||
install-dev install-lib
|
||||
|
||||
ACL_INSTALL_TARGET_OPTS = \
|
||||
prefix=$(TARGET_DIR)/usr \
|
||||
exec_prefix=$(TARGET_DIR)/usr \
|
||||
install install-lib
|
||||
|
||||
# The libdir variable in libacl.la is empty, so let's fix it. This is
|
||||
# probably due to acl not using automake, and not doing fully the
|
||||
# right thing with libtool.
|
||||
define ACL_FIX_LIBTOOL_LA_LIBDIR
|
||||
$(SED) "s,libdir=.*,libdir='$(STAGING_DIR)'," \
|
||||
$(STAGING_DIR)/usr/lib/libacl.la
|
||||
endef
|
||||
|
||||
ACL_POST_INSTALL_STAGING_HOOKS += ACL_FIX_LIBTOOL_LA_LIBDIR
|
||||
|
||||
ACL_DEPENDENCIES = attr
|
||||
HOST_ACL_DEPENDENCIES = host-attr
|
||||
HOST_ACL_CONF_OPTS = --enable-gettext=no
|
||||
HOST_ACL_MAKE_ENV = CFLAGS="$(HOST_CFLAGS)"
|
||||
HOST_ACL_INSTALL_OPTS = \
|
||||
prefix=$(HOST_DIR) \
|
||||
exec_prefix=$(HOST_DIR) \
|
||||
PKG_DEVLIB_DIR=$(HOST_DIR)/lib \
|
||||
install-dev install-lib
|
||||
# For the host, libacl.la is correct, no fixup needed.
|
||||
|
||||
ACL_INSTALL_STAGING = YES
|
||||
|
||||
ACL_CONF_OPTS = --disable-nls
|
||||
HOST_ACL_CONF_OPTS = --disable-nls
|
||||
|
||||
$(eval $(autotools-package))
|
||||
$(eval $(host-autotools-package))
|
||||
|
@ -15,9 +15,15 @@ define ACPID_INSTALL_INIT_SYSV
|
||||
$(TARGET_DIR)/etc/init.d/S02acpid
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_INIT_SYSV)$(BR2_INIT_SYSTEMD),y)
|
||||
ACPID_POWEROFF_CMD = /sbin/shutdown -hP now
|
||||
else
|
||||
ACPID_POWEROFF_CMD = /sbin/poweroff
|
||||
endif
|
||||
|
||||
define ACPID_SET_EVENTS
|
||||
mkdir -p $(TARGET_DIR)/etc/acpi/events
|
||||
printf "event=button[ /]power\naction=/sbin/poweroff\n" \
|
||||
printf 'event=button[ /]power\naction=%s\n' '$(ACPID_POWEROFF_CMD)' \
|
||||
>$(TARGET_DIR)/etc/acpi/events/powerbtn
|
||||
endef
|
||||
|
||||
|
@ -1,33 +0,0 @@
|
||||
Fix musl-related build errors in packages depending on alsa, in our case
|
||||
this fixes openal.
|
||||
|
||||
Downloaded from
|
||||
http://git.alpinelinux.org/cgit/aports/tree/main/alsa-lib/alsa-lib_pcm_h.patch
|
||||
|
||||
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||||
|
||||
--- alsa-lib-1.0.25/include/pcm.h
|
||||
+++ alsa-lib-1.0.25.patched/include/pcm.h
|
||||
@@ -33,6 +33,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
+#include <stdint.h>
|
||||
/**
|
||||
* \defgroup PCM PCM Interface
|
||||
* See the \ref pcm page for more details.
|
||||
@@ -941,10 +942,10 @@
|
||||
int snd_pcm_format_physical_width(snd_pcm_format_t format); /* in bits */
|
||||
snd_pcm_format_t snd_pcm_build_linear_format(int width, int pwidth, int unsignd, int big_endian);
|
||||
ssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples);
|
||||
-u_int8_t snd_pcm_format_silence(snd_pcm_format_t format);
|
||||
-u_int16_t snd_pcm_format_silence_16(snd_pcm_format_t format);
|
||||
-u_int32_t snd_pcm_format_silence_32(snd_pcm_format_t format);
|
||||
-u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format);
|
||||
+uint8_t snd_pcm_format_silence(snd_pcm_format_t format);
|
||||
+uint16_t snd_pcm_format_silence_16(snd_pcm_format_t format);
|
||||
+uint32_t snd_pcm_format_silence_32(snd_pcm_format_t format);
|
||||
+uint64_t snd_pcm_format_silence_64(snd_pcm_format_t format);
|
||||
int snd_pcm_format_set_silence(snd_pcm_format_t format, void *buf, unsigned int samples);
|
||||
|
||||
snd_pcm_sframes_t snd_pcm_bytes_to_frames(snd_pcm_t *pcm, ssize_t bytes);
|
@ -1,52 +0,0 @@
|
||||
From da16e18f03fc63e1206b93d6a719b177d4f4bb99 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Fri, 11 Aug 2017 22:33:01 +0200
|
||||
Subject: [PATCH] src/rawmidi/rawmidi_symbols.c: use rawmidi_virt only when
|
||||
available
|
||||
|
||||
src/rawmidi/Makefile.am only brings rawmidi_virt.c into the build when
|
||||
BUILD_SEQ is defined (i.e when --enable-seq is passed). However,
|
||||
rawmidi_symbols.c unconditionally refers to _snd_module_rawmidi_virt,
|
||||
defined in rawmidi_virt.c.
|
||||
|
||||
This causes a link failure when BUILD_SEQ is disabled. For example
|
||||
when linking ffmpeg against alsa-lib:
|
||||
|
||||
/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libasound.a(pcm_dmix.o): In function `snd_pcm_dmix_sync_ptr':
|
||||
pcm_dmix.c:(.text+0x83c): warning:
|
||||
/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libasound.a(rawmidi_symbols.o):(.data+0x4): undefined reference to `_snd_module_rawmidi_virt'
|
||||
collect2: error: ld returned 1 exit status
|
||||
|
||||
To fix this, we make sure that rawmidi_symbols.c only uses
|
||||
_snd_module_rawmidi_virt when available.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Patch sent upstream: https://www.spinics.net/lists/alsa-devel/msg65902.html
|
||||
---
|
||||
src/rawmidi/rawmidi_symbols.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/rawmidi/rawmidi_symbols.c b/src/rawmidi/rawmidi_symbols.c
|
||||
index cdc06d7..6473433 100644
|
||||
--- a/src/rawmidi/rawmidi_symbols.c
|
||||
+++ b/src/rawmidi/rawmidi_symbols.c
|
||||
@@ -21,11 +21,15 @@
|
||||
#ifndef PIC
|
||||
|
||||
extern const char *_snd_module_rawmidi_hw;
|
||||
+#ifdef BUILD_SEQ
|
||||
extern const char *_snd_module_rawmidi_virt;
|
||||
+#endif
|
||||
|
||||
static const char **snd_rawmidi_open_objects[] = {
|
||||
&_snd_module_rawmidi_hw,
|
||||
+#ifdef BUILD_SEQ
|
||||
&_snd_module_rawmidi_virt
|
||||
+#endif
|
||||
};
|
||||
|
||||
void *snd_rawmidi_open_symbols(void)
|
||||
--
|
||||
2.9.4
|
||||
|
@ -1,2 +1,4 @@
|
||||
# Locally calculated
|
||||
sha256 91bb870c14d1c7c269213285eeed874fa3d28112077db061a3af8010d0885b76 alsa-lib-1.1.4.1.tar.bz2
|
||||
sha256 f4f68ad3c6da36b0b5241ac3c798a7a71e0e97d51f972e9f723b3f20a9650ae6 alsa-lib-1.1.5.tar.bz2
|
||||
sha256 a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7 COPYING
|
||||
sha256 bfe16cf823bcff261fc6a062c07ee96660e3c39678f42f39a788a68dbc234ced aserver/COPYING
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ALSA_LIB_VERSION = 1.1.4.1
|
||||
ALSA_LIB_VERSION = 1.1.5
|
||||
ALSA_LIB_SOURCE = alsa-lib-$(ALSA_LIB_VERSION).tar.bz2
|
||||
ALSA_LIB_SITE = ftp://ftp.alsa-project.org/pub/lib
|
||||
ALSA_LIB_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (aserver)
|
||||
|
@ -1,2 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 a7831044de92c5bf33bf3365a3f36e49397f4191e934df460ae1ca15138c9d9d alsa-utils-1.1.4.tar.bz2
|
||||
sha256 320bd285e91db6e7fd7db3c9ec6f55b02f35449ff273c7844780ac6a5a3de2e8 alsa-utils-1.1.5.tar.bz2
|
||||
sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ALSA_UTILS_VERSION = 1.1.4
|
||||
ALSA_UTILS_VERSION = 1.1.5
|
||||
ALSA_UTILS_SOURCE = alsa-utils-$(ALSA_UTILS_VERSION).tar.bz2
|
||||
ALSA_UTILS_SITE = ftp://ftp.alsa-project.org/pub/utils
|
||||
ALSA_UTILS_LICENSE = GPL-2.0
|
||||
|
@ -13,14 +13,14 @@ AM335X_PRU_PACKAGE_INSTALL_STAGING = YES
|
||||
|
||||
# The default 'all' rule builds everything, when we just need the library
|
||||
ifeq ($(BR2_ENABLE_DEBUG),y)
|
||||
AM335X_MAKE_TARGET = debug $(if $(BR2_STATIC_LIBS),,sodebug)
|
||||
AM335X_PRU_PACKAGE_MAKE_TARGET = debug $(if $(BR2_STATIC_LIBS),,sodebug)
|
||||
else
|
||||
AM335X_MAKE_TARGET = release $(if $(BR2_STATIC_LIBS),,sorelease)
|
||||
AM335X_PRU_PACKAGE_MAKE_TARGET = release $(if $(BR2_STATIC_LIBS),,sorelease)
|
||||
endif
|
||||
|
||||
define AM335X_PRU_PACKAGE_BUILD_CMDS
|
||||
$(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_PRU_PACKAGE_MAKE_TARGET)
|
||||
endef
|
||||
|
||||
# 'install' installs whatever was built, and our patch removes the dependency
|
||||
|
@ -0,0 +1,42 @@
|
||||
usb_linux.c: fix minor()/major() build failure due to glibc 2.28
|
||||
|
||||
glibc 2.28 no longer includes <sys/sysmacros.h> from <sys/types.h>,
|
||||
and therefore <sys/sysmacros.h> must be included explicitly when
|
||||
major()/minor() are used.
|
||||
|
||||
This commit adds a patch to directly include <sys/sysmacros.h> into
|
||||
all usb_linux.c files where minor() and major() macros are used.
|
||||
|
||||
diff -urpN host-android-tools-4.2.2+git20130218.orig/core/adb/usb_linux.c host-android-tools-4.2.2+git20130218/core/adb/usb_linux.c
|
||||
--- host-android-tools-4.2.2+git20130218.orig/core/adb/usb_linux.c 2013-02-18 15:49:03.000000000 +0100
|
||||
+++ host-android-tools-4.2.2+git20130218/core/adb/usb_linux.c 2018-09-09 11:47:16.476292546 +0200
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <dirent.h>
|
||||
diff -urpN host-android-tools-4.2.2+git20130218.orig/core/adbd/usb_linux.c host-android-tools-4.2.2+git20130218/core/adbd/usb_linux.c
|
||||
--- host-android-tools-4.2.2+git20130218.orig/core/adbd/usb_linux.c 2018-09-09 02:32:57.154503866 +0200
|
||||
+++ host-android-tools-4.2.2+git20130218/core/adbd/usb_linux.c 2018-09-09 11:47:28.148353880 +0200
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <dirent.h>
|
||||
diff -urpN host-android-tools-4.2.2+git20130218.orig/core/fastboot/usb_linux.c host-android-tools-4.2.2+git20130218/core/fastboot/usb_linux.c
|
||||
--- host-android-tools-4.2.2+git20130218.orig/core/fastboot/usb_linux.c 2013-02-18 15:49:03.000000000 +0100
|
||||
+++ host-android-tools-4.2.2+git20130218/core/fastboot/usb_linux.c 2018-09-09 11:46:53.028169154 +0200
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/stat.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
@ -15,6 +15,8 @@ config BR2_PACKAGE_ANDROID_TOOLS
|
||||
can be used to interact with target devices using of these
|
||||
protocols.
|
||||
|
||||
https://wiki.debian.org/AndroidTools#Original_android-tools_package
|
||||
|
||||
if BR2_PACKAGE_ANDROID_TOOLS
|
||||
|
||||
# We need kernel headers that support the __SANE_USERSPACE_TYPES__
|
||||
|
@ -1,2 +1,3 @@
|
||||
# Locally computed:
|
||||
sha256 a99e3c22b54178b7646856efd95e825650d32d3125904a28216aeba52e221bad angular-1.4.3.zip
|
||||
sha256 4d4e87d24c7d522f4ee765e4f7d454b9cf2a0f6407248545528064e66ad7b085 angular-1.6.7.zip
|
||||
sha256 cec36623ceba33c503784164917c206047079159bf88f51a695a4dfb9d9b7ede angular.js
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ANGULARJS_VERSION = 1.4.3
|
||||
ANGULARJS_VERSION = 1.6.7
|
||||
ANGULARJS_SOURCE = angular-$(ANGULARJS_VERSION).zip
|
||||
ANGULARJS_SITE = https://code.angularjs.org/$(ANGULARJS_VERSION)
|
||||
ANGULARJS_LICENSE = MIT
|
||||
|
@ -0,0 +1,26 @@
|
||||
From 4ef42740538cefd3c1554aa4df5bcb1388ac927b Mon Sep 17 00:00:00 2001
|
||||
From: Sergio Prado <sergio.prado@e-labworks.com>
|
||||
Date: Tue, 16 Jan 2018 22:28:32 -0200
|
||||
Subject: [PATCH] Change shell script interpreter from /bin/bash to /bin/sh
|
||||
|
||||
This will make the script more portable, making it possible to run on
|
||||
systems that do not have bash.
|
||||
|
||||
Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
|
||||
---
|
||||
aoe-stat.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/aoe-stat.in b/aoe-stat.in
|
||||
index 50e6ac674169..0c1d6f5ebe1e 100755
|
||||
--- a/aoe-stat.in
|
||||
+++ b/aoe-stat.in
|
||||
@@ -1,4 +1,4 @@
|
||||
-#! /bin/bash
|
||||
+#! /bin/sh
|
||||
# aoe-stat - collate and present information about AoE storage
|
||||
# Copyright 2012, CORAID, Inc., and licensed under GPL v.2.
|
||||
|
||||
--
|
||||
1.9.1
|
||||
|
12
package/aoetools/Config.in
Normal file
12
package/aoetools/Config.in
Normal file
@ -0,0 +1,12 @@
|
||||
config BR2_PACKAGE_AOETOOLS
|
||||
bool "aoetools"
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
help
|
||||
The aoetools are programs for users of the ATA over Ethernet
|
||||
(AoE) network storage protocol, a simple protocol for using
|
||||
storage over an ethernet LAN.
|
||||
|
||||
http://aoetools.sourceforge.net/
|
||||
|
||||
comment "aoetools needs a toolchain w/ threads"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS
|
5
package/aoetools/aoetools.hash
Normal file
5
package/aoetools/aoetools.hash
Normal file
@ -0,0 +1,5 @@
|
||||
# Locally computed:
|
||||
sha256 477e796f5c18e8c0e61b5d88e1759c68249e8e0210c2f3de2b98680e2cc63e32 aoetools-37.tar.gz
|
||||
|
||||
# Hash for license files:
|
||||
sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING
|
21
package/aoetools/aoetools.mk
Normal file
21
package/aoetools/aoetools.mk
Normal file
@ -0,0 +1,21 @@
|
||||
################################################################################
|
||||
#
|
||||
# aoetools
|
||||
#
|
||||
################################################################################
|
||||
|
||||
AOETOOLS_VERSION = 37
|
||||
AOETOOLS_SITE = $(call github,OpenAoE,aoetools,aoetools-$(AOETOOLS_VERSION))
|
||||
AOETOOLS_LICENSE = GPL-2.0
|
||||
AOETOOLS_LICENSE_FILES = COPYING
|
||||
|
||||
define AOETOOLS_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
|
||||
endef
|
||||
|
||||
define AOETOOLS_INSTALL_TARGET_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) \
|
||||
-C $(@D) install
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
@ -1,2 +1,4 @@
|
||||
# From http://www.apache.org/dist/httpd/httpd-2.4.29.tar.bz2.sha256
|
||||
sha256 777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00 httpd-2.4.29.tar.bz2
|
||||
# From http://archive.apache.org/dist/httpd/httpd-2.4.35.tar.bz2.sha256
|
||||
sha256 2607c6fdd4d12ac3f583127629291e9432b247b782396a563bec5678aae69b56 httpd-2.4.35.tar.bz2
|
||||
# Locally computed
|
||||
sha256 c49c0819a726b70142621715dae3159c47b0349c2bc9db079070f28dadac0229 LICENSE
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
APACHE_VERSION = 2.4.29
|
||||
APACHE_VERSION = 2.4.35
|
||||
APACHE_SOURCE = httpd-$(APACHE_VERSION).tar.bz2
|
||||
APACHE_SITE = http://archive.apache.org/dist/httpd
|
||||
APACHE_LICENSE = Apache-2.0
|
||||
|
@ -47,6 +47,17 @@ else
|
||||
APR_UTIL_CONF_OPTS += --without-sqlite3
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENLDAP),y)
|
||||
APR_UTIL_CONF_ENV += ac_cv_ldap_set_rebind_proc_style=three
|
||||
APR_UTIL_CONF_OPTS += \
|
||||
--with-ldap \
|
||||
--with-ldap-include="$(STAGING_DIR)/usr/include/" \
|
||||
--with-ldap-lib="$(STAGING_DIR)/usr/lib"
|
||||
APR_UTIL_DEPENDENCIES += openldap
|
||||
else
|
||||
APR_UTIL_CONF_OPTS += --without-ldap
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
||||
APR_UTIL_CONF_OPTS += --with-crypto --with-openssl="$(STAGING_DIR)/usr"
|
||||
APR_UTIL_DEPENDENCIES += openssl
|
||||
@ -54,6 +65,13 @@ else
|
||||
APR_UTIL_CONF_OPTS += --without-crypto
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
|
||||
APR_UTIL_CONF_OPTS += --with-pgsql="$(STAGING_DIR)/usr"
|
||||
APR_UTIL_DEPENDENCIES += postgresql
|
||||
else
|
||||
APR_UTIL_CONF_OPTS += --without-pgsql
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_UNIXODBC),y)
|
||||
APR_UTIL_CONF_OPTS += --with-odbc="$(STAGING_DIR)/usr"
|
||||
# avoid using target binary $(STAGING_DIR)/usr/bin/odbc_config
|
||||
|
21
package/armbian-firmware/Config.in
Normal file
21
package/armbian-firmware/Config.in
Normal file
@ -0,0 +1,21 @@
|
||||
config BR2_PACKAGE_ARMBIAN_FIRMWARE
|
||||
bool "armbian-firmware"
|
||||
help
|
||||
This package enables access to various firmware
|
||||
blobs from the Armbian firmware repository.
|
||||
|
||||
https://github.com/armbian/firmware
|
||||
|
||||
if BR2_PACKAGE_ARMBIAN_FIRMWARE
|
||||
|
||||
config BR2_PACKAGE_ARMBIAN_FIRMWARE_XR819
|
||||
bool "XR819 WiFi"
|
||||
help
|
||||
Firmware files for XR819 WiFi SDIO chip.
|
||||
|
||||
config BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6212
|
||||
bool "AP6212 WiFi/BT"
|
||||
help
|
||||
Firmware files for AP6212 WiFi/BT combo chip.
|
||||
|
||||
endif
|
2
package/armbian-firmware/armbian-firmware.hash
Normal file
2
package/armbian-firmware/armbian-firmware.hash
Normal file
@ -0,0 +1,2 @@
|
||||
# Locally calculated
|
||||
sha256 876958ce6ba8a4a01a424f2b4455208b7a989eaba96015649c774340553f0c35 armbian-firmware-455d6b6701178dafe7fd0168eb4a4ef78a8d24a3.tar.gz
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user