Merge in buildroot-2018.02.7

This commit is contained in:
Calin Crisan 2018-11-09 23:00:45 +02:00
parent bbe1d4f571
commit c388a80638
2012 changed files with 27811 additions and 20051 deletions

197
Config.in
View File

@ -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"

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View 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

View File

@ -0,0 +1,3 @@
# Locally calculated
sha256 7c41cddc2ce46038b630b59d2e9e50e903d27032bcfbf38019eaed14fcfdbe40 binaries-marvell-a8ac27b7884ed2c1efcf9f3326de3e0ed7b94e91.tar.gz
sha256 d8560ab4ea4042a55eee6857ded1d7e4bca2d9120b8c7a86d2a7fdc4ba4994e0 README.md

View 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))

View File

@ -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

View File

@ -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)" \

View 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/

View File

@ -0,0 +1,2 @@
# Locally calculated
sha256 d413546367ffa3b5f4373a777b9efeb32dcc74d6106897c248935ecb79afc454 mv-ddr-marvell-656440a9690f3d07be9e3d2c39d7cf56fd96eb7b.tar.gz

View 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))

View File

@ -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"

View File

@ -1,2 +1,2 @@
# Locally computed:
sha256 b2d15f2cf5f72e706025cde73d67247c6da8cd35f7e10891eefe7d9095089744 u-boot-2017.09.tar.bz2
sha256 938f597394b33e82e5af8c98bd5ea1a238f61892aabef36384adbf7ca5b52dda u-boot-2018.01.tar.bz2

View File

@ -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)) \

View File

@ -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

View File

@ -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"

View 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+.

View File

@ -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:

View 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.

View File

@ -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

View File

@ -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.

View File

@ -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 doesnt 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 packages 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. Lets 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 packages 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 packages .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. Lets 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. Buildroots helper
infrastructure supports either case.
17.15.1. kernel-module tutorial
17.17.1. kernel-module tutorial
Lets 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 dont have a download area with release
tarballs. However, it is possible to download tarballs directly from
@ -6164,7 +6393,7 @@ tag:
then its 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

View File

@ -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[]

View File

@ -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+

View File

@ -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.

View File

@ -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

View File

@ -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>

View File

@ -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>
-->

View File

@ -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 -->

View File

@ -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>')
});

View File

@ -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>

View File

@ -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>

View File

@ -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"

View File

@ -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))

View File

@ -11,4 +11,4 @@ define ROOTFS_CLOOP_CMD
$(HOST_DIR)/bin/create_compressed_fs - 65536 > $@
endef
$(eval $(call ROOTFS_TARGET,cloop))
$(eval $(rootfs))

View File

@ -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))

View File

@ -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

View File

@ -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))

View File

@ -4,4 +4,4 @@
exec 0</dev/console
exec 1>/dev/console
exec 2>/dev/console
exec /sbin/init $*
exec /sbin/init "$@"

View File

@ -16,4 +16,4 @@ endef
ROOTFS_CRAMFS_DEPENDENCIES = host-cramfs
$(eval $(call ROOTFS_TARGET,cramfs))
$(eval $(rootfs))

View File

@ -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

View File

@ -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))

View File

@ -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

View File

@ -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

View File

@ -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))

View File

@ -49,4 +49,4 @@ define ROOTFS_JFFS2_CMD
endef
endif
$(eval $(call ROOTFS_TARGET,jffs2))
$(eval $(rootfs))

View File

@ -10,4 +10,4 @@ define ROOTFS_ROMFS_CMD
$(HOST_DIR)/bin/genromfs -d $(TARGET_DIR) -f $@
endef
$(eval $(call ROOTFS_TARGET,romfs))
$(eval $(rootfs))

View File

@ -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))

View File

@ -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

View File

@ -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
View 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

View File

@ -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))

View File

@ -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

View File

@ -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))

View File

@ -10,4 +10,4 @@ define ROOTFS_YAFFS2_CMD
$(HOST_DIR)/bin/mkyaffs2 --all-root $(TARGET_DIR) $@
endef
$(eval $(call ROOTFS_TARGET,yaffs2))
$(eval $(rootfs))

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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)

View 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

View File

@ -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 \

View File

@ -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 **)&quoted_str, &quoted_str_len,
+ if (__acl_high_water_alloc((void **)&quoted_str, &quoted_str_len,
(s - (unsigned char *)str) + nonpr * 3 + 1))
return NULL;
for (s = (unsigned char *)str, q = quoted_str; *s != '\0'; s++) {
diff --git a/libmisc/unquote.c b/libmisc/unquote.c
index bffebf9..4f4ce7c 100644
--- a/libmisc/unquote.c
+++ b/libmisc/unquote.c
@@ -22,7 +22,7 @@
#include <ctype.h>
#include "misc.h"
-char *unquote(char *str)
+char *__acl_unquote(char *str)
{
unsigned char *s, *t;
diff --git a/setfacl/parse.c b/setfacl/parse.c
index e7e6add..7433459 100644
--- a/setfacl/parse.c
+++ b/setfacl/parse.c
@@ -226,7 +226,7 @@ user_entry:
str = get_token(text_p);
if (str) {
cmd->c_tag = ACL_USER;
- error = get_uid(unquote(str), &cmd->c_id);
+ error = get_uid(__acl_unquote(str), &cmd->c_id);
free(str);
if (error) {
*text_p = backup;
@@ -245,7 +245,7 @@ user_entry:
str = get_token(text_p);
if (str) {
cmd->c_tag = ACL_GROUP;
- error = get_gid(unquote(str), &cmd->c_id);
+ error = get_gid(__acl_unquote(str), &cmd->c_id);
free(str);
if (error) {
*text_p = backup;
@@ -466,7 +466,7 @@ read_acl_comments(
if (strncmp(cp, "file:", 5) == 0) {
cp += 5;
SKIP_WS(cp);
- cp = unquote(cp);
+ cp = __acl_unquote(cp);
if (path_p) {
if (*path_p)
@@ -483,7 +483,7 @@ read_acl_comments(
if (uid_p) {
if (*uid_p != ACL_UNDEFINED_ID)
goto fail;
- if (get_uid(unquote(cp), uid_p) != 0)
+ if (get_uid(__acl_unquote(cp), uid_p) != 0)
continue;
}
} else if (strncmp(cp, "group:", 6) == 0) {
@@ -493,7 +493,7 @@ read_acl_comments(
if (gid_p) {
if (*gid_p != ACL_UNDEFINED_ID)
goto fail;
- if (get_gid(unquote(cp), gid_p) != 0)
+ if (get_gid(__acl_unquote(cp), gid_p) != 0)
continue;
}
} else if (strncmp(cp, "flags:", 6) == 0) {
diff --git a/setfacl/setfacl.c b/setfacl/setfacl.c
index 81062a6..fb2d172 100644
--- a/setfacl/setfacl.c
+++ b/setfacl/setfacl.c
@@ -92,7 +92,7 @@ int promote_warning;
static const char *xquote(const char *str, const char *quote_chars)
{
- const char *q = quote(str, quote_chars);
+ const char *q = __acl_quote(str, quote_chars);
if (q == NULL) {
fprintf(stderr, "%s: %s\n", progname, strerror(errno));
exit(1);
@@ -311,7 +311,7 @@ int next_file(const char *arg, seq_t seq)
args.seq = seq;
if (strcmp(arg, "-") == 0) {
- while ((line = next_line(stdin)))
+ while ((line = __acl_next_line(stdin)))
errors = walk_tree(line, walk_flags, 0, do_set, &args);
if (!feof(stdin)) {
fprintf(stderr, _("%s: Standard input: %s\n"),
--
2.6.2

View File

@ -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

View File

@ -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))

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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__

View File

@ -1,2 +1,3 @@
# Locally computed:
sha256 a99e3c22b54178b7646856efd95e825650d32d3125904a28216aeba52e221bad angular-1.4.3.zip
sha256 4d4e87d24c7d522f4ee765e4f7d454b9cf2a0f6407248545528064e66ad7b085 angular-1.6.7.zip
sha256 cec36623ceba33c503784164917c206047079159bf88f51a695a4dfb9d9b7ede angular.js

View File

@ -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

View File

@ -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

View 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

View File

@ -0,0 +1,5 @@
# Locally computed:
sha256 477e796f5c18e8c0e61b5d88e1759c68249e8e0210c2f3de2b98680e2cc63e32 aoetools-37.tar.gz
# Hash for license files:
sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING

View 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))

View File

@ -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

View File

@ -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

View File

@ -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

View 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

View 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