mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-04-19 12:57:16 +00:00
Release 2020.05.1
-----BEGIN PGP SIGNATURE----- iHAEABECADAWIQSrB9gG0s50H7iG7lCwJbqLWcNjGQUCXxvgNxIcamFjbWV0QHVj bGliYy5vcmcACgkQsCW6i1nDYxn48ACg1YY7Bg929FA3czsFP+9dtXJtangAniQ6 K/a9tpC1pSI9lQ2tzGcXcKdw =rw2k -----END PGP SIGNATURE----- Merge tag '2020.05.1' into buildroot-next Release 2020.05.1
This commit is contained in:
commit
7a812284c8
@ -1,10 +0,0 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
#
|
||||
|
||||
BR2_EXTERNAL ?=
|
||||
BR2_EXTERNAL_NAMES =
|
||||
BR2_EXTERNAL_DIRS =
|
||||
BR2_EXTERNAL_MKS =
|
||||
|
||||
# No br2-external tree defined.
|
5
.flake8
Normal file
5
.flake8
Normal file
@ -0,0 +1,5 @@
|
||||
[flake8]
|
||||
exclude=
|
||||
# copied from the kernel sources
|
||||
utils/diffconfig
|
||||
max-line-length=80
|
@ -4,27 +4,15 @@
|
||||
# It needs to be regenerated every time a defconfig is added, using
|
||||
# "make .gitlab-ci.yml".
|
||||
|
||||
image: buildroot/base:20180318.1724
|
||||
image: buildroot/base:20191027.2027
|
||||
|
||||
.defconfig_script:
|
||||
script:
|
||||
- echo 'Configure Buildroot'
|
||||
- make ${CI_JOB_NAME}
|
||||
- echo 'Build buildroot'
|
||||
- |
|
||||
make > >(tee build.log |grep '>>>') 2>&1 || {
|
||||
echo 'Failed build last output'
|
||||
tail -200 build.log
|
||||
exit 1
|
||||
}
|
||||
|
||||
check-gitlab-ci.yml:
|
||||
script:
|
||||
- mv .gitlab-ci.yml .gitlab-ci.yml.orig
|
||||
- make .gitlab-ci.yml
|
||||
- diff -u .gitlab-ci.yml.orig .gitlab-ci.yml
|
||||
.check_base:
|
||||
except:
|
||||
- /^.*-.*_defconfig$/
|
||||
- /^.*-tests\..*$/
|
||||
|
||||
check-DEVELOPERS:
|
||||
extends: .check_base
|
||||
# get-developers should print just "No action specified"; if it prints
|
||||
# anything else, it's a parse error.
|
||||
# The initial ! is removed by YAML so we need to quote it.
|
||||
@ -32,28 +20,46 @@ check-DEVELOPERS:
|
||||
- "! utils/get-developers | grep -v 'No action specified'"
|
||||
|
||||
check-flake8:
|
||||
extends: .check_base
|
||||
before_script:
|
||||
# Help flake8 to find the Python files without .py extension.
|
||||
- find * -type f -name '*.py' > files.txt
|
||||
- find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
|
||||
- sort -u files.txt | tee files.processed
|
||||
script:
|
||||
- python -m flake8 --statistics --count $(cat files.processed)
|
||||
- python -m flake8 --statistics --count --max-line-length=132 $(cat files.processed)
|
||||
after_script:
|
||||
- wc -l files.processed
|
||||
|
||||
check-gitlab-ci.yml:
|
||||
extends: .check_base
|
||||
script:
|
||||
- mv .gitlab-ci.yml .gitlab-ci.yml.orig
|
||||
- make .gitlab-ci.yml
|
||||
- diff -u .gitlab-ci.yml.orig .gitlab-ci.yml
|
||||
|
||||
check-package:
|
||||
extends: .check_base
|
||||
script:
|
||||
- make check-package
|
||||
|
||||
.defconfig:
|
||||
extends: .defconfig_script
|
||||
# Running the defconfigs for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-defconfigs$/
|
||||
.defconfig_base:
|
||||
script:
|
||||
- echo "Configure Buildroot for ${DEFCONFIG_NAME}"
|
||||
- make ${DEFCONFIG_NAME}
|
||||
- echo 'Build buildroot'
|
||||
- |
|
||||
make > >(tee build.log |grep '>>>') 2>&1 || {
|
||||
echo 'Failed build last output'
|
||||
tail -200 build.log
|
||||
exit 1
|
||||
}
|
||||
- |
|
||||
./support/scripts/boot-qemu-image.py "${DEFCONFIG_NAME}" > >(tee runtime-test.log) 2>&1 || {
|
||||
echo 'Failed runtime test last output'
|
||||
tail -200 runtime-test.log
|
||||
exit 1
|
||||
}
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 2 weeks
|
||||
@ -64,19 +70,34 @@ check-package:
|
||||
- output/build/build-time.log
|
||||
- output/build/packages-file-list.txt
|
||||
- output/build/*/.config
|
||||
- runtime-test.log
|
||||
|
||||
.runtime_test:
|
||||
# Running the runtime tests for every push is too much, so limit to
|
||||
.defconfig:
|
||||
extends: .defconfig_base
|
||||
# Running the defconfigs for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-runtime-tests$/
|
||||
- /-defconfigs$/
|
||||
before_script:
|
||||
- DEFCONFIG_NAME=${CI_JOB_NAME}
|
||||
|
||||
one-defconfig:
|
||||
extends: .defconfig_base
|
||||
only:
|
||||
- /^.*-.*_defconfig$/
|
||||
before_script:
|
||||
- DEFCONFIG_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
||||
|
||||
.runtime_test_base:
|
||||
# Keep build directories so the rootfs can be an artifact of the job. The
|
||||
# runner will clean up those files for us.
|
||||
# Multiply every emulator timeout by 10 to avoid sporadic failures in
|
||||
# elastic runners.
|
||||
script: ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${CI_JOB_NAME}
|
||||
script:
|
||||
- echo "Starting runtime test ${TEST_CASE_NAME}"
|
||||
- ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME}
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 2 weeks
|
||||
@ -84,3 +105,21 @@ check-package:
|
||||
- test-output/*.log
|
||||
- test-output/*/.config
|
||||
- test-output/*/images/*
|
||||
|
||||
.runtime_test:
|
||||
extends: .runtime_test_base
|
||||
# Running the runtime tests for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-runtime-tests$/
|
||||
before_script:
|
||||
- TEST_CASE_NAME=${CI_JOB_NAME}
|
||||
|
||||
one-runtime_test:
|
||||
extends: .runtime_test_base
|
||||
only:
|
||||
- /^.*-tests\..*$/
|
||||
before_script:
|
||||
- TEST_CASE_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
||||
|
99
Config.in
99
Config.in
@ -14,38 +14,21 @@ config BR2_HOSTARCH
|
||||
string
|
||||
option env="HOSTARCH"
|
||||
|
||||
config BR2_BUILD_DIR
|
||||
config BR2_BASE_DIR
|
||||
string
|
||||
option env="BUILD_DIR"
|
||||
option env="BASE_DIR"
|
||||
|
||||
# br2-external paths definitions
|
||||
source "$BR2_BASE_DIR/.br2-external.in.paths"
|
||||
|
||||
# Hidden config symbols for packages to check system gcc version
|
||||
config BR2_HOST_GCC_VERSION
|
||||
string
|
||||
option env="HOST_GCC_VERSION"
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_4_5
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "4 5"
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_4_6
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "4 6"
|
||||
select BR2_HOST_GCC_AT_LEAST_4_5
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_4_7
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "4 7"
|
||||
select BR2_HOST_GCC_AT_LEAST_4_6
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_4_8
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "4 8"
|
||||
select BR2_HOST_GCC_AT_LEAST_4_7
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_4_9
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "4 9"
|
||||
select BR2_HOST_GCC_AT_LEAST_4_8
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_5
|
||||
bool
|
||||
@ -67,6 +50,11 @@ config BR2_HOST_GCC_AT_LEAST_8
|
||||
default y if BR2_HOST_GCC_VERSION = "8"
|
||||
select BR2_HOST_GCC_AT_LEAST_7
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_9
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "9"
|
||||
select BR2_HOST_GCC_AT_LEAST_8
|
||||
|
||||
# When adding new entries above, be sure to update
|
||||
# the HOSTCC_MAX_VERSION variable in the Makefile.
|
||||
|
||||
@ -75,16 +63,6 @@ config BR2_HOST_GCC_AT_LEAST_8
|
||||
config BR2_NEEDS_HOST_JAVA
|
||||
bool
|
||||
|
||||
# Hidden boolean selected by packages in need of javac in order to build
|
||||
# (example: classpath)
|
||||
config BR2_NEEDS_HOST_JAVAC
|
||||
bool
|
||||
|
||||
# Hidden boolean selected by packages in need of jar in order to build
|
||||
# (example: classpath)
|
||||
config BR2_NEEDS_HOST_JAR
|
||||
bool
|
||||
|
||||
# Hidden boolean selected by pre-built packages for x86, when they
|
||||
# need to run on x86-64 machines (example: pre-built external
|
||||
# toolchains, binary tools like SAM-BA, etc.).
|
||||
@ -538,13 +516,14 @@ config BR2_OPTIMIZE_S
|
||||
This is the default.
|
||||
|
||||
config BR2_OPTIMIZE_FAST
|
||||
bool "optimize for fast"
|
||||
bool "optimize for fast (may break packages!)"
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
||||
help
|
||||
Optimize for fast. Disregard strict standards
|
||||
compliance. -Ofast enables all -O3 optimizations. It also
|
||||
enables optimizations that are not valid for all
|
||||
standard-compliant programs. It turns on -ffast-math and the
|
||||
standard-compliant programs, so be careful, as it may break
|
||||
some packages. It turns on -ffast-math and the
|
||||
Fortran-specific -fstack-arrays, unless -fmax-stack-var-size
|
||||
is specified, and -fno-protect-parens.
|
||||
|
||||
@ -553,7 +532,6 @@ endchoice
|
||||
config BR2_GOOGLE_BREAKPAD_ENABLE
|
||||
bool "Enable google-breakpad support"
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
|
||||
depends on BR2_USE_WCHAR
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
@ -708,10 +686,40 @@ config BR2_REPRODUCIBLE
|
||||
This is labeled as an experimental feature, as not all
|
||||
packages behave properly to ensure reproducibility.
|
||||
|
||||
config BR2_PER_PACKAGE_DIRECTORIES
|
||||
bool "Use per-package directories (experimental)"
|
||||
help
|
||||
This option will change the build process of Buildroot
|
||||
package to use per-package target and host directories.
|
||||
|
||||
This is useful for two related purposes:
|
||||
|
||||
- Cleanly isolate the build of each package, so that a
|
||||
given package only "sees" the dependencies it has
|
||||
explicitly expressed, and not other packages that may
|
||||
have by chance been built before.
|
||||
|
||||
- Enable top-level parallel build.
|
||||
|
||||
This is labeled as an experimental feature, as not all
|
||||
packages behave properly with per-package directories.
|
||||
|
||||
endmenu
|
||||
|
||||
comment "Security Hardening Options"
|
||||
|
||||
config BR2_PIC_PIE
|
||||
bool "Build code with PIC/PIE"
|
||||
depends on BR2_SHARED_LIBS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
help
|
||||
Generate Position-Independent Code (PIC) and link
|
||||
Position-Independent Executables (PIE).
|
||||
|
||||
comment "PIC/PIE needs a toolchain w/ PIE"
|
||||
depends on BR2_SHARED_LIBS
|
||||
depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
|
||||
choice
|
||||
bool "Stack Smashing Protection"
|
||||
default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
|
||||
@ -746,14 +754,15 @@ config BR2_SSP_REGULAR
|
||||
|
||||
config BR2_SSP_STRONG
|
||||
bool "-fstack-protector-strong"
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
depends on BR2_TOOLCHAIN_HAS_SSP_STRONG
|
||||
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
|
||||
-fstack-protector-strong officially appeared in gcc 4.9, but
|
||||
some vendors have backported -fstack-protector-strong to older
|
||||
versions of gcc.
|
||||
|
||||
config BR2_SSP_ALL
|
||||
bool "-fstack-protector-all"
|
||||
@ -764,6 +773,12 @@ config BR2_SSP_ALL
|
||||
|
||||
endchoice
|
||||
|
||||
config BR2_SSP_OPTION
|
||||
string
|
||||
default "-fstack-protector" if BR2_SSP_REGULAR
|
||||
default "-fstack-protector-strong" if BR2_SSP_STRONG
|
||||
default "-fstack-protector-all" if BR2_SSP_ALL
|
||||
|
||||
comment "Stack Smashing Protection needs a toolchain w/ SSP"
|
||||
depends on !BR2_TOOLCHAIN_HAS_SSP
|
||||
|
||||
@ -788,11 +803,16 @@ config BR2_RELRO_PARTIAL
|
||||
|
||||
config BR2_RELRO_FULL
|
||||
bool "Full"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
select BR2_PIC_PIE
|
||||
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.
|
||||
|
||||
comment "RELRO Full needs a toolchain w/ PIE"
|
||||
depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
|
||||
endchoice
|
||||
|
||||
comment "RELocation Read Only (RELRO) needs shared libraries"
|
||||
@ -859,4 +879,5 @@ source "package/Config.in.host"
|
||||
|
||||
source "Config.in.legacy"
|
||||
|
||||
source "$BR2_BUILD_DIR/.br2-external.in"
|
||||
# br2-external menus definitions
|
||||
source "$BR2_BASE_DIR/.br2-external.in.menus"
|
||||
|
646
Config.in.legacy
646
Config.in.legacy
@ -144,7 +144,639 @@ endif
|
||||
|
||||
###############################################################################
|
||||
|
||||
comment "Legacy options removed in 2019.02"
|
||||
comment "Legacy options removed in 2020.05"
|
||||
|
||||
config BR2_PACKAGE_WIRINGPI
|
||||
bool "wiringpi package removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The author of wiringpi has deprecated the package, and
|
||||
completely removed the git tree that was serving the
|
||||
sources, with this message:
|
||||
Please look for alternatives for wiringPi
|
||||
|
||||
config BR2_PACKAGE_PYTHON_PYCRYPTO
|
||||
bool "python-pycrypto package removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
This package has been removed, use python-pycryptodomex
|
||||
instead.
|
||||
|
||||
config BR2_PACKAGE_MTDEV2TUIO
|
||||
bool "mtdev2tuio package removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The mtdev2tuio package was removed as it breaks the builds
|
||||
every now and then and is not maintained upstream.
|
||||
|
||||
config BR2_PACKAGE_EZXML
|
||||
bool "ezxml package removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The ezXML package was removed as it is affected by several
|
||||
CVEs and is not maintained anymore (no release since 2006).
|
||||
|
||||
config BR2_PACKAGE_COLLECTD_LVM
|
||||
bool "lvm support in collectd was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
collectd removed LVM plugin, liblvm2app has been deprecated
|
||||
|
||||
config BR2_PACKAGE_PYTHON_PYASN
|
||||
bool "duplicate python-pyasn1 package removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_PYTHON_PYASN1
|
||||
help
|
||||
This package was a duplicate of python-pyasn1.
|
||||
|
||||
config BR2_PACKAGE_PYTHON_PYASN_MODULES
|
||||
bool "duplicate python-pyasn1-modules package removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_PYTHON_PYASN1_MODULES
|
||||
help
|
||||
This package was a duplicate of python-pyasn1-modules.
|
||||
|
||||
config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA6174
|
||||
bool "duplicate QCA6174 firmware symbol removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174
|
||||
help
|
||||
This config symbol duplicates existing symbol for QCA6174
|
||||
firmware.
|
||||
|
||||
config BR2_PACKAGE_QT5CANVAS3D
|
||||
bool "qt5canvas3d was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
This Qt5 module was removed by the upstream Qt project since
|
||||
Qt 5.13, so the corresponding Buildroot package was removed
|
||||
as well.
|
||||
|
||||
config BR2_PACKAGE_KODI_LIBTHEORA
|
||||
bool "libtheora support in Kodi was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Kodi does not need libtheora
|
||||
|
||||
config BR2_PACKAGE_CEGUI06
|
||||
bool "BR2_PACKAGE_CEGUI06 was renamed"
|
||||
select BR2_PACKAGE_CEGUI
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The BR2_PACKAGE_CEGUI06 config symbol was renamed to
|
||||
BR2_PACKAGE_CEGUI.
|
||||
|
||||
config BR2_GCC_VERSION_5_X
|
||||
bool "gcc 5.x support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for gcc version 5.x has been removed. The current
|
||||
default version (8.x or later) has been selected instead.
|
||||
|
||||
comment "Legacy options removed in 2020.02"
|
||||
|
||||
config BR2_PACKAGE_JAMVM
|
||||
bool "jamvm removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
JamVM has not had a release since 2014 and is unmaintained.
|
||||
|
||||
config BR2_PACKAGE_CLASSPATH
|
||||
bool "classpath removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
GNU Classpath package was removed. The last upstream
|
||||
release was in 2012 and there hasn't been a commit
|
||||
since 2016.
|
||||
|
||||
config BR2_PACKAGE_QT5_VERSION_5_6
|
||||
bool "qt 5.6 support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for Qt 5.6 is EOL and has been removed. The current
|
||||
version (5.12 or later) has been selected instead.
|
||||
|
||||
config BR2_PACKAGE_CURL
|
||||
bool "BR2_PACKAGE_CURL was renamed"
|
||||
select BR2_PACKAGE_LIBCURL_CURL
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The BR2_PACKAGE_CURL config symbol was renamed to
|
||||
BR2_PACKAGE_LIBCURL_CURL.
|
||||
|
||||
config BR2_PACKAGE_GSTREAMER
|
||||
bool "gstreamer-0.10 removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Gstreamer-0.10 package was removed. It has been deprecated
|
||||
upstream since 2012, and is missing a lot of features and
|
||||
fixes compared to gstreamer-1.x.
|
||||
|
||||
config BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_GSTREAMER_PLUGINS
|
||||
bool "nvidia-tegra23 binaries gstreamer 0.10.x support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Gstreamer 0.10.x is no longer available in Buildroot, so
|
||||
neither is the support in nvidia-tegra23 binaries.
|
||||
|
||||
config BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_NV_SAMPLE_APPS
|
||||
bool "nvidia-tegra23 binaries sample apps removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Gstreamer 0.10.x is no longer available in Buildroot, so
|
||||
neither is the support in nvidia-tegra23 binaries.
|
||||
|
||||
config BR2_PACKAGE_FREERDP_GSTREAMER
|
||||
bool "freerdp gstreamer 0.10.x support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Gstreamer 0.10.x is no longer available in Buildroot, so
|
||||
neither is the support in freerdp.
|
||||
|
||||
config BR2_PACKAGE_OPENCV3_WITH_GSTREAMER
|
||||
bool "opencv3 gstreamer 0.10.x support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Gstreamer 0.10.x is no longer available in Buildroot, so
|
||||
neither is the support in opencv3.
|
||||
|
||||
config BR2_PACKAGE_OPENCV_WITH_GSTREAMER
|
||||
bool "opencv gstreamer 0.10.x support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Gstreamer 0.10.x is no longer available in Buildroot, so
|
||||
neither is the support in opencv.
|
||||
|
||||
config BR2_PACKAGE_LIBPLAYER
|
||||
bool "libplayer package was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The libplayer package was removed. The latest release is
|
||||
from 2010 and none of the backends are available in
|
||||
Buildroot any more.
|
||||
|
||||
config BR2_GCC_VERSION_OR1K
|
||||
bool "gcc 5.x fork for or1k has been removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for gcc 5.x for or1k has been removed. The current
|
||||
default version (9.x or later) has been selected instead.
|
||||
|
||||
config BR2_PACKAGE_BLUEZ_UTILS
|
||||
bool "bluez-utils was removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_BLUEZ5_UTILS if BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4 \
|
||||
&& BR2_TOOLCHAIN_HAS_SYNC_4
|
||||
help
|
||||
The bluez-utils (BlueZ 4.x) package was removed as it is
|
||||
deprecated since a long time. As an alternative, the
|
||||
bluez5-utils (BlueZ 5.x) has been automatically selected in
|
||||
your configuration.
|
||||
|
||||
config BR2_PACKAGE_GADGETFS_TEST
|
||||
bool "gadgetfs-test was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The gadgetfs-test package was removed. Gadgetfs has been
|
||||
deprecated in favour of functionfs. Consider using
|
||||
gadget-tool (gt) instead.
|
||||
|
||||
config BR2_PACKAGE_FIS
|
||||
bool "fis was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The fis package was removed.
|
||||
|
||||
config BR2_PACKAGE_REFPOLICY_POLICY_VERSION
|
||||
string "refpolicy policy version"
|
||||
help
|
||||
The refpolicy policy version option has been moved to the
|
||||
libsepol package.
|
||||
|
||||
config BR2_PACKAGE_REFPOLICY_POLICY_VERSION_WRAP
|
||||
bool
|
||||
default y if BR2_PACKAGE_REFPOLICY_POLICY_VERSION != ""
|
||||
select BR2_LEGACY
|
||||
|
||||
config BR2_PACKAGE_CELT051
|
||||
bool "celt051 package was removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_OPUS
|
||||
help
|
||||
The celt051 package was removed as it is now obsolete since
|
||||
the CELT codec has been merged into the IETF Opus codec. As
|
||||
a result, the opus package has been automatically selected
|
||||
in your configuration.
|
||||
|
||||
config BR2_PACKAGE_WIREGUARD
|
||||
bool "wireguard package renamed"
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_WIREGUARD_LINUX_COMPAT if BR2_LINUX_KERNEL
|
||||
select BR2_PACKAGE_WIREGUARD_TOOLS
|
||||
help
|
||||
The wireguard package has been renamed to wireguard-tools
|
||||
for the userspace tooling and wireguard-linux-compat for the
|
||||
kernel side for legacy (<5.6) kernels to match upstream.
|
||||
|
||||
config BR2_PACKAGE_PERL_NET_PING
|
||||
bool "perl-net-ping was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Net::Ping is a Perl core module (ie. bundled with perl).
|
||||
|
||||
config BR2_PACKAGE_PERL_MIME_BASE64
|
||||
bool "perl-mime-base64 was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
MIME::Base64 is a Perl core module (ie. bundled with perl).
|
||||
|
||||
config BR2_PACKAGE_PERL_DIGEST_MD5
|
||||
bool "perl-digest-md5 was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Digest::MD5 is a Perl core module (ie. bundled with perl).
|
||||
|
||||
config BR2_PACKAGE_ERLANG_P1_ICONV
|
||||
bool "erlang-p1-iconv has been removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The erlang-p1-iconv package was no longer used by ejabberd,
|
||||
and was no longer maintained upstream, so it was removed.
|
||||
|
||||
config BR2_KERNEL_HEADERS_5_3
|
||||
bool "kernel headers version 5.3.x are no longer supported"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Version 5.3.x of the Linux kernel headers are no longer
|
||||
maintained upstream and are now removed.
|
||||
|
||||
config BR2_PACKAGE_PYTHON_SCAPY3K
|
||||
bool "python-scapy3k is replaced by python-scapy"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_PYTHON_SCAPY
|
||||
help
|
||||
python-scapy3k has been deprecated, since python-scapy has
|
||||
gained Python 3 support. Use BR2_PACKAGE_PYTHON_SCAPY
|
||||
instead.
|
||||
|
||||
config BR2_BINUTILS_VERSION_2_30_X
|
||||
bool "binutils version 2.30 support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for binutils version 2.30 has been removed. The
|
||||
current default version (2.31 or later) has been selected
|
||||
instead.
|
||||
|
||||
config BR2_PACKAGE_RPI_USERLAND_START_VCFILED
|
||||
bool "rpi-userland start vcfiled was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The vcfiled support was removed upstream.
|
||||
|
||||
comment "Legacy options removed in 2019.11"
|
||||
|
||||
config BR2_PACKAGE_OPENVMTOOLS_PROCPS
|
||||
bool "openvmtools' procps support was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Upstream stopped supporting this option a while ago.
|
||||
|
||||
config BR2_PACKAGE_ALLJOYN
|
||||
bool "alljoyn was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The alljoyn framework is dead
|
||||
|
||||
config BR2_PACKAGE_ALLJOYN_BASE
|
||||
bool "alljoyn-base was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The alljoyn framework is dead
|
||||
|
||||
config BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL
|
||||
bool "alljoyn-base control panel was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The alljoyn framework is dead
|
||||
|
||||
config BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION
|
||||
bool "alljoyn-base notification was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The alljoyn framework is dead
|
||||
|
||||
config BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING
|
||||
bool "alljoyn-base onboarding was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The alljoyn framework is dead
|
||||
|
||||
config BR2_PACKAGE_ALLJOYN_TCL_BASE
|
||||
bool "alljoyn-tcl-base was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The alljoyn framework is dead
|
||||
|
||||
config BR2_PACKAGE_ALLJOYN_TCL
|
||||
bool "alljoyn-tcl was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The alljoyn framework is dead
|
||||
|
||||
config BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS
|
||||
string "toolchain-external extra libs option has been renamed"
|
||||
help
|
||||
The option BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS has
|
||||
been renamed to BR2_TOOLCHAIN_EXTRA_LIBS.
|
||||
|
||||
config BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS_WRAP
|
||||
bool
|
||||
default y if BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS != ""
|
||||
select BR2_LEGACY
|
||||
|
||||
config BR2_PACKAGE_PYTHON_PYSNMP_APPS
|
||||
bool "python-pysnmp-apps was removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_SNMPCLITOOLS
|
||||
help
|
||||
Following upstream changes, the python-pysnmp-apps package
|
||||
has been removed, and snmpclitools should be used as a
|
||||
replacement.
|
||||
|
||||
config BR2_KERNEL_HEADERS_5_2
|
||||
bool "kernel headers version 5.2.x are no longer supported"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Version 5.2.x of the Linux kernel headers are no longer
|
||||
maintained upstream and are now removed.
|
||||
|
||||
config BR2_TARGET_RISCV_PK
|
||||
bool "riscv-pk was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The RISC-V Proxy Kernel (pk) and Berkley Boot Loader (BBL)
|
||||
have been replaced with OpenSBI.
|
||||
|
||||
config BR2_PACKAGE_SQLITE_STAT3
|
||||
bool "sqlite stat3 support was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Upstream removed the support for stat3.
|
||||
|
||||
config BR2_KERNEL_HEADERS_5_1
|
||||
bool "kernel headers version 5.1.x are no longer supported"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Version 5.1.x of the Linux kernel headers are no longer
|
||||
maintained upstream and are now removed.
|
||||
|
||||
config BR2_PACKAGE_DEVMEM2
|
||||
bool "devmem2 package was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Use the the Busybox devmem utility, instead, which provides
|
||||
the same functionality.
|
||||
|
||||
config BR2_PACKAGE_USTR
|
||||
bool "ustr package removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The 'ustr' package was only used by SELinux libsemanage, but
|
||||
since SELinux 2.7, ustr is no longer used. Therefore, we
|
||||
removed this package from Buildroot.
|
||||
|
||||
config BR2_PACKAGE_KODI_SCREENSAVER_PLANESTATE
|
||||
bool "kodi-screensaver-planestate package was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
This package is incompatible with Kodi 18.x.
|
||||
|
||||
config BR2_PACKAGE_KODI_VISUALISATION_WAVEFORHUE
|
||||
bool "kodi-visualisation-waveforhue package was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
This package is incompatible with Kodi 18.x.
|
||||
|
||||
config BR2_PACKAGE_KODI_AUDIODECODER_OPUS
|
||||
bool "kodi-audiodecoder-opus package was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
This package is incompatible with Kodi 18.x.
|
||||
|
||||
config BR2_PACKAGE_MESA3D_OSMESA
|
||||
bool "mesa OSMesa option renamed"
|
||||
select BR2_PACKAGE_MESA3D_OSMESA_CLASSIC if BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The option was renamed in order to match the naming used
|
||||
by the meson buildsystem.
|
||||
|
||||
config BR2_PACKAGE_HOSTAPD_DRIVER_RTW
|
||||
bool "hostapd rtl871xdrv driver removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Since the update of hostapd to 2.9, the patch provided for
|
||||
the rtl871xdrv no longer works, although it
|
||||
applies. Moreover, AP support for Realtek chips is broken
|
||||
anyway in kernels > 4.9. Therefore, this option has been
|
||||
removed.
|
||||
|
||||
config BR2_PACKAGE_WPA_SUPPLICANT_DBUS_NEW
|
||||
bool "new dbus support option in wpa_supplicant was renamed"
|
||||
select BR2_PACKAGE_WPA_SUPPLICANT_DBUS if BR2_TOOLCHAIN_HAS_THREADS
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The new dbus support option was renamed.
|
||||
|
||||
config BR2_PACKAGE_WPA_SUPPLICANT_DBUS_OLD
|
||||
bool "old dbus support in wpa_supplicant was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The old dbus support was removed.
|
||||
|
||||
comment "Legacy options removed in 2019.08"
|
||||
|
||||
config BR2_TARGET_TS4800_MBRBOOT
|
||||
bool "ts4800-mbrboot package was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The defconfig for the TS4800 platform has been removed, so
|
||||
the ts4800-mbrboot package, containing the boot code for
|
||||
this specific platform has been removed as welL.
|
||||
|
||||
config BR2_PACKAGE_LIBAMCODEC
|
||||
bool "liamcodec package was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for odroidc2 based systems was removed, making the
|
||||
libamcodec package useless.
|
||||
|
||||
config BR2_PACKAGE_ODROID_SCRIPTS
|
||||
bool "odroid-scripts package was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for odroidc2 based systems was removed, making the
|
||||
odroid-scripts package useless.
|
||||
|
||||
config BR2_PACKAGE_ODROID_MALI
|
||||
bool "odroid-mali package was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for odroidc2 based systems was removed, making the
|
||||
odroid-mali package useless.
|
||||
|
||||
config BR2_PACKAGE_KODI_PLATFORM_AML
|
||||
bool "Kodi AMLogic support was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for AMLogic was removed due to the removal of the
|
||||
odroidc2 defconfig.
|
||||
|
||||
config BR2_GCC_VERSION_6_X
|
||||
bool "gcc 6.x support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for gcc version 6.x has been removed. The current
|
||||
default version (8.x or later) has been selected instead.
|
||||
|
||||
config BR2_GCC_VERSION_4_9_X
|
||||
bool "gcc 4.9.x support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for gcc version 4.9.x has been removed. The current
|
||||
default version (8.x or later) has been selected instead.
|
||||
|
||||
config BR2_GDB_VERSION_7_12
|
||||
bool "gdb 7.12.x has been removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The 7.12.x version of gdb has been removed. Use a newer
|
||||
version instead.
|
||||
|
||||
config BR2_PACKAGE_XAPP_MKFONTDIR
|
||||
bool "mkfontdir is now included in xapp_mkfontscale"
|
||||
select BR2_PACKAGE_XAPP_MKFONTSCALE
|
||||
select BR2_LEGACY
|
||||
help
|
||||
xapp_mkfontscale now includes the mkfontdir script previously
|
||||
distributed separately for compatibility with older X11
|
||||
versions.
|
||||
|
||||
config BR2_GDB_VERSION_8_0
|
||||
bool "gdb 8.0.x has been removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The 8.0.x version of gdb has been removed. Use a newer
|
||||
version instead.
|
||||
|
||||
config BR2_KERNEL_HEADERS_4_20
|
||||
bool "kernel headers version 4.20.x are no longer supported"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Version 4.20.x of the Linux kernel headers are no longer
|
||||
maintained upstream and are now removed.
|
||||
|
||||
config BR2_KERNEL_HEADERS_5_0
|
||||
bool "kernel headers version 5.0.x are no longer supported"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Version 5.0.x of the Linux kernel headers are no longer
|
||||
maintained upstream and are now removed.
|
||||
|
||||
comment "Legacy options removed in 2019.05"
|
||||
|
||||
config BR2_CSKY_DSP
|
||||
bool "C-SKY DSP support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
C-SKY DSP instruction support for ck810 / ck807 was removed,
|
||||
as it was no longer supported in C-SKY gcc. Perhaps the VDSP
|
||||
instructions should be used instead, using the BR2_CSKY_VDSP
|
||||
option.
|
||||
|
||||
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COMPOSITOR
|
||||
bool "compositor moved to gst1-plugins-base"
|
||||
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_COMPOSITOR
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The gst1-plugins-bad compositor plugin has moved
|
||||
to gst1-plugins-base.
|
||||
|
||||
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IQA
|
||||
bool "gst-plugins-bad IQA option was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The gst1-plugins-bad IQA option was removed.
|
||||
|
||||
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV
|
||||
bool "gst-plugins-bad opencv option was removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The gst1-plugins-bad opencv option was removed because
|
||||
buildroot does not have the opencv_contrib package which
|
||||
is required for the bgsegm module which gst1-plugins-bad
|
||||
now requires along with opencv3.
|
||||
|
||||
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_STEREO
|
||||
bool "stereo was merged into audiofx in gst1-plugins-good"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOFX
|
||||
help
|
||||
The gst1-plugins-bad stereo plugin has merged with the
|
||||
gst1-plugins-base audiofx plugin.
|
||||
|
||||
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD
|
||||
bool "gst-plugins-bad vcd plugin was removed."
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The gst1-plugins-bad vcd plugin was removed.
|
||||
|
||||
config BR2_PACKAGE_LUNIT
|
||||
bool "lunit package removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_LUA_LUNITX
|
||||
help
|
||||
The lunit package was removed in favor of its fork lunitx,
|
||||
which supports all versions of Lua.
|
||||
|
||||
config BR2_PACKAGE_FFMPEG_FFSERVER
|
||||
bool "ffmpeg ffserver removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
On July 10th, 2016, ffserver program has been dropped.
|
||||
|
||||
config BR2_PACKAGE_LIBUMP
|
||||
bool "libump package removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The libump package was removed, it was only used as a
|
||||
dependency of sunxi-mali, which itself was removed.
|
||||
|
||||
config BR2_PACKAGE_SUNXI_MALI
|
||||
bool "sunxi-mali package removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_SUNXI_MALI_MAINLINE
|
||||
help
|
||||
The sunxi-mali package was removed, as the
|
||||
sunxi-mali-mainline package replaces it for mainline
|
||||
kernels on Allwinner platforms.
|
||||
|
||||
config BR2_BINUTILS_VERSION_2_29_X
|
||||
bool "binutils version 2.29 support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for binutils version 2.29 has been removed. The
|
||||
current default version (2.31 or later) has been selected
|
||||
instead.
|
||||
|
||||
config BR2_BINUTILS_VERSION_2_28_X
|
||||
bool "binutils version 2.28 support removed"
|
||||
select BR2_LEGACY
|
||||
help
|
||||
Support for binutils version 2.28 has been removed. The
|
||||
current default version (2.31 or later) has been selected
|
||||
instead.
|
||||
|
||||
config BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_APEXSINK
|
||||
bool "gst-plugins-bad apexsink option removed"
|
||||
@ -152,6 +784,8 @@ config BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_APEXSINK
|
||||
help
|
||||
The gst-plugins-bad apexsink option was removed.
|
||||
|
||||
comment "Legacy options removed in 2019.02"
|
||||
|
||||
config BR2_PACKAGE_QT
|
||||
bool "qt package removed"
|
||||
select BR2_LEGACY
|
||||
@ -1651,16 +2285,6 @@ config BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MAD
|
||||
bool "mad (*.mp3 audio) removed"
|
||||
select BR2_LEGACY
|
||||
|
||||
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTC
|
||||
bool "gst1-plugins-bad webrtc renamed to webrtcdsp"
|
||||
select BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTCDSP
|
||||
select BR2_LEGACY
|
||||
help
|
||||
The WebRTC plugin in GStreamer 1.x has always been named
|
||||
webrtcdsp, but was wrongly introduced in Buildroot under the
|
||||
name webrtc. Therefore, we have renamed the option to match
|
||||
the actual name of the GStreamer plugin.
|
||||
|
||||
config BR2_STRIP_none
|
||||
bool "Strip command 'none' has been removed"
|
||||
select BR2_LEGACY
|
||||
|
2706
DEVELOPERS
Normal file
2706
DEVELOPERS
Normal file
File diff suppressed because it is too large
Load Diff
166
Makefile
166
Makefile
@ -2,7 +2,7 @@
|
||||
#
|
||||
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 2006-2014 by the Buildroot developers <buildroot@uclibc.org>
|
||||
# Copyright (C) 2014-2019 by the Buildroot developers <buildroot@buildroot.org>
|
||||
# Copyright (C) 2014-2020 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
|
||||
@ -92,9 +92,9 @@ all:
|
||||
.PHONY: all
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2019.02.2
|
||||
export BR2_VERSION := 2020.05.1
|
||||
# Actual time the release is cut (for reproducible builds)
|
||||
BR2_VERSION_EPOCH = 1556527000
|
||||
BR2_VERSION_EPOCH = 1595662000
|
||||
|
||||
# Save running make version since it's clobbered by the make package
|
||||
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
|
||||
@ -179,16 +179,18 @@ $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist))
|
||||
# still be overridden on the command line, therefore the file is re-created
|
||||
# every time make is run.
|
||||
|
||||
BR2_EXTERNAL_FILE = $(BASE_DIR)/.br-external.mk
|
||||
BR2_EXTERNAL_FILE = $(BASE_DIR)/.br2-external.mk
|
||||
-include $(BR2_EXTERNAL_FILE)
|
||||
$(shell support/scripts/br2-external \
|
||||
-m -o '$(BR2_EXTERNAL_FILE)' $(BR2_EXTERNAL))
|
||||
$(shell support/scripts/br2-external -d '$(BASE_DIR)' $(BR2_EXTERNAL))
|
||||
BR2_EXTERNAL_ERROR =
|
||||
include $(BR2_EXTERNAL_FILE)
|
||||
ifneq ($(BR2_EXTERNAL_ERROR),)
|
||||
$(error $(BR2_EXTERNAL_ERROR))
|
||||
endif
|
||||
|
||||
# Workaround bug in make-4.3: https://savannah.gnu.org/bugs/?57676
|
||||
$(BASE_DIR)/.br2-external.mk:;
|
||||
|
||||
# To make sure that the environment variable overrides the .config option,
|
||||
# set this before including .config.
|
||||
ifneq ($(BR2_DL_DIR),)
|
||||
@ -205,6 +207,7 @@ BR_GRAPH_OUT := $(or $(BR2_GRAPH_OUT),pdf)
|
||||
BUILD_DIR := $(BASE_DIR)/build
|
||||
BINARIES_DIR := $(BASE_DIR)/images
|
||||
BASE_TARGET_DIR := $(BASE_DIR)/target
|
||||
PER_PACKAGE_DIR := $(BASE_DIR)/per-package
|
||||
# initial definition so that 'make clean' works for most users, even without
|
||||
# .config. HOST_DIR will be overwritten later when .config is included.
|
||||
HOST_DIR := $(BASE_DIR)/host
|
||||
@ -227,28 +230,18 @@ ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
|
||||
-include $(BR2_CONFIG)
|
||||
endif
|
||||
|
||||
# Parallel execution of this Makefile is disabled because it changes
|
||||
# the packages building order, that can be a problem for two reasons:
|
||||
# - If a package has an unspecified optional dependency and that
|
||||
# dependency is present when the package is built, it is used,
|
||||
# otherwise it isn't (but compilation happily proceeds) so the end
|
||||
# result will differ if the order is swapped due to parallel
|
||||
# building.
|
||||
# - Also changing the building order can be a problem if two packages
|
||||
# manipulate the same file in the target directory.
|
||||
#
|
||||
# Taking into account the above considerations, if you still want to execute
|
||||
# this top-level Makefile in parallel comment the ".NOTPARALLEL" line and
|
||||
# use the -j<jobs> option when building, e.g:
|
||||
# make -j$((`getconf _NPROCESSORS_ONLN`+1))
|
||||
ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),)
|
||||
# Disable top-level parallel build if per-package directories is not
|
||||
# used. Indeed, per-package directories is necessary to guarantee
|
||||
# determinism and reproducibility with top-level parallel build.
|
||||
.NOTPARALLEL:
|
||||
endif
|
||||
|
||||
# timezone and locale may affect build output
|
||||
ifeq ($(BR2_REPRODUCIBLE),y)
|
||||
export TZ = UTC
|
||||
export LANG = C
|
||||
export LC_ALL = C
|
||||
export GZIP = -n
|
||||
endif
|
||||
|
||||
# To put more focus on warnings, be less verbose as default
|
||||
@ -350,7 +343,7 @@ export HOSTARCH := $(shell LC_ALL=C $(HOSTCC_NOCCACHE) -v 2>&1 | \
|
||||
|
||||
# When adding a new host gcc version in Config.in,
|
||||
# update the HOSTCC_MAX_VERSION variable:
|
||||
HOSTCC_MAX_VERSION := 8
|
||||
HOSTCC_MAX_VERSION := 9
|
||||
|
||||
HOSTCC_VERSION := $(shell V=$$($(HOSTCC_NOCCACHE) --version | \
|
||||
sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p'); \
|
||||
@ -439,6 +432,7 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
|
||||
-e s/arceb/arc/ \
|
||||
-e s/arm.*/arm/ -e s/sa110/arm/ \
|
||||
-e s/aarch64.*/arm64/ \
|
||||
-e s/nds32.*/nds32/ \
|
||||
-e s/or1k/openrisc/ \
|
||||
-e s/parisc64/parisc/ \
|
||||
-e s/powerpc64.*/powerpc/ \
|
||||
@ -453,19 +447,24 @@ XZCAT := $(call qstrip,$(BR2_XZCAT))
|
||||
LZCAT := $(call qstrip,$(BR2_LZCAT))
|
||||
TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf
|
||||
|
||||
# packages compiled for the host go here
|
||||
ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
|
||||
HOST_DIR = $(if $(PKG),$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/host,$(call qstrip,$(BR2_HOST_DIR)))
|
||||
TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(if $(PKG),$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/target,$(BASE_TARGET_DIR)))
|
||||
else
|
||||
HOST_DIR := $(call qstrip,$(BR2_HOST_DIR))
|
||||
|
||||
# The target directory is common to all packages,
|
||||
# but there is one that is specific to each filesystem.
|
||||
TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(BASE_TARGET_DIR))
|
||||
endif
|
||||
|
||||
ifneq ($(HOST_DIR),$(BASE_DIR)/host)
|
||||
HOST_DIR_SYMLINK = $(BASE_DIR)/host
|
||||
$(HOST_DIR_SYMLINK): $(BASE_DIR)
|
||||
ln -snf $(HOST_DIR) $(BASE_DIR)/host
|
||||
$(HOST_DIR_SYMLINK): | $(BASE_DIR)
|
||||
ln -snf $(HOST_DIR) $(HOST_DIR_SYMLINK)
|
||||
endif
|
||||
|
||||
STAGING_DIR_SYMLINK = $(BASE_DIR)/staging
|
||||
$(STAGING_DIR_SYMLINK): | $(BASE_DIR)
|
||||
ln -snf $(STAGING_DIR) $(STAGING_DIR_SYMLINK)
|
||||
|
||||
# Quotes are needed for spaces and all in the original PATH content.
|
||||
BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(PATH)"
|
||||
|
||||
@ -594,8 +593,8 @@ world: target-post-image
|
||||
.PHONY: prepare-sdk
|
||||
prepare-sdk: world
|
||||
@$(call MESSAGE,"Rendering the SDK relocatable")
|
||||
$(TOPDIR)/support/scripts/fix-rpath host
|
||||
$(TOPDIR)/support/scripts/fix-rpath staging
|
||||
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath host
|
||||
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath staging
|
||||
$(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh
|
||||
mkdir -p $(HOST_DIR)/share/buildroot
|
||||
echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location
|
||||
@ -699,8 +698,9 @@ define PURGE_LOCALES
|
||||
rm -f $(LOCALE_WHITELIST)
|
||||
for i in $(LOCALE_NOPURGE) locale-archive; do echo $$i >> $(LOCALE_WHITELIST); done
|
||||
|
||||
for dir in $(wildcard $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/lib/locale)); \
|
||||
for dir in $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/lib/locale); \
|
||||
do \
|
||||
if [ ! -d $$dir ]; then continue; fi; \
|
||||
for langdir in $$dir/*; \
|
||||
do \
|
||||
if [ -e "$${langdir}" ]; \
|
||||
@ -728,31 +728,36 @@ $(TARGETS_ROOTFS): target-finalize
|
||||
# Avoid the rootfs name leaking down the dependency chain
|
||||
target-finalize: ROOTFS=
|
||||
|
||||
host-finalize: $(HOST_DIR_SYMLINK)
|
||||
TARGET_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list.txt))
|
||||
HOST_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-host.txt))
|
||||
STAGING_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-staging.txt))
|
||||
|
||||
.PHONY: host-finalize
|
||||
host-finalize: $(PACKAGES) $(HOST_DIR) $(HOST_DIR_SYMLINK)
|
||||
@$(call MESSAGE,"Finalizing host directory")
|
||||
$(call per-package-rsync,$(sort $(PACKAGES)),host,$(HOST_DIR))
|
||||
|
||||
.PHONY: staging-finalize
|
||||
staging-finalize:
|
||||
@ln -snf $(STAGING_DIR) $(BASE_DIR)/staging
|
||||
staging-finalize: $(STAGING_DIR_SYMLINK)
|
||||
|
||||
.PHONY: target-finalize
|
||||
target-finalize: $(PACKAGES) host-finalize
|
||||
target-finalize: $(PACKAGES) $(TARGET_DIR) host-finalize
|
||||
@$(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
|
||||
$(call per-package-rsync,$(sort $(PACKAGES)),target,$(TARGET_DIR))
|
||||
$(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 \
|
||||
$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake
|
||||
$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake \
|
||||
$(TARGET_DIR)/usr/doc
|
||||
find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f
|
||||
find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \
|
||||
\( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
|
||||
\( -name '*.a' -o -name '*.la' -o -name '*.prl' \) -print0 | xargs -0 rm -f
|
||||
ifneq ($(BR2_PACKAGE_GDB),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/gdb
|
||||
endif
|
||||
ifneq ($(BR2_PACKAGE_BASH),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/bash-completion
|
||||
rm -rf $(TARGET_DIR)/etc/bash_completion.d
|
||||
endif
|
||||
ifneq ($(BR2_PACKAGE_ZSH),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/zsh
|
||||
@ -762,6 +767,9 @@ endif
|
||||
rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc
|
||||
rm -rf $(TARGET_DIR)/usr/share/gtk-doc
|
||||
rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true
|
||||
ifneq ($(BR2_ENABLE_DEBUG):$(BR2_STRIP_strip),y:)
|
||||
rm -rf $(TARGET_DIR)/lib/debug $(TARGET_DIR)/usr/lib/debug
|
||||
endif
|
||||
$(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true
|
||||
$(STRIP_FIND_SPECIAL_LIBS_CMD) | xargs -0 -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) 2>/dev/null || true
|
||||
|
||||
@ -780,7 +788,7 @@ endif
|
||||
ln -sf ../usr/lib/os-release $(TARGET_DIR)/etc
|
||||
|
||||
@$(call MESSAGE,"Sanitizing RPATH in target tree")
|
||||
$(TOPDIR)/support/scripts/fix-rpath target
|
||||
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath target
|
||||
|
||||
# For a merged /usr, ensure that /lib, /bin and /sbin and their /usr
|
||||
# counterparts are appropriately setup as symlinks ones to the others.
|
||||
@ -802,6 +810,13 @@ endif # merged /usr
|
||||
$(call MESSAGE,"Copying overlay $(d)"); \
|
||||
$(call SYSTEM_RSYNC,$(d),$(TARGET_DIR))$(sep))
|
||||
|
||||
$(if $(TARGET_DIR_FILES_LISTS), \
|
||||
cat $(TARGET_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list.txt
|
||||
$(if $(HOST_DIR_FILES_LISTS), \
|
||||
cat $(HOST_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-host.txt
|
||||
$(if $(STAGING_DIR_FILES_LISTS), \
|
||||
cat $(STAGING_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-staging.txt
|
||||
|
||||
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \
|
||||
$(call MESSAGE,"Executing post-build script $(s)"); \
|
||||
$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
|
||||
@ -811,6 +826,7 @@ endif # merged /usr
|
||||
.PHONY: target-post-image
|
||||
target-post-image: $(TARGETS_ROOTFS) target-finalize staging-finalize
|
||||
@rm -f $(ROOTFS_COMMON_TAR)
|
||||
$(Q)mkdir -p $(BINARIES_DIR)
|
||||
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \
|
||||
$(call MESSAGE,"Executing post-image script $(s)"); \
|
||||
$(EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
|
||||
@ -892,13 +908,29 @@ graph-size:
|
||||
$(Q)$(TOPDIR)/support/scripts/size-stats --builddir $(BASE_DIR) \
|
||||
--graph $(GRAPHS_DIR)/graph-size.$(BR_GRAPH_OUT) \
|
||||
--file-size-csv $(GRAPHS_DIR)/file-size-stats.csv \
|
||||
--package-size-csv $(GRAPHS_DIR)/package-size-stats.csv
|
||||
--package-size-csv $(GRAPHS_DIR)/package-size-stats.csv \
|
||||
$(BR2_GRAPH_SIZE_OPTS)
|
||||
|
||||
.PHONY: check-dependencies
|
||||
check-dependencies:
|
||||
@cd "$(CONFIG_DIR)"; \
|
||||
$(TOPDIR)/support/scripts/graph-depends -C
|
||||
|
||||
.PHONY: show-info
|
||||
show-info:
|
||||
@:
|
||||
$(info $(call clean-json, \
|
||||
{ $(foreach p, \
|
||||
$(sort $(foreach i,$(PACKAGES) $(TARGETS_ROOTFS), \
|
||||
$(i) \
|
||||
$($(call UPPERCASE,$(i))_FINAL_RECURSIVE_DEPENDENCIES) \
|
||||
) \
|
||||
), \
|
||||
$(call json-info,$(call UPPERCASE,$(p)))$(comma) \
|
||||
) } \
|
||||
) \
|
||||
)
|
||||
|
||||
else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
|
||||
|
||||
# Some subdirectories are also package names. To avoid that "make linux"
|
||||
@ -918,9 +950,6 @@ endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
|
||||
HOSTCFLAGS = $(CFLAGS_FOR_BUILD)
|
||||
export HOSTCFLAGS
|
||||
|
||||
.PHONY: prepare-kconfig
|
||||
prepare-kconfig: outputmakefile $(BUILD_DIR)/.br2-external.in
|
||||
|
||||
$(BUILD_DIR)/buildroot-config/%onf:
|
||||
mkdir -p $(@D)/lxdialog
|
||||
PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" $(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" \
|
||||
@ -937,22 +966,22 @@ COMMON_CONFIG_ENV = \
|
||||
KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \
|
||||
BR2_CONFIG=$(BR2_CONFIG) \
|
||||
HOST_GCC_VERSION="$(HOSTCC_VERSION)" \
|
||||
BUILD_DIR=$(BUILD_DIR) \
|
||||
BASE_DIR=$(BASE_DIR) \
|
||||
SKIP_LEGACY=
|
||||
|
||||
xconfig: $(BUILD_DIR)/buildroot-config/qconf prepare-kconfig
|
||||
xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
|
||||
|
||||
gconfig: $(BUILD_DIR)/buildroot-config/gconf prepare-kconfig
|
||||
gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) srctree=$(TOPDIR) $< $(CONFIG_CONFIG_IN)
|
||||
|
||||
menuconfig: $(BUILD_DIR)/buildroot-config/mconf prepare-kconfig
|
||||
menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
|
||||
|
||||
nconfig: $(BUILD_DIR)/buildroot-config/nconf prepare-kconfig
|
||||
nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
|
||||
|
||||
config: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
||||
config: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
|
||||
|
||||
# For the config targets that automatically select options, we pass
|
||||
@ -960,11 +989,11 @@ config: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
||||
# no values are set for the legacy options so a subsequent oldconfig
|
||||
# will query them. Therefore, run an additional olddefconfig.
|
||||
|
||||
randconfig allyesconfig alldefconfig allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
||||
randconfig allyesconfig alldefconfig allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --$@ $(CONFIG_CONFIG_IN)
|
||||
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
||||
|
||||
randpackageconfig allyespackageconfig allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
||||
randpackageconfig allyespackageconfig allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
|
||||
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
|
||||
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
|
||||
@ -972,15 +1001,15 @@ randpackageconfig allyespackageconfig allnopackageconfig: $(BUILD_DIR)/buildroot
|
||||
@rm -f $(CONFIG_DIR)/.config.nopkg
|
||||
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
||||
|
||||
oldconfig syncconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
||||
oldconfig syncconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) $< --$@ $(CONFIG_CONFIG_IN)
|
||||
|
||||
defconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
||||
defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
|
||||
|
||||
define percent_defconfig
|
||||
# Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig
|
||||
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig prepare-kconfig
|
||||
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig outputmakefile
|
||||
@$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \
|
||||
$$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN)
|
||||
endef
|
||||
@ -988,7 +1017,7 @@ $(eval $(foreach d,$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)),$(call percent
|
||||
|
||||
update-defconfig: savedefconfig
|
||||
|
||||
savedefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
||||
savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
@$(COMMON_CONFIG_ENV) $< \
|
||||
--savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \
|
||||
$(CONFIG_CONFIG_IN)
|
||||
@ -1004,7 +1033,7 @@ savedefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
||||
|
||||
# staging and target directories do NOT list these as
|
||||
# dependencies anywhere else
|
||||
$(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST):
|
||||
$(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(PER_PACKAGE_DIR):
|
||||
@mkdir -p $@
|
||||
|
||||
# outputmakefile generates a Makefile in the output directory, if using a
|
||||
@ -1016,13 +1045,6 @@ ifeq ($(NEED_WRAPPER),y)
|
||||
$(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
|
||||
endif
|
||||
|
||||
# Even though the target is a real file, we mark it as PHONY as we
|
||||
# want it to be re-generated each time make is invoked, in case the
|
||||
# value of BR2_EXTERNAL is changed.
|
||||
.PHONY: $(BUILD_DIR)/.br2-external.in
|
||||
$(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
|
||||
$(Q)support/scripts/br2-external -k -o "$(@)" $(BR2_EXTERNAL)
|
||||
|
||||
# printvars prints all the variables currently defined in our
|
||||
# Makefiles. Alternatively, if a non-empty VARS variable is passed,
|
||||
# only the variables matching the make pattern passed in VARS are
|
||||
@ -1031,7 +1053,7 @@ $(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
|
||||
printvars:
|
||||
@:
|
||||
$(foreach V, \
|
||||
$(sort $(if $(VARS),$(filter $(VARS),$(.VARIABLES)),$(.VARIABLES))), \
|
||||
$(sort $(filter $(VARS),$(.VARIABLES))), \
|
||||
$(if $(filter-out environment% default automatic, \
|
||||
$(origin $V)), \
|
||||
$(if $(QUOTED_VARS),\
|
||||
@ -1043,7 +1065,7 @@ printvars:
|
||||
clean:
|
||||
rm -rf $(BASE_TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) $(HOST_DIR_SYMLINK) \
|
||||
$(BUILD_DIR) $(BASE_DIR)/staging \
|
||||
$(LEGAL_INFO_DIR) $(GRAPHS_DIR)
|
||||
$(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(PER_PACKAGE_DIR)
|
||||
|
||||
.PHONY: distclean
|
||||
distclean: clean
|
||||
@ -1051,7 +1073,7 @@ ifeq ($(O),$(CURDIR)/output)
|
||||
rm -rf $(O)
|
||||
endif
|
||||
rm -rf $(TOPDIR)/dl $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \
|
||||
$(CONFIG_DIR)/.auto.deps $(BR2_EXTERNAL_FILE)
|
||||
$(CONFIG_DIR)/.auto.deps $(BASE_DIR)/.br2-external.*
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@ -1092,6 +1114,7 @@ help:
|
||||
@echo ' <pkg>-depends - Build <pkg>'\''s dependencies'
|
||||
@echo ' <pkg>-configure - Build <pkg> up to the configure step'
|
||||
@echo ' <pkg>-build - Build <pkg> up to the build step'
|
||||
@echo ' <pkg>-show-info - generate info about <pkg>, as a JSON blurb'
|
||||
@echo ' <pkg>-show-depends - List packages on which <pkg> depends'
|
||||
@echo ' <pkg>-show-rdepends - List packages which have <pkg> as a dependency'
|
||||
@echo ' <pkg>-show-recursive-depends'
|
||||
@ -1124,7 +1147,8 @@ help:
|
||||
@echo ' source - download all sources needed for offline-build'
|
||||
@echo ' external-deps - list external packages used'
|
||||
@echo ' legal-info - generate info about license compliance'
|
||||
@echo ' printvars - dump all the internal variables'
|
||||
@echo ' show-info - generate info about packages, as a JSON blurb'
|
||||
@echo ' printvars - dump internal variables selected with VARS=...'
|
||||
@echo
|
||||
@echo ' make V=0|1 - 0 => quiet build (default), 1 => verbose build'
|
||||
@echo ' make O=dir - Locate all output files in "dir", including .config'
|
||||
@ -1170,7 +1194,7 @@ release: OUT = buildroot-$(BR2_VERSION)
|
||||
release:
|
||||
git archive --format=tar --prefix=$(OUT)/ HEAD > $(OUT).tar
|
||||
$(MAKE) O=$(OUT) manual-html manual-text manual-pdf
|
||||
$(MAKE) O=$(OUT) clean
|
||||
$(MAKE) O=$(OUT) distclean
|
||||
tar rf $(OUT).tar $(OUT)
|
||||
gzip -9 -c < $(OUT).tar > $(OUT).tar.gz
|
||||
bzip2 -9 -c < $(OUT).tar > $(OUT).tar.bz2
|
||||
|
@ -77,8 +77,10 @@ config BR2_aarch64_be
|
||||
|
||||
config BR2_csky
|
||||
bool "csky"
|
||||
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
|
||||
select BR2_ARCH_HAS_MMU_MANDATORY
|
||||
# Most variants are supported by gcc-9+, except one that is
|
||||
# handled as a special exception in package/gcc/Config.in.host
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
help
|
||||
csky is processor IP from china.
|
||||
http://www.c-sky.com/
|
||||
@ -154,6 +156,14 @@ config BR2_mips64el
|
||||
http://www.mips.com/
|
||||
http://en.wikipedia.org/wiki/MIPS_Technologies
|
||||
|
||||
config BR2_nds32
|
||||
bool "nds32"
|
||||
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
|
||||
select BR2_ARCH_HAS_MMU_MANDATORY
|
||||
help
|
||||
nds32 is a 32-bit architecture developed by Andes Technology.
|
||||
https://en.wikipedia.org/wiki/Andes_Technology
|
||||
|
||||
config BR2_nios2
|
||||
bool "Nios II"
|
||||
select BR2_ARCH_HAS_MMU_MANDATORY
|
||||
@ -294,6 +304,10 @@ config BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
|
||||
config BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
|
||||
# The following string values are defined by the individual
|
||||
# Config.in.$ARCH files
|
||||
config BR2_ARCH
|
||||
@ -419,6 +433,10 @@ if BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el
|
||||
source "arch/Config.in.mips"
|
||||
endif
|
||||
|
||||
if BR2_nds32
|
||||
source "arch/Config.in.nds32"
|
||||
endif
|
||||
|
||||
if BR2_nios2
|
||||
source "arch/Config.in.nios2"
|
||||
endif
|
||||
|
@ -13,13 +13,43 @@ config BR2_arc770d
|
||||
|
||||
config BR2_archs38
|
||||
bool "ARC HS38"
|
||||
help
|
||||
Generic ARC HS capable of running Linux, i.e. with MMU,
|
||||
caches and 32-bit multiplier. Also it corresponds to the
|
||||
default configuration in older GNU toolchain versions.
|
||||
|
||||
config BR2_archs38_64mpy
|
||||
bool "ARC HS38 with 64-bit mpy"
|
||||
help
|
||||
Fully featured ARC HS capable of running Linux, i.e. with
|
||||
MMU, caches and 64-bit multiplier.
|
||||
|
||||
If you're not sure which version of ARC HS core you build
|
||||
for use this one.
|
||||
|
||||
config BR2_archs38_full
|
||||
bool "ARC HS38 with Quad MAC & FPU"
|
||||
help
|
||||
Fully featured ARC HS with additional support for
|
||||
- Dual- and quad multiply and MC oprations
|
||||
- Double-precision FPU
|
||||
|
||||
It corresponds to "hs38_slc_full" ARC HS template in
|
||||
ARChitect.
|
||||
|
||||
config BR2_archs4x_rel31
|
||||
bool "ARC HS48 rel 31"
|
||||
help
|
||||
Latest release of HS48 processor
|
||||
- Dual- and quad multiply and MC oprations
|
||||
- Double-precision FPU
|
||||
|
||||
endchoice
|
||||
|
||||
# Choice of atomic instructions presence
|
||||
config BR2_ARC_ATOMIC_EXT
|
||||
bool "Atomic extension (LLOCK/SCOND instructions)"
|
||||
default y if BR2_arc770d || BR2_archs38
|
||||
default y if BR2_arc770d || BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
config BR2_ARCH
|
||||
default "arc" if BR2_arcle
|
||||
@ -37,10 +67,13 @@ config BR2_GCC_TARGET_CPU
|
||||
default "arc700" if BR2_arc750d
|
||||
default "arc700" if BR2_arc770d
|
||||
default "archs" if BR2_archs38
|
||||
default "hs38" if BR2_archs38_64mpy
|
||||
default "hs38_linux" if BR2_archs38_full
|
||||
default "hs4x_rel31" if BR2_archs4x_rel31
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "ARCompact" if BR2_arc750d || BR2_arc770d
|
||||
default "ARCv2" if BR2_archs38
|
||||
default "ARCv2" if BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
choice
|
||||
prompt "MMU Page Size"
|
||||
@ -60,7 +93,7 @@ choice
|
||||
|
||||
config BR2_ARC_PAGE_SIZE_4K
|
||||
bool "4KB"
|
||||
depends on BR2_arc770d || BR2_archs38
|
||||
depends on BR2_arc770d || BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
config BR2_ARC_PAGE_SIZE_8K
|
||||
bool "8KB"
|
||||
@ -70,7 +103,7 @@ config BR2_ARC_PAGE_SIZE_8K
|
||||
|
||||
config BR2_ARC_PAGE_SIZE_16K
|
||||
bool "16KB"
|
||||
depends on BR2_arc770d || BR2_archs38
|
||||
depends on BR2_arc770d || BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
endchoice
|
||||
|
||||
@ -79,3 +112,6 @@ config BR2_ARC_PAGE_SIZE
|
||||
default "4K" if BR2_ARC_PAGE_SIZE_4K
|
||||
default "8K" if BR2_ARC_PAGE_SIZE_8K
|
||||
default "16K" if BR2_ARC_PAGE_SIZE_16K
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -367,6 +367,13 @@ config BR2_cortex_a73_a53
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
||||
config BR2_emag
|
||||
bool "emag"
|
||||
depends on 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_9
|
||||
config BR2_exynos_m1
|
||||
bool "exynos-m1"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
@ -376,50 +383,62 @@ config BR2_exynos_m1
|
||||
select BR2_ARM_CPU_ARMV8A
|
||||
select BR2_ARCH_HAS_MMU_OPTIONAL
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
||||
if BR2_ARCH_IS_64
|
||||
config BR2_falkor
|
||||
bool "falkor"
|
||||
depends on 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_phecda
|
||||
bool "phecda"
|
||||
depends on 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_9
|
||||
config BR2_qdf24xx
|
||||
bool "qdf24xx"
|
||||
depends on 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_thunderx
|
||||
bool "thunderx"
|
||||
bool "thunderx (aka octeontx)"
|
||||
depends on 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
|
||||
config BR2_thunderxt81
|
||||
bool "thunderxt81"
|
||||
bool "thunderxt81 (aka octeontx81)"
|
||||
depends on 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_thunderxt83
|
||||
bool "thunderxt83"
|
||||
bool "thunderxt83 (aka octeontx83)"
|
||||
depends on 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_thunderxt88
|
||||
bool "thunderxt88"
|
||||
depends on 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_thunderxt88p1
|
||||
bool "thunderxt88p1"
|
||||
depends on 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
|
||||
config BR2_xgene1
|
||||
bool "xgene1"
|
||||
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
||||
@ -430,59 +449,94 @@ config BR2_xgene1
|
||||
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"
|
||||
depends on 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"
|
||||
depends on 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"
|
||||
depends on 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
|
||||
|
||||
if BR2_ARCH_IS_64
|
||||
comment "armv8.2a cores"
|
||||
config BR2_cortex_a55
|
||||
bool "cortex-A55"
|
||||
depends on 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_8
|
||||
config BR2_cortex_a75
|
||||
bool "cortex-A75"
|
||||
depends on 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_8
|
||||
config BR2_cortex_a75_a55
|
||||
bool "cortex-A75/A55 big.LITTLE"
|
||||
depends on 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_8
|
||||
endif # BR2_ARCH_IS_64
|
||||
config BR2_cortex_a76
|
||||
bool "cortex-A76"
|
||||
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_9
|
||||
config BR2_cortex_a76_a55
|
||||
bool "cortex-A76/A55 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
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
config BR2_neoverse_n1
|
||||
bool "neoverse-N1 (aka ares)"
|
||||
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_9
|
||||
config BR2_tsv110
|
||||
bool "tsv110"
|
||||
depends on 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_9
|
||||
|
||||
if BR2_ARCH_IS_64
|
||||
comment "armv8.3a cores"
|
||||
comment "armv8.4a cores"
|
||||
config BR2_saphira
|
||||
bool "saphira"
|
||||
depends on 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_8
|
||||
endif # BR2_ARCH_IS_64
|
||||
endchoice
|
||||
|
||||
config BR2_ARM_ENABLE_NEON
|
||||
@ -815,12 +869,17 @@ config BR2_GCC_TARGET_CPU
|
||||
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 "emag" if BR2_emag
|
||||
default "exynos-m1" if BR2_exynos_m1
|
||||
default "falkor" if BR2_falkor
|
||||
default "phecda" if BR2_phecda
|
||||
default "qdf24xx" if BR2_qdf24xx
|
||||
default "thunderx" if BR2_thunderx
|
||||
default "thunderxt81" if BR2_thunderxt81
|
||||
default "thunderxt83" if BR2_thunderxt83
|
||||
default "thunderx" if BR2_thunderx && !BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
||||
default "octeontx" if BR2_thunderx && BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
||||
default "thunderxt81" if BR2_thunderxt81 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
||||
default "octeontx81" if BR2_thunderxt81 && BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
||||
default "thunderxt83" if BR2_thunderxt83 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
||||
default "octeontx83" if BR2_thunderxt83 && BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
||||
default "thunderxt88" if BR2_thunderxt88
|
||||
default "thunderxt88p1" if BR2_thunderxt88p1
|
||||
default "xgene1" if BR2_xgene1
|
||||
@ -832,7 +891,11 @@ config BR2_GCC_TARGET_CPU
|
||||
default "cortex-a55" if BR2_cortex_a55
|
||||
default "cortex-a75" if BR2_cortex_a75
|
||||
default "cortex-a75.cortex-a55" if BR2_cortex_a75_a55
|
||||
# armv8.3a
|
||||
default "cortex-a76" if BR2_cortex_a76
|
||||
default "cortex-a76.cortex-a55" if BR2_cortex_a76_a55
|
||||
default "neoverse-n1" if BR2_neoverse_n1
|
||||
default "tsv110" if BR2_tsv110
|
||||
# armv8.4a
|
||||
default "saphira" if BR2_saphira
|
||||
|
||||
config BR2_GCC_TARGET_ABI
|
||||
@ -866,3 +929,6 @@ config BR2_GCC_TARGET_MODE
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "ARM" if BR2_arm || BR2_armeb
|
||||
default "AArch64" if BR2_aarch64 || BR2_aarch64_be
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -5,6 +5,8 @@ choice
|
||||
Specific CPU variant to use
|
||||
|
||||
config BR2_ck610
|
||||
# Not supported by upstream gcc <= 9, and handled as a special
|
||||
# exception in package/gcc/Config.in.host
|
||||
bool "ck610"
|
||||
|
||||
config BR2_ck807
|
||||
@ -13,19 +15,26 @@ config BR2_ck807
|
||||
config BR2_ck810
|
||||
bool "ck810"
|
||||
|
||||
config BR2_ck860
|
||||
bool "ck860"
|
||||
|
||||
endchoice
|
||||
|
||||
config BR2_CSKY_FPU
|
||||
bool "Enable FPU coprocessor"
|
||||
depends on BR2_ck810 || BR2_ck807
|
||||
depends on BR2_ck810 || BR2_ck807 || BR2_ck860
|
||||
help
|
||||
You can say N here if your C-SKY CPU doesn't have a
|
||||
Floating-Point Coprocessor or if you don't need FPU support
|
||||
for your user-space programs.
|
||||
|
||||
config BR2_CSKY_DSP
|
||||
bool "Enable DSP enhanced instructions"
|
||||
depends on BR2_ck810 || BR2_ck807
|
||||
config BR2_CSKY_VDSP
|
||||
bool "Enable VDSP enhanced instructions Co-processor"
|
||||
depends on BR2_CSKY_FPU
|
||||
|
||||
config BR2_GCC_TARGET_FLOAT_ABI
|
||||
default "soft" if !BR2_CSKY_FPU
|
||||
default "hard" if BR2_CSKY_FPU
|
||||
|
||||
config BR2_ARCH
|
||||
default "csky"
|
||||
@ -33,16 +42,8 @@ config BR2_ARCH
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE"
|
||||
|
||||
config BR2_GCC_TARGET_CPU
|
||||
default "ck610" if (BR2_ck610 && !BR2_CSKY_FPU && !BR2_CSKY_DSP)
|
||||
default "ck807" if (BR2_ck807 && !BR2_CSKY_FPU && !BR2_CSKY_DSP)
|
||||
default "ck807e" if (BR2_ck807 && !BR2_CSKY_FPU && BR2_CSKY_DSP)
|
||||
default "ck807f" if (BR2_ck807 && BR2_CSKY_FPU && !BR2_CSKY_DSP)
|
||||
default "ck807ef" if (BR2_ck807 && BR2_CSKY_FPU && BR2_CSKY_DSP)
|
||||
default "ck810" if (BR2_ck810 && !BR2_CSKY_FPU && !BR2_CSKY_DSP)
|
||||
default "ck810e" if (BR2_ck810 && !BR2_CSKY_FPU && BR2_CSKY_DSP)
|
||||
default "ck810f" if (BR2_ck810 && BR2_CSKY_FPU && !BR2_CSKY_DSP)
|
||||
default "ck810ef" if (BR2_ck810 && BR2_CSKY_FPU && BR2_CSKY_DSP)
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "CSKY"
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -38,3 +38,6 @@ config BR2_GCC_TARGET_CPU
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "MC68000"
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -12,3 +12,6 @@ config BR2_READELF_ARCH_NAME
|
||||
config BR2_microblaze
|
||||
bool
|
||||
default y if BR2_microblazeel || BR2_microblazebe
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -271,3 +271,6 @@ config BR2_GCC_TARGET_ABI
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "MIPS R3000"
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
14
arch/Config.in.nds32
Normal file
14
arch/Config.in.nds32
Normal file
@ -0,0 +1,14 @@
|
||||
config BR2_ARCH
|
||||
default "nds32le"
|
||||
|
||||
config BR2_GCC_TARGET_ARCH
|
||||
default "v3"
|
||||
|
||||
config BR2_ENDIAN
|
||||
default "LITTLE"
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "Andes Technology compact code size embedded RISC processor family"
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
@ -6,3 +6,6 @@ config BR2_ENDIAN
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "Altera Nios II"
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -6,3 +6,6 @@ config BR2_ENDIAN
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "OpenRISC 1000"
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -205,14 +205,9 @@ config BR2_GCC_TARGET_CPU
|
||||
default "power7" if BR2_powerpc_power7
|
||||
default "power8" if BR2_powerpc_power8
|
||||
|
||||
config BR2_GCC_TARGET_ABI
|
||||
default "altivec" if BR2_PPC_ABI_altivec
|
||||
default "no-altivec" if BR2_PPC_ABI_no-altivec
|
||||
default "spe" if BR2_PPC_ABI_spe
|
||||
default "no-spe" if BR2_PPC_ABI_no-spe
|
||||
default "ibmlongdouble" if BR2_PPC_ABI_ibmlongdouble
|
||||
default "ieeelongdouble" if BR2_PPC_ABI_ieeelongdouble
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "PowerPC" if BR2_powerpc
|
||||
default "PowerPC64" if BR2_powerpc64 || BR2_powerpc64le
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -80,7 +80,11 @@ endchoice
|
||||
|
||||
choice
|
||||
prompt "Target ABI"
|
||||
default BR2_RISCV_ABI_ILP32D if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD
|
||||
default BR2_RISCV_ABI_ILP32F if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF
|
||||
default BR2_RISCV_ABI_ILP32 if !BR2_ARCH_IS_64
|
||||
default BR2_RISCV_ABI_LP64D if BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD
|
||||
default BR2_RISCV_ABI_LP64F if BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF
|
||||
default BR2_RISCV_ABI_LP64 if BR2_ARCH_IS_64
|
||||
|
||||
config BR2_RISCV_ABI_ILP32
|
||||
@ -125,3 +129,6 @@ config BR2_GCC_TARGET_ABI
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "RISC-V"
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -30,3 +30,6 @@ config BR2_ENDIAN
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "Renesas / SuperH SH"
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -32,3 +32,6 @@ config BR2_GCC_TARGET_CPU
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "Sparc" if BR2_sparc
|
||||
default "Sparc v9" if BR2_sparc64
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -1,6 +1,8 @@
|
||||
# i386/x86_64 cpu features
|
||||
config BR2_X86_CPU_HAS_MMX
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_3DNOW
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_SSE
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_SSE2
|
||||
@ -101,6 +103,15 @@ config BR2_x86_corei7
|
||||
select BR2_X86_CPU_HAS_SSSE3
|
||||
select BR2_X86_CPU_HAS_SSE4
|
||||
select BR2_X86_CPU_HAS_SSE42
|
||||
config BR2_x86_westmere
|
||||
bool "westmere"
|
||||
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_corei7_avx
|
||||
bool "corei7-avx"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@ -146,15 +157,18 @@ config BR2_x86_k6_2
|
||||
bool "k6-2"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_athlon
|
||||
bool "athlon"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_athlon_4
|
||||
bool "athlon-4"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_opteron
|
||||
bool "opteron"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@ -200,6 +214,7 @@ config BR2_x86_c3
|
||||
bool "Via/Cyrix C3 (Samuel/Ezra cores)"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_c32
|
||||
bool "Via C3-2 (Nehemiah cores)"
|
||||
depends on !BR2_x86_64
|
||||
@ -235,8 +250,9 @@ config BR2_ARCH
|
||||
default "i686" if BR2_x86_nocona && BR2_i386
|
||||
default "i686" if BR2_x86_core2 && BR2_i386
|
||||
default "i686" if BR2_x86_corei7 && BR2_i386
|
||||
default "i686" if BR2_x86_westmere && BR2_i386
|
||||
default "i686" if BR2_x86_corei7_avx && BR2_i386
|
||||
default "i686" if BR2_x86_corei7_avx2 && BR2_i386
|
||||
default "i686" if BR2_x86_core_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
|
||||
@ -271,6 +287,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 "westmere" if BR2_x86_westmere
|
||||
default "silvermont" if BR2_x86_silvermont
|
||||
default "k8" if BR2_x86_opteron
|
||||
default "k8-sse3" if BR2_x86_opteron_sse3
|
||||
@ -290,3 +307,6 @@ config BR2_GCC_TARGET_ARCH
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "Intel 80386" if BR2_i386
|
||||
default "Advanced Micro Devices X86-64" if BR2_x86_64
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
@ -50,3 +50,6 @@ config BR2_ARCH
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "Tensilica Xtensa Processor"
|
||||
|
||||
# vim: ft=kconfig
|
||||
# -*- mode:kconfig; -*-
|
||||
|
17
arch/arch.mk.arc
Normal file
17
arch/arch.mk.arc
Normal file
@ -0,0 +1,17 @@
|
||||
ifeq ($(BR2_arc),y)
|
||||
|
||||
# -matomic is always required when the ARC core has the atomic extensions
|
||||
ifeq ($(BR2_ARC_ATOMIC_EXT),y)
|
||||
ARCH_TOOLCHAIN_WRAPPER_OPTS = -matomic
|
||||
endif
|
||||
|
||||
# Explicitly set LD's "max-page-size" instead of relying on some defaults
|
||||
ifeq ($(BR2_ARC_PAGE_SIZE_4K),y)
|
||||
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096
|
||||
else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y)
|
||||
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192
|
||||
else ifeq ($(BR2_ARC_PAGE_SIZE_16K),y)
|
||||
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384
|
||||
endif
|
||||
|
||||
endif
|
26
arch/arch.mk.csky
Normal file
26
arch/arch.mk.csky
Normal file
@ -0,0 +1,26 @@
|
||||
#
|
||||
# Configure the GCC_TARGET_ARCH variable and append the
|
||||
# appropriate C-SKY ISA extensions.
|
||||
#
|
||||
|
||||
ifeq ($(BR2_csky),y)
|
||||
|
||||
ifeq ($(BR2_ck610),y)
|
||||
GCC_TARGET_CPU := ck610
|
||||
else ifeq ($(BR2_ck807),y)
|
||||
GCC_TARGET_CPU := ck807
|
||||
else ifeq ($(BR2_ck810),y)
|
||||
GCC_TARGET_CPU := ck810
|
||||
else ifeq ($(BR2_ck860),y)
|
||||
GCC_TARGET_CPU := ck860
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_CSKY_FPU),y)
|
||||
GCC_TARGET_CPU := $(GCC_TARGET_CPU)f
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_CSKY_VDSP),y)
|
||||
GCC_TARGET_CPU := $(GCC_TARGET_CPU)v
|
||||
endif
|
||||
|
||||
endif
|
@ -13,11 +13,11 @@ 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/riscv-pk/Config.in"
|
||||
source "boot/optee-os/Config.in"
|
||||
source "boot/opensbi/Config.in"
|
||||
source "boot/s500-bootloader/Config.in"
|
||||
source "boot/shim/Config.in"
|
||||
source "boot/syslinux/Config.in"
|
||||
source "boot/ts4800-mbrboot/Config.in"
|
||||
source "boot/uboot/Config.in"
|
||||
source "boot/vexpress-firmware/Config.in"
|
||||
|
||||
|
@ -1,61 +0,0 @@
|
||||
From 0d581abe6620ac69adec321b94390e009802f36a Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Sun, 13 Mar 2016 14:32:33 +0100
|
||||
Subject: [PATCH] Use ld instead of gcc for linking
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Makefile | 11 ++++++-----
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index ce40314..271bb4f 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,7 @@
|
||||
CROSS_COMPILE ?= arm-none-eabi-
|
||||
|
||||
CC = $(CROSS_COMPILE)gcc
|
||||
+LD = $(CROSS_COMPILE)ld
|
||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||
OBJDUMP = $(CROSS_COMPILE)objdump
|
||||
SIZE = $(CROSS_COMPILE)size
|
||||
@@ -10,7 +11,7 @@ OPENOCD = openocd
|
||||
CFLAGS := -mthumb -mcpu=cortex-m4
|
||||
CFLAGS += -ffunction-sections -fdata-sections
|
||||
CFLAGS += -Os -std=gnu99 -Wall
|
||||
-LDFLAGS := -nostartfiles -Wl,--gc-sections
|
||||
+LINKERFLAGS := -nostartfiles --gc-sections
|
||||
|
||||
obj-y += gpio.o mpu.o
|
||||
obj-f4 += $(obj-y) usart-f4.o
|
||||
@@ -22,22 +23,22 @@ all: stm32f429i-disco stm32429i-eval stm32f469i-disco stm32746g-eval
|
||||
$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
stm32f429i-disco: stm32f429i-disco.o $(obj-f4)
|
||||
- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32f429i-disco.elf stm32f429i-disco.o $(obj-f4)
|
||||
+ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32f429i-disco.elf stm32f429i-disco.o $(obj-f4)
|
||||
$(OBJCOPY) -Obinary stm32f429i-disco.elf stm32f429i-disco.bin
|
||||
$(SIZE) stm32f429i-disco.elf
|
||||
|
||||
stm32429i-eval: stm32429i-eval.o $(obj-f4)
|
||||
- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32429i-eval.elf stm32429i-eval.o $(obj-f4)
|
||||
+ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32429i-eval.elf stm32429i-eval.o $(obj-f4)
|
||||
$(OBJCOPY) -Obinary stm32429i-eval.elf stm32429i-eval.bin
|
||||
$(SIZE) stm32429i-eval.elf
|
||||
|
||||
stm32f469i-disco: stm32f469i-disco.o $(obj-f4)
|
||||
- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32f469i-disco.elf stm32f469i-disco.o $(obj-f4)
|
||||
+ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32f469i-disco.elf stm32f469i-disco.o $(obj-f4)
|
||||
$(OBJCOPY) -Obinary stm32f469i-disco.elf stm32f469i-disco.bin
|
||||
$(SIZE) stm32f469i-disco.elf
|
||||
|
||||
stm32746g-eval: stm32746g-eval.o $(obj-f7)
|
||||
- $(CC) -T stm32f429.lds $(LDFLAGS) -o stm32746g-eval.elf stm32746g-eval.o $(obj-f7)
|
||||
+ $(LD) -T stm32f429.lds $(LINKERFLAGS) -o stm32746g-eval.elf stm32746g-eval.o $(obj-f7)
|
||||
$(OBJCOPY) -Obinary stm32746g-eval.elf stm32746g-eval.bin
|
||||
$(SIZE) stm32746g-eval.elf
|
||||
|
||||
--
|
||||
2.6.4
|
||||
|
@ -1,2 +1,2 @@
|
||||
# Locally calculated
|
||||
sha256 dbd715c8b99f7d266f74a04707a4dac76b75b31321f24dee5256a6348260530c afboot-stm32-v0.1.tar.gz
|
||||
sha256 9b37b661bd3091ceb5d8dc5a56a2dfc02ae9ebc0c63dad3c4289c9d6b3d3ec89 afboot-stm32-0.2.tar.gz
|
||||
|
@ -4,8 +4,8 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
AFBOOT_STM32_VERSION = v0.1
|
||||
AFBOOT_STM32_SITE = $(call github,mcoquelin-stm32,afboot-stm32,$(AFBOOT_STM32_VERSION))
|
||||
AFBOOT_STM32_VERSION = 0.2
|
||||
AFBOOT_STM32_SITE = $(call github,mcoquelin-stm32,afboot-stm32,v$(AFBOOT_STM32_VERSION))
|
||||
AFBOOT_STM32_INSTALL_IMAGES = YES
|
||||
AFBOOT_STM32_INSTALL_TARGET = NO
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE
|
||||
bool "ARM Trusted Firmware (ATF)"
|
||||
depends on BR2_aarch64 && BR2_TARGET_UBOOT
|
||||
depends on (BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A) && \
|
||||
BR2_TARGET_UBOOT
|
||||
help
|
||||
Enable this option if you want to build the ATF for your ARM
|
||||
based embedded device.
|
||||
@ -90,6 +91,30 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT
|
||||
bl31.bin. This is used for example by the Xilinx version of
|
||||
U-Boot SPL to load ATF on the ZynqMP SoC.
|
||||
|
||||
choice
|
||||
prompt "BL32"
|
||||
default BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT
|
||||
help
|
||||
Select BL32 stage for the trusted firmware
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_DEFAULT
|
||||
bool "Default"
|
||||
help
|
||||
With this option selected, ATF will not use any BL32 stage,
|
||||
unless if one is explicitly chosen using the SPD (for
|
||||
AArch64) or AARCH32_SP (for AArch32) variables, which can be
|
||||
passed through
|
||||
BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES.
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE
|
||||
bool "OP-TEE OS"
|
||||
depends on BR2_TARGET_OPTEE_OS
|
||||
help
|
||||
This option allows to embed OP-TEE OS as the BL32 part of
|
||||
the ARM Trusted Firmware boot sequence.
|
||||
|
||||
endchoice
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33
|
||||
bool "Use U-Boot as BL33"
|
||||
depends on BR2_TARGET_UBOOT
|
||||
@ -99,10 +124,55 @@ config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33
|
||||
gets built before ATF, and that the appropriate BL33
|
||||
variable pointing to u-boot.bin is passed when building ATF.
|
||||
|
||||
if BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE
|
||||
string "U-Boot BL33 image name"
|
||||
default "u-boot.bin"
|
||||
help
|
||||
Name of the U-Boot BL33 image to include in ATF, it must
|
||||
have been installed to BINARIES_DIR by the U-Boot package.
|
||||
|
||||
endif
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS
|
||||
string "Additional ATF make targets"
|
||||
help
|
||||
Additional targets for the ATF build
|
||||
E.G. When using the QorIQ custom ATF repository from NXP,
|
||||
the target 'pbl' can be used to build the pbl binary.
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES
|
||||
string "Additional ATF build variables"
|
||||
help
|
||||
Additional parameters for the ATF build
|
||||
E.G. 'DEBUG=1 LOG_LEVEL=20'
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG
|
||||
bool "Build in debug mode"
|
||||
help
|
||||
Enable this option to build ATF with DEBUG=1.
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES
|
||||
string "Binary boot images"
|
||||
default "*.bin"
|
||||
help
|
||||
Names of generated image files that are installed in the
|
||||
output images/ directory.
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC
|
||||
bool "Needs dtc"
|
||||
select BR2_PACKAGE_HOST_DTC
|
||||
help
|
||||
Select this option if your ATF board configuration
|
||||
requires the Device Tree compiler to be available.
|
||||
|
||||
config BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN
|
||||
bool "Needs arm-none-eabi toolchain"
|
||||
depends on BR2_aarch64
|
||||
depends on BR2_HOSTARCH = "x86_64"
|
||||
help
|
||||
Select this option if your ATF board configuration requires
|
||||
an ARM32 bare metal toolchain to be available.
|
||||
|
||||
endif
|
||||
|
@ -5,8 +5,6 @@
|
||||
################################################################################
|
||||
|
||||
ARM_TRUSTED_FIRMWARE_VERSION = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_VERSION))
|
||||
ARM_TRUSTED_FIRMWARE_LICENSE = BSD-3-Clause
|
||||
ARM_TRUSTED_FIRMWARE_LICENSE_FILES = license.rst
|
||||
|
||||
ifeq ($(ARM_TRUSTED_FIRMWARE_VERSION),custom)
|
||||
# Handle custom ATF tarballs as specified by the configuration
|
||||
@ -19,6 +17,12 @@ ARM_TRUSTED_FIRMWARE_SITE_METHOD = git
|
||||
else
|
||||
# Handle stable official ATF versions
|
||||
ARM_TRUSTED_FIRMWARE_SITE = $(call github,ARM-software,arm-trusted-firmware,$(ARM_TRUSTED_FIRMWARE_VERSION))
|
||||
# The licensing of custom or from-git versions is unknown.
|
||||
# This is valid only for the official v1.4.
|
||||
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION),y)
|
||||
ARM_TRUSTED_FIRMWARE_LICENSE = BSD-3-Clause
|
||||
ARM_TRUSTED_FIRMWARE_LICENSE_FILES = license.rst
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE)$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION),y)
|
||||
@ -27,16 +31,57 @@ endif
|
||||
|
||||
ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES = YES
|
||||
|
||||
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC),y)
|
||||
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-dtc
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN),y)
|
||||
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += host-arm-gnu-a-toolchain
|
||||
endif
|
||||
|
||||
ARM_TRUSTED_FIRMWARE_PLATFORM = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM))
|
||||
|
||||
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_DEBUG),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += DEBUG=1
|
||||
ARM_TRUSTED_FIRMWARE_IMG_DIR = $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/debug
|
||||
else
|
||||
ARM_TRUSTED_FIRMWARE_IMG_DIR = $(@D)/build/$(ARM_TRUSTED_FIRMWARE_PLATFORM)/release
|
||||
endif
|
||||
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES)) \
|
||||
PLAT=$(ARM_TRUSTED_FIRMWARE_PLATFORM)
|
||||
|
||||
ifeq ($(BR2_ARM_CPU_ARMV7A),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARM_ARCH_MAJOR=7
|
||||
else ifeq ($(BR2_ARM_CPU_ARMV8A),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARM_ARCH_MAJOR=8
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_arm),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARCH=aarch32
|
||||
else ifeq ($(BR2_aarch64),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += ARCH=aarch64
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE),y)
|
||||
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += optee-os
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += \
|
||||
BL32=$(BINARIES_DIR)/tee-header_v2.bin \
|
||||
BL32_EXTRA1=$(BINARIES_DIR)/tee-pager_v2.bin \
|
||||
BL32_EXTRA2=$(BINARIES_DIR)/tee-pageable_v2.bin
|
||||
ifeq ($(BR2_aarch64),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += SPD=opteed
|
||||
endif
|
||||
ifeq ($(BR2_arm),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += AARCH32_SP=optee
|
||||
endif
|
||||
endif # BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL32_OPTEE
|
||||
|
||||
ifeq ($(BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33),y)
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += BL33=$(BINARIES_DIR)/u-boot.bin
|
||||
ARM_TRUSTED_FIRMWARE_UBOOT_BIN = $(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_BL33_IMAGE))
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_OPTS += BL33=$(BINARIES_DIR)/$(ARM_TRUSTED_FIRMWARE_UBOOT_BIN)
|
||||
ARM_TRUSTED_FIRMWARE_DEPENDENCIES += uboot
|
||||
endif
|
||||
|
||||
@ -104,6 +149,9 @@ define ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL_ELF
|
||||
endef
|
||||
endif
|
||||
|
||||
ARM_TRUSTED_FIRMWARE_MAKE_TARGETS += \
|
||||
$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_TARGETS))
|
||||
|
||||
define ARM_TRUSTED_FIRMWARE_BUILD_CMDS
|
||||
$(ARM_TRUSTED_FIRMWARE_BUILD_FIPTOOL)
|
||||
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(ARM_TRUSTED_FIRMWARE_MAKE_OPTS) \
|
||||
@ -112,7 +160,9 @@ define ARM_TRUSTED_FIRMWARE_BUILD_CMDS
|
||||
endef
|
||||
|
||||
define ARM_TRUSTED_FIRMWARE_INSTALL_IMAGES_CMDS
|
||||
cp -dpf $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/*.bin $(BINARIES_DIR)/
|
||||
$(foreach f,$(call qstrip,$(BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES)), \
|
||||
cp -dpf $(ARM_TRUSTED_FIRMWARE_IMG_DIR)/$(f) $(BINARIES_DIR)/
|
||||
)
|
||||
$(ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL)
|
||||
$(ARM_TRUSTED_FIRMWARE_BL31_UBOOT_INSTALL_ELF)
|
||||
endef
|
||||
|
@ -19,7 +19,7 @@ choice
|
||||
prompt "AT91 Bootstrap 3 version"
|
||||
|
||||
config BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION
|
||||
bool "3.8.6"
|
||||
bool "3.9.0"
|
||||
|
||||
config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT
|
||||
bool "Custom Git repository"
|
||||
@ -27,8 +27,15 @@ config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT
|
||||
This option allows Buildroot to get the AT91 Bootstrap 3
|
||||
source code from a Git repository.
|
||||
|
||||
config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL
|
||||
bool "Custom tarball"
|
||||
|
||||
endchoice
|
||||
|
||||
config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION
|
||||
string "URL of custom AT91Bootstrap tarball"
|
||||
depends on BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL
|
||||
|
||||
if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT
|
||||
|
||||
config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL
|
||||
@ -44,9 +51,10 @@ endif
|
||||
|
||||
config BR2_TARGET_AT91BOOTSTRAP3_VERSION
|
||||
string
|
||||
default "v3.8.6" if BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION
|
||||
default "v3.9.0" if BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION
|
||||
default BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_VERSION \
|
||||
if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT
|
||||
default "custom" if BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL
|
||||
|
||||
config BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_PATCH_DIR
|
||||
string "custom patch dir"
|
||||
|
@ -1,2 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 a2e9ec6f42ee3b5a805fe215257b63070b6c498d57c568c46fcb18fd1b38ea7e at91bootstrap3-v3.8.6.tar.gz
|
||||
sha256 e23e6df23b79ca81e412cb73a1f48bd95df8d46c7d52a1d073c2ed9d4f3a1a71 at91bootstrap3-v3.9.0.tar.gz
|
||||
sha256 732b2a55b5905031d8ae420136ffb5f8889214865784386bf754cffab8d2bc6e main.c
|
||||
|
@ -6,7 +6,12 @@
|
||||
|
||||
AT91BOOTSTRAP3_VERSION = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_VERSION))
|
||||
|
||||
ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT),y)
|
||||
ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL),y)
|
||||
AT91BOOTSTRAP3_TARBALL = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION))
|
||||
AT91BOOTSTRAP3_SITE = $(patsubst %/,%,$(dir $(AT91BOOTSTRAP3_TARBALL)))
|
||||
AT91BOOTSTRAP3_SOURCE = $(notdir $(AT91BOOTSTRAP3_TARBALL))
|
||||
BR_NO_CHECK_HASH_FOR += $(AT91BOOTSTRAP3_SOURCE)
|
||||
else ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_GIT),y)
|
||||
AT91BOOTSTRAP3_SITE = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_REPO_URL))
|
||||
AT91BOOTSTRAP3_SITE_METHOD = git
|
||||
BR_NO_CHECK_HASH_FOR += $(AT91BOOTSTRAP3_SOURCE)
|
||||
@ -15,7 +20,9 @@ AT91BOOTSTRAP3_SITE = $(call github,linux4sam,at91bootstrap,$(AT91BOOTSTRAP3_VER
|
||||
endif
|
||||
|
||||
AT91BOOTSTRAP3_LICENSE = Atmel License
|
||||
ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_LATEST_VERSION),y)
|
||||
AT91BOOTSTRAP3_LICENSE_FILES = main.c
|
||||
endif
|
||||
|
||||
AT91BOOTSTRAP3_INSTALL_IMAGES = YES
|
||||
AT91BOOTSTRAP3_INSTALL_TARGET = NO
|
||||
@ -78,6 +85,12 @@ $(error No custom at91bootstrap3 repository version specified. Check your BR2_TA
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL),y)
|
||||
ifeq ($(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION)),)
|
||||
$(error No custom AT91Bootstrap3 tarball specified. Check your BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION setting)
|
||||
endif # qstrip BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL_LOCATION
|
||||
endif # BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_TARBALL
|
||||
|
||||
endif # BR_BUILDING
|
||||
|
||||
$(eval $(kconfig-package))
|
||||
|
@ -12,7 +12,7 @@ choice
|
||||
Select the specific Barebox version you want to use
|
||||
|
||||
config BR2_TARGET_BAREBOX_LATEST_VERSION
|
||||
bool "2018.12.0"
|
||||
bool "2020.03.0"
|
||||
|
||||
config BR2_TARGET_BAREBOX_CUSTOM_VERSION
|
||||
bool "Custom version"
|
||||
@ -40,7 +40,7 @@ endif
|
||||
|
||||
config BR2_TARGET_BAREBOX_VERSION
|
||||
string
|
||||
default "2018.12.0" if BR2_TARGET_BAREBOX_LATEST_VERSION
|
||||
default "2020.03.0" if BR2_TARGET_BAREBOX_LATEST_VERSION
|
||||
default BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE if BR2_TARGET_BAREBOX_CUSTOM_VERSION
|
||||
default "custom" if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
|
||||
default BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION if BR2_TARGET_BAREBOX_CUSTOM_GIT
|
||||
|
@ -1,5 +1,8 @@
|
||||
# From https://www.barebox.org/download/barebox-2018.12.0.tar.bz2.md5
|
||||
md5 f84d7d3562055c80c3eedce0b14d4a0d barebox-2018.12.0.tar.bz2
|
||||
# From https://www.barebox.org/download/barebox-2020.03.0.tar.bz2.md5
|
||||
md5 9e93df6dadb898d91d9f3811456a94bd barebox-2020.03.0.tar.bz2
|
||||
|
||||
# Locally calculated
|
||||
sha256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 barebox-2018.12.0.tar.bz2
|
||||
sha256 625b031d1fe99bdd3bf95f79c8ecfcf67101bc2500ec4816e034bf989f16d1c2 barebox-2020.03.0.tar.bz2
|
||||
|
||||
# License files, locally computed
|
||||
sha256 ab1122aa9f9073ad1ec824edcd970b16a6a7881a34a18fd56c080debb2dca5d4 COPYING
|
||||
|
@ -25,15 +25,23 @@ $(1)_SOURCE = $$(notdir $$($(1)_TARBALL))
|
||||
else ifeq ($$(BR2_TARGET_BAREBOX_CUSTOM_GIT),y)
|
||||
$(1)_SITE = $$(call qstrip,$$(BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL))
|
||||
$(1)_SITE_METHOD = git
|
||||
# Override the default value of _SOURCE to 'barebox-*' so that it is not
|
||||
# downloaded a second time for barebox-aux; also alows avoiding the hash
|
||||
# check:
|
||||
$(1)_SOURCE = barebox-$$($(1)_VERSION).tar.gz
|
||||
else
|
||||
# Handle stable official Barebox versions
|
||||
$(1)_SOURCE = barebox-$$($(1)_VERSION).tar.bz2
|
||||
$(1)_SITE = https://www.barebox.org/download
|
||||
endif
|
||||
|
||||
$(1)_DL_SUBDIR = barebox
|
||||
|
||||
$(1)_DEPENDENCIES = host-lzop
|
||||
$(1)_LICENSE = GPL-2.0 with exceptions
|
||||
ifeq ($(BR2_TARGET_BAREBOX_LATEST_VERSION),y)
|
||||
$(1)_LICENSE_FILES = COPYING
|
||||
endif
|
||||
|
||||
$(1)_CUSTOM_EMBEDDED_ENV_PATH = $$(call qstrip,$$(BR2_TARGET_$(1)_CUSTOM_EMBEDDED_ENV_PATH))
|
||||
|
||||
@ -76,6 +84,10 @@ $(1)_KCONFIG_FRAGMENT_FILES = $$(call qstrip,$$(BR2_TARGET_$(1)_CONFIG_FRAGMENT_
|
||||
$(1)_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
|
||||
$(1)_KCONFIG_OPTS = $$($(1)_MAKE_FLAGS)
|
||||
|
||||
$(1)_KCONFIG_DEPENDENCIES = \
|
||||
$(BR2_BISON_HOST_DEPENDENCY) \
|
||||
$(BR2_FLEX_HOST_DEPENDENCY)
|
||||
|
||||
ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y)
|
||||
define $(1)_BUILD_BAREBOXENV_CMDS
|
||||
$$(TARGET_CC) $$(TARGET_CFLAGS) $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \
|
||||
@ -98,8 +110,8 @@ endif
|
||||
|
||||
ifneq ($$($(1)_CUSTOM_EMBEDDED_ENV_PATH),)
|
||||
define $(1)_KCONFIG_FIXUP_CMDS
|
||||
$$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT,$$(@D)/.config)
|
||||
$$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)",$$(@D)/.config)
|
||||
$$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT)
|
||||
$$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)")
|
||||
endef
|
||||
endif
|
||||
|
||||
|
@ -7,26 +7,6 @@ config BR2_TARGET_BINARIES_MARVELL
|
||||
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.
|
||||
firmware, which is 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_mss_ap_cp1_a8040.img" if BR2_TARGET_BINARIES_MARVELL_8040
|
||||
default "mrvl_scp_bl2_mss_ap_cp1_a7040.img" if BR2_TARGET_BINARIES_MARVELL_7040
|
||||
|
||||
endif
|
||||
|
@ -1,3 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 45c348d7a62fd147e7c6a59211a77876ce5dd26de690bd45ab79c8ff891acedf binaries-marvell-14481806e699dcc6f7025dbe3e46cf26bb787791.tar.gz
|
||||
sha256 509a36bb6faa106bbc9730c23038a361ee0c860e53a4cdf9e8605c0174fe45f7 README.md
|
||||
sha256 d818c95bcd4d5c026238d6e554151184ed7fea15bce1f861f9068b97b4cd320a binaries-marvell-c5d3ef2b63ba66d8717ecbe679fd2e639cde88ee.tar.gz
|
||||
sha256 e6d08ef60068ee72c68835001a24eb832dcba27cac0dde0f179dfb428be050ca README.md
|
||||
|
@ -4,18 +4,17 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# This is version binaries-marvell-armada-18.06
|
||||
BINARIES_MARVELL_VERSION = 14481806e699dcc6f7025dbe3e46cf26bb787791
|
||||
# This is version binaries-marvell-armada-18.12
|
||||
BINARIES_MARVELL_VERSION = c5d3ef2b63ba66d8717ecbe679fd2e639cde88ee
|
||||
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
|
||||
$(INSTALL) -D -m 0644 $(@D)/mrvl_scp_bl2.img $(BINARIES_DIR)/scp-fw.bin
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
|
@ -38,4 +38,9 @@ config BR2_TARGET_BOOT_WRAPPER_AARCH64_PSCI
|
||||
Boot secondary SMP cores using PSCI firmware calls. If
|
||||
disabled, the spin-table method is used instead.
|
||||
|
||||
config BR2_TARGET_BOOT_WRAPPER_AARCH64_GICV3
|
||||
bool "Enable GICv3 instead of GICv2"
|
||||
help
|
||||
Boot using GICv3 instead of GICv2.
|
||||
|
||||
endif
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
BOOT_WRAPPER_AARCH64_VERSION = 4266507a84f8c06452109d38e0350d4759740694
|
||||
BOOT_WRAPPER_AARCH64_VERSION = fd74c8cbd0e17483d2299208cad9742bee605ca7
|
||||
BOOT_WRAPPER_AARCH64_SITE = git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git
|
||||
BOOT_WRAPPER_AARCH64_LICENSE = BSD-3-Clause
|
||||
BOOT_WRAPPER_AARCH64_LICENSE_FILES = LICENSE.txt
|
||||
@ -15,19 +15,11 @@ BOOT_WRAPPER_AARCH64_INSTALL_IMAGES = YES
|
||||
# Makefile.
|
||||
BOOT_WRAPPER_AARCH64_AUTORECONF = YES
|
||||
|
||||
BOOT_WRAPPER_AARCH64_DTB = /arch/arm64/boot/dts/$(basename $(call qstrip,$(BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS))).dtb
|
||||
|
||||
# Fixup the path to the DTB in configure.ac. In the future, this
|
||||
# should hopefully be made more configurable by the
|
||||
# boot-wrapper-aarch64 developers.
|
||||
define BOOT_WRAPPER_AARCH64_FIX_DTB_NAME
|
||||
$(SED) 's%^KERN_DTB=.*%KERN_DTB=$(BOOT_WRAPPER_AARCH64_DTB)%' $(@D)/configure.ac
|
||||
endef
|
||||
|
||||
BOOT_WRAPPER_AARCH64_PRE_PATCH_HOOKS += BOOT_WRAPPER_AARCH64_FIX_DTB_NAME
|
||||
BOOT_WRAPPER_AARCH64_DTB = $(LINUX_DIR)/arch/arm64/boot/dts/$(basename $(call qstrip,$(BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS))).dtb
|
||||
|
||||
BOOT_WRAPPER_AARCH64_CONF_OPTS = \
|
||||
--with-kernel-dir=$(LINUX_DIR) \
|
||||
--with-dtb=$(BOOT_WRAPPER_AARCH64_DTB) \
|
||||
--with-cmdline=$(BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS)
|
||||
|
||||
ifeq ($(BR2_TARGET_BOOT_WRAPPER_AARCH64_PSCI),y)
|
||||
@ -36,6 +28,10 @@ else
|
||||
BOOT_WRAPPER_AARCH64_CONF_OPTS += --disable-psci
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_BOOT_WRAPPER_AARCH64_GICV3),y)
|
||||
BOOT_WRAPPER_AARCH64_CONF_OPTS += --enable-gicv3
|
||||
endif
|
||||
|
||||
# We need to convince the configure script that the Linux kernel tree
|
||||
# exists, as well as the DTB and the kernel Image. Even though those
|
||||
# are available on the build machine, the configure script uses
|
||||
|
@ -0,0 +1,313 @@
|
||||
From 6643507ce30f775008e093580f0c9499dfb2c485 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Hardy <simon.hardy@itdev.co.uk>
|
||||
Date: Tue, 24 Mar 2020 13:29:12 +0000
|
||||
Subject: build: Fix GRUB i386-pc build with Ubuntu gcc
|
||||
|
||||
With recent versions of gcc on Ubuntu a very large lzma_decompress.img file is
|
||||
output. (e.g. 134479600 bytes instead of 2864.) This causes grub-mkimage to
|
||||
fail with: "error: Decompressor is too big."
|
||||
|
||||
This seems to be caused by a section .note.gnu.property that is placed at an
|
||||
offset such that objcopy needs to pad the img file with zeros.
|
||||
|
||||
This issue is present on:
|
||||
Ubuntu 19.10 with gcc (Ubuntu 8.3.0-26ubuntu1~19.10) 8.3.0
|
||||
Ubuntu 19.10 with gcc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
|
||||
|
||||
This issue is not present on:
|
||||
Ubuntu 19.10 with gcc (Ubuntu 7.5.0-3ubuntu1~19.10) 7.5.0
|
||||
RHEL 8.0 with gcc 8.3.1 20190507 (Red Hat 8.3.1-4)
|
||||
|
||||
The issue can be fixed by removing the section using objcopy as shown in
|
||||
this patch.
|
||||
|
||||
Signed-off-by: Simon Hardy <simon.hardy@itdev.co.uk>
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
[Retrieved (and updated to directly patch Makefile.in instead of
|
||||
gentpl.py to avoid adding a dependency on python) from:
|
||||
http://git.savannah.gnu.org/cgit/grub.git/commit/?id=6643507ce30f775008e093580f0c9499dfb2c485]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
[yann.morin.1998@free.fr:
|
||||
- keep the part patching gentpl.py
|
||||
- restore it as a git-formatted patch
|
||||
- introduce the hunk about the generated .am file
|
||||
]
|
||||
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
|
||||
---
|
||||
gentpl.py | 2 1 1 0 +-
|
||||
grub-core/Makefile.in | 38 19 19 0 +++++++++++++++++++-------------------
|
||||
2 files changed, 20 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/gentpl.py b/gentpl.py
|
||||
index 387588c05..c86550d4f 100644
|
||||
--- a/gentpl.py
|
||||
+++ b/gentpl.py
|
||||
@@ -766,7 +766,7 @@ def image(defn, platform):
|
||||
if test x$(TARGET_APPLE_LINKER) = x1; then \
|
||||
$(MACHO2IMG) $< $@; \
|
||||
else \
|
||||
- $(TARGET_OBJCOPY) $(""" + cname(defn) + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; \
|
||||
+ $(TARGET_OBJCOPY) $(""" + cname(defn) + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; \
|
||||
fi
|
||||
""")
|
||||
|
||||
diff --git a/grub-core/Makefile.core.am b/grub-core/Makefile.core.am
|
||||
index 387588c05..c86550d4f 100644
|
||||
--- a/grub-core/Makefile.core.am
|
||||
+++ 2/grub-core/Makefile.core.am
|
||||
@@ -22897,7 +22897,7 @@
|
||||
CLEANFILES += boot.img
|
||||
|
||||
boot.img: boot.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -22918,7 +22918,7 @@
|
||||
CLEANFILES += boot.img
|
||||
|
||||
boot.img: boot.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -22939,7 +22939,7 @@
|
||||
CLEANFILES += boot.img
|
||||
|
||||
boot.img: boot.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -22960,7 +22960,7 @@
|
||||
CLEANFILES += boot_hybrid.img
|
||||
|
||||
boot_hybrid.img: boot_hybrid.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_hybrid_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_hybrid_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -22981,7 +22981,7 @@
|
||||
CLEANFILES += cdboot.img
|
||||
|
||||
cdboot.img: cdboot.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23002,7 +23002,7 @@
|
||||
CLEANFILES += cdboot.img
|
||||
|
||||
cdboot.img: cdboot.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23023,7 +23023,7 @@
|
||||
CLEANFILES += pxeboot.img
|
||||
|
||||
pxeboot.img: pxeboot.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(pxeboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(pxeboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23044,7 +23044,7 @@
|
||||
CLEANFILES += diskboot.img
|
||||
|
||||
diskboot.img: diskboot.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23065,7 +23065,7 @@
|
||||
CLEANFILES += diskboot.img
|
||||
|
||||
diskboot.img: diskboot.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23086,7 +23086,7 @@
|
||||
CLEANFILES += lnxboot.img
|
||||
|
||||
lnxboot.img: lnxboot.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lnxboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lnxboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23107,7 +23107,7 @@
|
||||
CLEANFILES += xz_decompress.img
|
||||
|
||||
xz_decompress.img: xz_decompress.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23128,7 +23128,7 @@
|
||||
CLEANFILES += xz_decompress.img
|
||||
|
||||
xz_decompress.img: xz_decompress.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23149,7 +23149,7 @@
|
||||
CLEANFILES += xz_decompress.img
|
||||
|
||||
xz_decompress.img: xz_decompress.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23170,7 +23170,7 @@
|
||||
CLEANFILES += none_decompress.img
|
||||
|
||||
none_decompress.img: none_decompress.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23191,7 +23191,7 @@
|
||||
CLEANFILES += none_decompress.img
|
||||
|
||||
none_decompress.img: none_decompress.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23212,7 +23212,7 @@
|
||||
CLEANFILES += none_decompress.img
|
||||
|
||||
none_decompress.img: none_decompress.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23233,7 +23233,7 @@
|
||||
CLEANFILES += lzma_decompress.img
|
||||
|
||||
lzma_decompress.img: lzma_decompress.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lzma_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lzma_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23254,7 +23254,7 @@
|
||||
CLEANFILES += fwstart.img
|
||||
|
||||
fwstart.img: fwstart.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
@@ -23275,7 +23275,7 @@
|
||||
CLEANFILES += fwstart_fuloong2f.img
|
||||
|
||||
fwstart_fuloong2f.img: fwstart_fuloong2f.image$(EXEEXT)
|
||||
- if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_fuloong2f_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_fuloong2f_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
endif
|
||||
|
||||
diff --git a/grub-core/Makefile.in b/grub-core/Makefile.in
|
||||
index 387588c05..c86550d4f 100644
|
||||
--- a/grub-core/Makefile.in
|
||||
+++ b/grub-core/Makefile.in
|
||||
@@ -46531,61 +46531,61 @@
|
||||
@COND_riscv64_efi_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(TARGET_STRIP) -S -x $(kernel_exec) -o $@.bin $<; $(TARGET_OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -ed2022 -ed2016 -wd1106 -nu -nd $@.bin $@; rm -f $@.bin; elif test ! -z '$(TARGET_OBJ2ELF)'; then $(TARGET_STRIP) $(kernel_exec_STRIPFLAGS) -o $@.bin $< && $(TARGET_OBJ2ELF) $@.bin $@ || (rm -f $@; rm -f $@.bin; exit 1); rm -f $@.bin; else $(TARGET_STRIP) $(kernel_exec_STRIPFLAGS) -o $@ $<; fi
|
||||
|
||||
@COND_i386_pc_TRUE@boot.img: boot.image$(EXEEXT)
|
||||
-@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_i386_qemu_TRUE@boot.img: boot.image$(EXEEXT)
|
||||
-@COND_i386_qemu_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_i386_qemu_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_sparc64_ieee1275_TRUE@boot.img: boot.image$(EXEEXT)
|
||||
-@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_i386_pc_TRUE@boot_hybrid.img: boot_hybrid.image$(EXEEXT)
|
||||
-@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_hybrid_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(boot_hybrid_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_i386_pc_TRUE@cdboot.img: cdboot.image$(EXEEXT)
|
||||
-@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_sparc64_ieee1275_TRUE@cdboot.img: cdboot.image$(EXEEXT)
|
||||
-@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(cdboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_i386_pc_TRUE@pxeboot.img: pxeboot.image$(EXEEXT)
|
||||
-@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(pxeboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(pxeboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_i386_pc_TRUE@diskboot.img: diskboot.image$(EXEEXT)
|
||||
-@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_sparc64_ieee1275_TRUE@diskboot.img: diskboot.image$(EXEEXT)
|
||||
-@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_sparc64_ieee1275_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(diskboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_i386_pc_TRUE@lnxboot.img: lnxboot.image$(EXEEXT)
|
||||
-@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lnxboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lnxboot_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_mips_loongson_TRUE@xz_decompress.img: xz_decompress.image$(EXEEXT)
|
||||
-@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_mips_arc_TRUE@xz_decompress.img: xz_decompress.image$(EXEEXT)
|
||||
-@COND_mips_arc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_mips_arc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_mips_qemu_mips_TRUE@xz_decompress.img: xz_decompress.image$(EXEEXT)
|
||||
-@COND_mips_qemu_mips_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_mips_qemu_mips_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(xz_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_mips_loongson_TRUE@none_decompress.img: none_decompress.image$(EXEEXT)
|
||||
-@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_mips_arc_TRUE@none_decompress.img: none_decompress.image$(EXEEXT)
|
||||
-@COND_mips_arc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_mips_arc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_mips_qemu_mips_TRUE@none_decompress.img: none_decompress.image$(EXEEXT)
|
||||
-@COND_mips_qemu_mips_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_mips_qemu_mips_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(none_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_i386_pc_TRUE@lzma_decompress.img: lzma_decompress.image$(EXEEXT)
|
||||
-@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lzma_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_i386_pc_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(lzma_decompress_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_mips_loongson_TRUE@fwstart.img: fwstart.image$(EXEEXT)
|
||||
-@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_mips_loongson_TRUE@fwstart_fuloong2f.img: fwstart_fuloong2f.image$(EXEEXT)
|
||||
-@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_fuloong2f_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; fi
|
||||
+@COND_mips_loongson_TRUE@ if test x$(TARGET_APPLE_LINKER) = x1; then $(MACHO2IMG) $< $@; else $(TARGET_OBJCOPY) $(fwstart_fuloong2f_image_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property -R .ARM.exidx $< $@; fi
|
||||
|
||||
@COND_MAN_PAGES_TRUE@@COND_emu_TRUE@grub-emu.1: grub-emu
|
||||
@COND_MAN_PAGES_TRUE@@COND_emu_TRUE@ chmod a+x grub-emu
|
@ -1,74 +0,0 @@
|
||||
From 842c390469e2c2e10b5aa36700324cd3bde25875 Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Sat, 17 Feb 2018 06:47:28 -0800
|
||||
Subject: [PATCH] x86-64: Treat R_X86_64_PLT32 as R_X86_64_PC32
|
||||
|
||||
Starting from binutils commit bd7ab16b4537788ad53521c45469a1bdae84ad4a:
|
||||
|
||||
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=bd7ab16b4537788ad53521c45469a1bdae84ad4a
|
||||
|
||||
x86-64 assembler generates R_X86_64_PLT32, instead of R_X86_64_PC32, for
|
||||
32-bit PC-relative branches. Grub2 should treat R_X86_64_PLT32 as
|
||||
R_X86_64_PC32.
|
||||
|
||||
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
Signed-off-by: Romain Naour <romain.naour@smile.fr>
|
||||
---
|
||||
grub-core/efiemu/i386/loadcore64.c | 1 +
|
||||
grub-core/kern/x86_64/dl.c | 1 +
|
||||
util/grub-mkimagexx.c | 1 +
|
||||
util/grub-module-verifier.c | 1 +
|
||||
4 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/grub-core/efiemu/i386/loadcore64.c b/grub-core/efiemu/i386/loadcore64.c
|
||||
index e49d0b6..18facf4 100644
|
||||
--- a/grub-core/efiemu/i386/loadcore64.c
|
||||
+++ b/grub-core/efiemu/i386/loadcore64.c
|
||||
@@ -98,6 +98,7 @@ grub_arch_efiemu_relocate_symbols64 (grub_efiemu_segment_t segs,
|
||||
break;
|
||||
|
||||
case R_X86_64_PC32:
|
||||
+ case R_X86_64_PLT32:
|
||||
err = grub_efiemu_write_value (addr,
|
||||
*addr32 + rel->r_addend
|
||||
+ sym.off
|
||||
diff --git a/grub-core/kern/x86_64/dl.c b/grub-core/kern/x86_64/dl.c
|
||||
index 4406906..3a73e6e 100644
|
||||
--- a/grub-core/kern/x86_64/dl.c
|
||||
+++ b/grub-core/kern/x86_64/dl.c
|
||||
@@ -70,6 +70,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
||||
break;
|
||||
|
||||
case R_X86_64_PC32:
|
||||
+ case R_X86_64_PLT32:
|
||||
{
|
||||
grub_int64_t value;
|
||||
value = ((grub_int32_t) *addr32) + rel->r_addend + sym->st_value -
|
||||
diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c
|
||||
index a2bb054..39d7efb 100644
|
||||
--- a/util/grub-mkimagexx.c
|
||||
+++ b/util/grub-mkimagexx.c
|
||||
@@ -841,6 +841,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections,
|
||||
break;
|
||||
|
||||
case R_X86_64_PC32:
|
||||
+ case R_X86_64_PLT32:
|
||||
{
|
||||
grub_uint32_t *t32 = (grub_uint32_t *) target;
|
||||
*t32 = grub_host_to_target64 (grub_target_to_host32 (*t32)
|
||||
diff --git a/util/grub-module-verifier.c b/util/grub-module-verifier.c
|
||||
index 9179285..a79271f 100644
|
||||
--- a/util/grub-module-verifier.c
|
||||
+++ b/util/grub-module-verifier.c
|
||||
@@ -19,6 +19,7 @@ struct grub_module_verifier_arch archs[] = {
|
||||
-1
|
||||
}, (int[]){
|
||||
R_X86_64_PC32,
|
||||
+ R_X86_64_PLT32,
|
||||
-1
|
||||
}
|
||||
},
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,2 +1,3 @@
|
||||
# Locally computed:
|
||||
sha256 810b3798d316394f94096ec2797909dbf23c858e48f7b3830826b8daa06b7b0f grub-2.02.tar.xz
|
||||
sha256 e5292496995ad42dabe843a0192cf2a2c502e7ffcc7479398232b10a472df77d grub-2.04.tar.xz
|
||||
sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
GRUB2_VERSION = 2.02
|
||||
GRUB2_VERSION = 2.04
|
||||
GRUB2_SITE = http://ftp.gnu.org/gnu/grub
|
||||
GRUB2_SOURCE = grub-$(GRUB2_VERSION).tar.xz
|
||||
GRUB2_LICENSE = GPL-3.0+
|
||||
@ -13,6 +13,14 @@ GRUB2_DEPENDENCIES = host-bison host-flex host-grub2
|
||||
HOST_GRUB2_DEPENDENCIES = host-bison host-flex
|
||||
GRUB2_INSTALL_IMAGES = YES
|
||||
|
||||
# 0001-build-Fix-GRUB-i386-pc-build-with-Ubuntu-gcc.patch
|
||||
define GRUB2_AVOID_AUTORECONF
|
||||
$(Q)touch $(@D)/Makefile.util.am
|
||||
$(Q)touch $(@D)/Makefile.in
|
||||
endef
|
||||
GRUB2_POST_PATCH_HOOKS += GRUB2_AVOID_AUTORECONF
|
||||
HOST_GRUB2_POST_PATCH_HOOKS += GRUB2_AVOID_AUTORECONF
|
||||
|
||||
ifeq ($(BR2_TARGET_GRUB2_INSTALL_TOOLS),y)
|
||||
GRUB2_INSTALL_TARGET = YES
|
||||
else
|
||||
|
@ -0,0 +1,31 @@
|
||||
From 40ab4167b5a45c772304a879c71b47d54de3b0e3 Mon Sep 17 00:00:00 2001
|
||||
From: Esben Haabendal <esben@haabendal.dk>
|
||||
Date: Wed, 20 Mar 2019 14:19:40 +0100
|
||||
Subject: [PATCH] Allow building with newer glibc versions
|
||||
|
||||
Newer glibc versions does not include sys/sysmacros.h from sys/types.h
|
||||
anymore. Including it unconditionally should be safe.
|
||||
|
||||
See https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html for why
|
||||
this was done.
|
||||
|
||||
Signed-off-by: Esben Haabendal <esben@haabendal.dk>
|
||||
---
|
||||
src/setup/setup.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/setup/setup.c b/src/setup/setup.c
|
||||
index 6a4275a2ae36..53429375a146 100644
|
||||
--- a/src/setup/setup.c
|
||||
+++ b/src/setup/setup.c
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <ftw.h>
|
||||
#include <stdbool.h>
|
||||
#include <blkid.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
|
||||
#include "efivars.h"
|
||||
|
||||
--
|
||||
2.21.0
|
||||
|
@ -0,0 +1,54 @@
|
||||
From fc05ced797b87286b8ec7303fe32bf200a072972 Mon Sep 17 00:00:00 2001
|
||||
From: Esben Haabendal <esben@haabendal.dk>
|
||||
Date: Mon, 18 Mar 2019 11:14:31 +0100
|
||||
Subject: [PATCH] Fix linking for non-host compatible targets
|
||||
|
||||
Without this, gummiboot build system will use host 'ld' when linking
|
||||
target binary, which is obviously not a good idea.
|
||||
|
||||
Signed-off-by: Esben Haabendal <esben@haabendal.dk>
|
||||
---
|
||||
Makefile.am | 4 ++--
|
||||
configure.ac | 4 ++++
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 6568a355ed74..9051dd44edd9 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -142,7 +142,7 @@ $(top_builddir)/src/efi/%.o: $(top_srcdir)/src/efi/%.c $(addprefix $(top_srcdir)
|
||||
$(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@
|
||||
|
||||
$(gummiboot_solib): $(gummiboot_objects)
|
||||
- $(AM_V_CCLD)$(LD) $(efi_ldflags) $(gummiboot_objects) \
|
||||
+ $(AM_V_CCLD)$(EFI_LD) $(efi_ldflags) $(gummiboot_objects) \
|
||||
-o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \
|
||||
nm -D -u $@ | grep ' U ' && exit 1 || :
|
||||
.DELETE_ON_ERROR: $(gummboot_solib)
|
||||
@@ -177,7 +177,7 @@ $(top_builddir)/src/efi/%.o: $(top_srcdir)/src/efi/%.c $(addprefix $(top_srcdir)
|
||||
$(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@
|
||||
|
||||
$(stub_solib): $(stub_objects)
|
||||
- $(AM_V_CCLD)$(LD) $(efi_ldflags) $(stub_objects) \
|
||||
+ $(AM_V_CCLD)$(EFI_LD) $(efi_ldflags) $(stub_objects) \
|
||||
-o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \
|
||||
nm -D -u $@ | grep ' U ' && exit 1 || :
|
||||
.DELETE_ON_ERROR: $(gummboot_solib)
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 27bbe1d73396..b948696c220b 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -40,6 +40,10 @@ dnl Don't try to use things like -std=c99 for efi compilation
|
||||
EFI_CC=$CC
|
||||
AC_SUBST([EFI_CC])
|
||||
|
||||
+dnl Allow specifying linker compatible with the compiler
|
||||
+EFI_LD=$LD
|
||||
+AC_SUBST([EFI_LD])
|
||||
+
|
||||
AC_PROG_CC_C99
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
--
|
||||
2.21.0
|
||||
|
@ -4,9 +4,9 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
GUMMIBOOT_SITE = http://cgit.freedesktop.org/gummiboot
|
||||
GUMMIBOOT_SITE = https://gitlab.freedesktop.org/archived-projects/gummiboot.git
|
||||
GUMMIBOOT_SITE_METHOD = git
|
||||
GUMMIBOOT_VERSION = 43
|
||||
GUMMIBOOT_VERSION = 2bcd919c681c952eb867ef1bdb458f1bc49c2d55
|
||||
GUMMIBOOT_LICENSE = LGPL-2.1+
|
||||
GUMMIBOOT_LICENSE_FILES = LICENSE
|
||||
|
||||
|
@ -0,0 +1,31 @@
|
||||
From 5867fcad6e88af3d843bfa831648d84a53732d57 Mon Sep 17 00:00:00 2001
|
||||
From: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
||||
Date: Wed, 19 Dec 2018 17:17:13 +0100
|
||||
Subject: [PATCH] mv_ddr: mv_ddr4_training_leveling.c: uninitialized variable
|
||||
|
||||
With GCC 8.2 uninitialized variables lead to a build error.
|
||||
|
||||
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
||||
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
||||
---
|
||||
Upstream status: commit 5867fcad6e8
|
||||
|
||||
mv_ddr4_training_leveling.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/mv_ddr4_training_leveling.c b/mv_ddr4_training_leveling.c
|
||||
index 144e21a03c01..cb95389f5466 100644
|
||||
--- a/mv_ddr4_training_leveling.c
|
||||
+++ b/mv_ddr4_training_leveling.c
|
||||
@@ -368,7 +368,7 @@ static int mv_ddr4_dynamic_pb_wl_supp(u32 dev_num, enum mv_wl_supp_mode ecc_mode
|
||||
u32 subphy_num = ddr3_tip_dev_attr_get(dev_num, MV_ATTR_OCTET_PER_INTERFACE);
|
||||
u8 compare_result = 0;
|
||||
u32 orig_phase;
|
||||
- u32 rd_data, wr_data;
|
||||
+ u32 rd_data, wr_data = 0;
|
||||
u32 flag, step;
|
||||
struct mv_ddr_topology_map *tm = mv_ddr_topology_map_get();
|
||||
u32 ecc_phy_access_id;
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,2 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 9aaea1f5e8bf3c9d7e735f569d130b5c2ec773c43e0cfabc9b8dee32adbf7e4e mv-ddr-marvell-99d772547314f84921268d57e53d8769197d3e21.tar.gz
|
||||
sha256 39dcc8baccb82cbc746d8f82ce7f673e1b1236e8aee0d09e7ab12c27eeb6ecda mv-ddr-marvell-618dadd1491eb2f7b2fd74313c04f7accddae475.tar.gz
|
||||
sha256 69208236fc322026920b92d1d839ebdc521ca65379bfdb3368a24945e794fc78 ddr3_init.c
|
||||
|
@ -4,8 +4,8 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# This is the commit for mv_ddr-armada-18.09.2
|
||||
MV_DDR_MARVELL_VERSION = 99d772547314f84921268d57e53d8769197d3e21
|
||||
# This is the commit for mv_ddr-armada-18.12.0
|
||||
MV_DDR_MARVELL_VERSION = 618dadd1491eb2f7b2fd74313c04f7accddae475
|
||||
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
|
||||
|
37
boot/opensbi/0001-Makefile-Don-t-specify-mabi-or-march.patch
Normal file
37
boot/opensbi/0001-Makefile-Don-t-specify-mabi-or-march.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From f5871e1f3650d6c8a032928cb5d8ca00c275c377 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Francis <alistair.francis@wdc.com>
|
||||
Date: Fri, 15 Feb 2019 14:57:41 -0800
|
||||
Subject: [PATCH] Makefile: Don't specify mabi or march
|
||||
|
||||
To avoid
|
||||
can't link double-float modules with soft-float modules
|
||||
errors when building 32-bit openSBI don't specify mabi or march.
|
||||
|
||||
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
|
||||
---
|
||||
Makefile | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index ae68f55..10851fc 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -145,7 +145,6 @@ GENFLAGS += $(firmware-genflags-y)
|
||||
CFLAGS = -g -Wall -Werror -nostdlib -fno-strict-aliasing -O2
|
||||
CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||
CFLAGS += -mno-save-restore -mstrict-align
|
||||
-CFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA)
|
||||
CFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL)
|
||||
CFLAGS += $(GENFLAGS)
|
||||
CFLAGS += $(platform-cflags-y)
|
||||
@@ -158,7 +157,6 @@ CPPFLAGS += $(firmware-cppflags-y)
|
||||
ASFLAGS = -g -Wall -nostdlib -D__ASSEMBLY__
|
||||
ASFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
||||
ASFLAGS += -mno-save-restore -mstrict-align
|
||||
-ASFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA)
|
||||
ASFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL)
|
||||
ASFLAGS += $(GENFLAGS)
|
||||
ASFLAGS += $(platform-asflags-y)
|
||||
--
|
||||
2.20.1
|
||||
|
34
boot/opensbi/Config.in
Normal file
34
boot/opensbi/Config.in
Normal file
@ -0,0 +1,34 @@
|
||||
config BR2_TARGET_OPENSBI
|
||||
bool "opensbi"
|
||||
depends on BR2_riscv
|
||||
help
|
||||
OpenSBI aims to provide an open-source and extensible
|
||||
implementation of the RISC-V SBI specification for a platform
|
||||
specific firmware (M-mode) and a general purpose OS,
|
||||
hypervisor or bootloader (S-mode or HS-mode). OpenSBI
|
||||
implementation can be easily extended by RISC-V platform or
|
||||
System-on-Chip vendors to fit a particular hadware
|
||||
configuration.
|
||||
|
||||
https://github.com/riscv/opensbi.git
|
||||
|
||||
if BR2_TARGET_OPENSBI
|
||||
config BR2_TARGET_OPENSBI_PLAT
|
||||
string "OpenSBI Platform"
|
||||
default ""
|
||||
help
|
||||
Specifies the OpenSBI platform to build. If no platform is
|
||||
specified only the OpenSBI platform independent static
|
||||
library libsbi.a is built. If a platform is specified then
|
||||
the platform specific static library libplatsbi.a and firmware
|
||||
examples are built.
|
||||
|
||||
config BR2_TARGET_OPENSBI_LINUX_PAYLOAD
|
||||
bool "Include Linux as OpenSBI Payload"
|
||||
depends on BR2_TARGET_OPENSBI_PLAT != ""
|
||||
depends on BR2_LINUX_KERNEL
|
||||
depends on BR2_LINUX_KERNEL_IMAGE
|
||||
help
|
||||
Build OpenSBI with the Linux kernel as a Payload.
|
||||
|
||||
endif
|
3
boot/opensbi/opensbi.hash
Normal file
3
boot/opensbi/opensbi.hash
Normal file
@ -0,0 +1,3 @@
|
||||
# locally computed
|
||||
sha256 46a93afd5465eba094ddba40015e754bf09f9e80e0702c00013d6bdb3ecd0a72 opensbi-0.6.tar.gz
|
||||
sha256 82d13fb1bf6bb162629deeea9eb9c117e74548d3b707e478967691fe79a68e21 COPYING.BSD
|
55
boot/opensbi/opensbi.mk
Normal file
55
boot/opensbi/opensbi.mk
Normal file
@ -0,0 +1,55 @@
|
||||
################################################################################
|
||||
#
|
||||
# opensbi
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPENSBI_VERSION = 0.6
|
||||
OPENSBI_SITE = $(call github,riscv,opensbi,v$(OPENSBI_VERSION))
|
||||
OPENSBI_LICENSE = BSD-2-Clause
|
||||
OPENSBI_LICENSE_FILES = COPYING.BSD
|
||||
OPENSBI_INSTALL_TARGET = NO
|
||||
OPENSBI_INSTALL_STAGING = YES
|
||||
|
||||
OPENSBI_MAKE_ENV = \
|
||||
CROSS_COMPILE=$(TARGET_CROSS)
|
||||
|
||||
OPENSBI_PLAT = $(call qstrip,$(BR2_TARGET_OPENSBI_PLAT))
|
||||
ifneq ($(OPENSBI_PLAT),)
|
||||
OPENSBI_MAKE_ENV += PLATFORM=$(OPENSBI_PLAT)
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_OPENSBI_LINUX_PAYLOAD),y)
|
||||
OPENSBI_DEPENDENCIES += linux
|
||||
OPENSBI_MAKE_ENV += FW_PAYLOAD_PATH="$(BINARIES_DIR)/Image"
|
||||
endif
|
||||
|
||||
define OPENSBI_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV) $(OPENSBI_MAKE_ENV) $(MAKE) -C $(@D)
|
||||
endef
|
||||
|
||||
ifneq ($(OPENSBI_PLAT),)
|
||||
OPENSBI_INSTALL_IMAGES = YES
|
||||
OPENSBI_FW_IMAGES += jump dynamic
|
||||
ifeq ($(BR2_TARGET_OPENSBI_LINUX_PAYLOAD),y)
|
||||
OPENSBI_FW_IMAGES += payload
|
||||
endif
|
||||
endif
|
||||
|
||||
define OPENSBI_INSTALL_IMAGES_CMDS
|
||||
$(foreach f,$(OPENSBI_FW_IMAGES),\
|
||||
$(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_$(f).bin \
|
||||
$(BINARIES_DIR)/fw_$(f).bin
|
||||
$(INSTALL) -m 0644 -D $(@D)/build/platform/$(OPENSBI_PLAT)/firmware/fw_$(f).elf \
|
||||
$(BINARIES_DIR)/fw_$(f).elf
|
||||
)
|
||||
endef
|
||||
|
||||
# libsbi.a is not a library meant to be linked in user-space code, but
|
||||
# with bare metal code, which is why we don't install it in
|
||||
# $(STAGING_DIR)/usr/lib
|
||||
define OPENSBI_INSTALL_STAGING_CMDS
|
||||
$(INSTALL) -m 0644 -D $(@D)/build/lib/libsbi.a $(STAGING_DIR)/usr/share/opensbi/libsbi.a
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
@ -0,0 +1,64 @@
|
||||
From 06e71feaeb08349abe56b50c3dfb08a8341cf55f Mon Sep 17 00:00:00 2001
|
||||
From: Romain Naour <romain.naour@gmail.com>
|
||||
Date: Sun, 26 Apr 2020 21:55:55 +0200
|
||||
Subject: [PATCH] scripts/pem_to_pub_c.py/sign.py: use pycryptodomex
|
||||
|
||||
These scripts still use pycrypto.
|
||||
|
||||
From [1]:
|
||||
"PyCryptodome is a fork of PyCrypto, which is not maintained any more
|
||||
(the last release dates back to 2013 [2]). It exposes almost the same
|
||||
API, but there are a few incompatibilities [3]."
|
||||
|
||||
Don't use upstream commit since it also switches from the algorithm
|
||||
TEE_ALG_RSASSA_PKCS1_V1_5_SHA256 to TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA256
|
||||
when replacing pycrypto to pycryptodomex [4].
|
||||
|
||||
[1] https://github.com/OP-TEE/optee_os/commit/90ad2450436fdd9fc0d28a3f92f3fbcfd89a38f0
|
||||
[2] https://pypi.org/project/pycrypto/#history
|
||||
[3] https://pycryptodome.readthedocs.io/en/latest/src/vs_pycrypto.html
|
||||
[4] https://github.com/OP-TEE/optee_os/commit/ababd72d2fd76cb2ded8e202b49db28d6545f6eb
|
||||
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
---
|
||||
scripts/pem_to_pub_c.py | 4 ++--
|
||||
scripts/sign.py | 8 ++++----
|
||||
2 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/scripts/pem_to_pub_c.py b/scripts/pem_to_pub_c.py
|
||||
index 3a896a39..d3f0e500 100755
|
||||
--- a/scripts/pem_to_pub_c.py
|
||||
+++ b/scripts/pem_to_pub_c.py
|
||||
@@ -21,8 +21,8 @@ def get_args():
|
||||
|
||||
def main():
|
||||
import array
|
||||
- from Crypto.PublicKey import RSA
|
||||
- from Crypto.Util.number import long_to_bytes
|
||||
+ from Cryptodome.PublicKey import RSA
|
||||
+ from Cryptodome.Util.number import long_to_bytes
|
||||
|
||||
args = get_args()
|
||||
|
||||
diff --git a/scripts/sign.py b/scripts/sign.py
|
||||
index 2939c591..80ce2e9f 100755
|
||||
--- a/scripts/sign.py
|
||||
+++ b/scripts/sign.py
|
||||
@@ -121,10 +121,10 @@ def get_args(logger):
|
||||
|
||||
|
||||
def main():
|
||||
- from Crypto.Signature import PKCS1_v1_5
|
||||
- from Crypto.Hash import SHA256
|
||||
- from Crypto.PublicKey import RSA
|
||||
- from Crypto.Util.number import ceil_div
|
||||
+ from Cryptodome.Signature import PKCS1_v1_5
|
||||
+ from Cryptodome.Hash import SHA256
|
||||
+ from Cryptodome.PublicKey import RSA
|
||||
+ from Cryptodome.Util.number import ceil_div
|
||||
import base64
|
||||
import logging
|
||||
import os
|
||||
--
|
||||
2.25.3
|
||||
|
109
boot/optee-os/Config.in
Normal file
109
boot/optee-os/Config.in
Normal file
@ -0,0 +1,109 @@
|
||||
config BR2_TARGET_OPTEE_OS
|
||||
bool "optee_os"
|
||||
depends on BR2_ARM_CPU_ARMV8A || BR2_ARM_CPU_ARMV7A
|
||||
help
|
||||
OP-TEE OS provides the secure world boot image and the trust
|
||||
application development kit of the OP-TEE project. OP-TEE OS
|
||||
also provides generic trusted application one can embedded
|
||||
into its system.
|
||||
|
||||
http://github.com/OP-TEE/optee_os
|
||||
|
||||
if BR2_TARGET_OPTEE_OS
|
||||
|
||||
choice
|
||||
prompt "OP-TEE OS version"
|
||||
default BR2_TARGET_OPTEE_OS_LATEST
|
||||
help
|
||||
Select the version of OP-TEE OS you want to use
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_LATEST
|
||||
bool "3.7.0"
|
||||
help
|
||||
Use the latest release tag from the OP-TEE OS official Git
|
||||
repository.
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_CUSTOM_GIT
|
||||
bool "Custom Git repository"
|
||||
help
|
||||
Use a custom version fetched from a Git repository.
|
||||
|
||||
endchoice
|
||||
|
||||
if BR2_TARGET_OPTEE_OS_CUSTOM_GIT
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL
|
||||
string "URL of custom repository"
|
||||
depends on BR2_TARGET_OPTEE_OS_CUSTOM_GIT
|
||||
help
|
||||
Specific location of the reference source tree Git
|
||||
repository.
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION
|
||||
string "Custom repository version"
|
||||
depends on BR2_TARGET_OPTEE_OS_CUSTOM_GIT
|
||||
help
|
||||
Revision to use in the typical format used by Git, i.e a
|
||||
SHA1 or a tag.
|
||||
|
||||
endif
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_VERSION
|
||||
string
|
||||
default "3.7.0" if BR2_TARGET_OPTEE_OS_LATEST
|
||||
default BR2_TARGET_OPTEE_OS_CUSTOM_REPO_VERSION \
|
||||
if BR2_TARGET_OPTEE_OS_CUSTOM_GIT
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_CORE
|
||||
bool "Build core"
|
||||
default y
|
||||
help
|
||||
This option will build and install the OP-TEE core
|
||||
boot images.
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_SDK
|
||||
bool "Build TA devkit"
|
||||
default y
|
||||
help
|
||||
This option will build and install the OP-TEE development
|
||||
kit for building OP-TEE trusted application images. It is
|
||||
installed in the staging directory /lib/optee.
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_SERVICES
|
||||
bool "Build service TAs and libs"
|
||||
default y
|
||||
select BR2_TARGET_OPTEE_OS_CORE
|
||||
help
|
||||
This option installs the service trusted applications and
|
||||
trusted shared libraries built from OP-TEE OS source tree.
|
||||
These are installed in target /lib/optee_armtz directory
|
||||
as other trusted applications. At runtime OP-TEE OS can
|
||||
load these from this non-secure filesystem/directory into
|
||||
the secure world for execution.
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_PLATFORM
|
||||
string "Target platform (mandatory)"
|
||||
help
|
||||
Value for the mandated PLATFORM build directive provided to
|
||||
OP-TEE OS.
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_PLATFORM_FLAVOR
|
||||
string "Target platform flavor (optional)"
|
||||
help
|
||||
Value for the optional PLATFORM_FLAVOR build directive
|
||||
provided to OP-TEE OS.
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_ADDITIONAL_VARIABLES
|
||||
string "Additional build variables"
|
||||
help
|
||||
Additional parameters for the OP-TEE OS build
|
||||
E.g. 'CFG_TEE_CORE_LOG_LEVEL=3 CFG_UNWIND=y'
|
||||
|
||||
config BR2_TARGET_OPTEE_OS_CORE_IMAGES
|
||||
string "Binary boot images"
|
||||
default "tee.bin tee-*_v2.bin"
|
||||
help
|
||||
Names of generated image files that are installed in the
|
||||
output images/ directory.
|
||||
|
||||
endif # BR2_TARGET_OPTEE_OS
|
4
boot/optee-os/optee-os.hash
Normal file
4
boot/optee-os/optee-os.hash
Normal file
@ -0,0 +1,4 @@
|
||||
# From https://github.com/OP-TEE/optee_os/archive/3.7.0.tar.gz
|
||||
sha256 ff378f22b8e7dacf933a2d34eb5c1bdcafe74bdda692e4dbc2969301f6a81d43 optee-os-3.7.0.tar.gz
|
||||
# Locally computed
|
||||
sha256 1247ee90858f4037b6cac63cbffddfed435d0d73c631b37d78c1e6e6ab3e5d1a LICENSE
|
120
boot/optee-os/optee-os.mk
Normal file
120
boot/optee-os/optee-os.mk
Normal file
@ -0,0 +1,120 @@
|
||||
################################################################################
|
||||
#
|
||||
# optee-os
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPTEE_OS_VERSION = $(call qstrip,$(BR2_TARGET_OPTEE_OS_VERSION))
|
||||
OPTEE_OS_LICENSE = BSD-2-Clause
|
||||
ifeq ($(BR2_TARGET_OPTEE_OS_LATEST),y)
|
||||
OPTEE_OS_LICENSE_FILES = LICENSE
|
||||
endif
|
||||
|
||||
OPTEE_OS_INSTALL_STAGING = YES
|
||||
OPTEE_OS_INSTALL_IMAGES = YES
|
||||
|
||||
ifeq ($(BR2_TARGET_OPTEE_OS_CUSTOM_GIT),y)
|
||||
OPTEE_OS_SITE = $(call qstrip,$(BR2_TARGET_OPTEE_OS_CUSTOM_REPO_URL))
|
||||
OPTEE_OS_SITE_METHOD = git
|
||||
BR_NO_CHECK_HASH_FOR += $(OPTEE_OS_SOURCE)
|
||||
else
|
||||
OPTEE_OS_SITE = $(call github,OP-TEE,optee_os,$(OPTEE_OS_VERSION))
|
||||
endif
|
||||
|
||||
OPTEE_OS_DEPENDENCIES = host-openssl host-python-pycryptodomex host-python-pyelftools
|
||||
|
||||
# On 64bit targets, OP-TEE OS can be built in 32bit mode, or
|
||||
# can be built in 64bit mode and support 32bit and 64bit
|
||||
# trusted applications. Since buildroot currently references
|
||||
# a single cross compiler, build exclusively in 32bit
|
||||
# or 64bit mode.
|
||||
OPTEE_OS_MAKE_OPTS = \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
CROSS_COMPILE_core="$(TARGET_CROSS)" \
|
||||
CROSS_COMPILE_ta_arm64="$(TARGET_CROSS)" \
|
||||
CROSS_COMPILE_ta_arm32="$(TARGET_CROSS)"
|
||||
|
||||
ifeq ($(BR2_aarch64),y)
|
||||
OPTEE_OS_MAKE_OPTS += \
|
||||
CFG_ARM64_core=y \
|
||||
CFG_USER_TA_TARGETS=ta_arm64
|
||||
else
|
||||
OPTEE_OS_MAKE_OPTS += \
|
||||
CFG_ARM32_core=y
|
||||
endif
|
||||
|
||||
# Get mandatory PLAFORM and optional PLATFORM_FLAVOR and additional
|
||||
# variables
|
||||
OPTEE_OS_MAKE_OPTS += PLATFORM=$(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM))
|
||||
ifneq ($(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM_FLAVOR)),)
|
||||
OPTEE_OS_MAKE_OPTS += PLATFORM_FLAVOR=$(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM_FLAVOR))
|
||||
endif
|
||||
OPTEE_OS_MAKE_OPTS += $(call qstrip,$(BR2_TARGET_OPTEE_OS_ADDITIONAL_VARIABLES))
|
||||
|
||||
# Requests OP-TEE OS to build from subdirectory out/ of its sourcetree
|
||||
# root path otherwise the output directory path depends on the target
|
||||
# platform name.
|
||||
OPTEE_OS_BUILDDIR_OUT = out
|
||||
ifeq ($(BR2_aarch64),y)
|
||||
OPTEE_OS_LOCAL_SDK = $(OPTEE_OS_BUILDDIR_OUT)/export-ta_arm64
|
||||
OPTEE_OS_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm64
|
||||
endif
|
||||
ifeq ($(BR2_arm),y)
|
||||
OPTEE_OS_LOCAL_SDK = $(OPTEE_OS_BUILDDIR_OUT)/export-ta_arm32
|
||||
OPTEE_OS_SDK = $(STAGING_DIR)/lib/optee/export-ta_arm32
|
||||
endif
|
||||
|
||||
OPTEE_OS_IMAGE_FILES = $(call qstrip,$(BR2_TARGET_OPTEE_OS_CORE_IMAGES))
|
||||
|
||||
ifeq ($(BR2_TARGET_OPTEE_OS_CORE),y)
|
||||
define OPTEE_OS_BUILD_CORE
|
||||
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) O=$(OPTEE_OS_BUILDDIR_OUT) \
|
||||
$(TARGET_CONFIGURE_OPTS) $(OPTEE_OS_MAKE_OPTS) all
|
||||
endef
|
||||
define OPTEE_OS_INSTALL_IMAGES_CORE
|
||||
mkdir -p $(BINARIES_DIR)
|
||||
$(foreach f,$(OPTEE_OS_IMAGE_FILES), \
|
||||
cp -dpf $(wildcard $(@D)/$(OPTEE_OS_BUILDDIR_OUT)/core/$(f)) $(BINARIES_DIR)/
|
||||
)
|
||||
endef
|
||||
endif # BR2_TARGET_OPTEE_OS_CORE
|
||||
|
||||
ifeq ($(BR2_TARGET_OPTEE_OS_SERVICES),y)
|
||||
define OPTEE_OS_INSTALL_TARGET_CMDS
|
||||
$(if $(wildcard $(@D)/$(OPTEE_OS_BUILDDIR_OUT)/ta/*/*.ta),
|
||||
$(INSTALL) -D -m 444 -t $(TARGET_DIR)/lib/optee_armtz \
|
||||
$(@D)/$(OPTEE_OS_BUILDDIR_OUT)/ta/*/*.ta)
|
||||
$(if $(wildcard $(@D)/$(OPTEE_OS_LOCAL_SDK)/lib/*.ta),
|
||||
$(INSTALL) -D -m 444 -t $(TARGET_DIR)/lib/optee_armtz \
|
||||
$(@D)/$(OPTEE_OS_LOCAL_SDK)/lib/*.ta)
|
||||
endef
|
||||
endif # BR2_TARGET_OPTEE_OS_SERVICES
|
||||
|
||||
ifeq ($(BR2_TARGET_OPTEE_OS_SDK),y)
|
||||
define OPTEE_OS_BUILD_SDK
|
||||
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) O=$(OPTEE_OS_BUILDDIR_OUT) \
|
||||
$(TARGET_CONFIGURE_OPTS) $(OPTEE_OS_MAKE_OPTS) ta_dev_kit
|
||||
endef
|
||||
define OPTEE_OS_INSTALL_STAGING_CMDS
|
||||
mkdir -p $(OPTEE_OS_SDK)
|
||||
cp -ardpf $(@D)/$(OPTEE_OS_LOCAL_SDK)/* $(OPTEE_OS_SDK)
|
||||
endef
|
||||
endif # BR2_TARGET_OPTEE_OS_SDK
|
||||
|
||||
define OPTEE_OS_BUILD_CMDS
|
||||
$(OPTEE_OS_BUILD_CORE)
|
||||
$(OPTEE_OS_BUILD_SDK)
|
||||
endef
|
||||
|
||||
define OPTEE_OS_INSTALL_IMAGES_CMDS
|
||||
$(OPTEE_OS_INSTALL_IMAGES_CORE)
|
||||
$(OPTEE_OS_INSTALL_IMAGES_SERVICES)
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_TARGET_OPTEE_OS)$(BR_BUILDING),yy)
|
||||
ifeq ($(call qstrip,$(BR2_TARGET_OPTEE_OS_PLATFORM)),)
|
||||
$(error No OP-TEE OS platform set. Check your BR2_TARGET_OPTEE_OS_PLATFORM setting)
|
||||
endif
|
||||
endif # BR2_TARGET_OPTEE_OS && BR2_BUILDING
|
||||
|
||||
$(eval $(generic-package))
|
@ -1,14 +0,0 @@
|
||||
comment "riscv-pk needs a Linux kernel to be built"
|
||||
depends on BR2_riscv
|
||||
depends on !BR2_LINUX_KERNEL
|
||||
|
||||
config BR2_TARGET_RISCV_PK
|
||||
bool "riscv-pk"
|
||||
depends on BR2_riscv
|
||||
depends on BR2_LINUX_KERNEL
|
||||
help
|
||||
The RISC-V Proxy Kernel (pk) package contains the Berkeley
|
||||
Boot Loader (BBL) which has been designed to boot a Linux
|
||||
kernel on a RISC-V processor.
|
||||
|
||||
https://github.com/riscv/riscv-pk.git
|
@ -1,32 +0,0 @@
|
||||
################################################################################
|
||||
#
|
||||
# riscv-pk
|
||||
#
|
||||
################################################################################
|
||||
|
||||
RISCV_PK_VERSION = 706cc77c369fd3e4734b5a6aa813d421347f1814
|
||||
RISCV_PK_SITE = git://github.com/riscv/riscv-pk.git
|
||||
RISCV_PK_LICENSE = BSD-3-Clause
|
||||
RISCV_PK_LICENSE_FILES = LICENSE
|
||||
RISCV_PK_DEPENDENCIES = linux
|
||||
RISCV_PK_SUBDIR = build
|
||||
RISCV_PK_INSTALL_IMAGES = YES
|
||||
|
||||
define RISCV_PK_CONFIGURE_CMDS
|
||||
mkdir -p $(@D)/build
|
||||
(cd $(@D)/build; \
|
||||
$(TARGET_CONFIGURE_OPTS) ../configure \
|
||||
--host=$(GNU_TARGET_NAME) \
|
||||
--with-payload=$(BINARIES_DIR)/vmlinux \
|
||||
)
|
||||
endef
|
||||
|
||||
define RISCV_PK_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/build bbl
|
||||
endef
|
||||
|
||||
define RISCV_PK_INSTALL_IMAGES_CMDS
|
||||
$(INSTALL) -D -m 0755 $(@D)/build/bbl $(BINARIES_DIR)/bbl
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
60
boot/syslinux/0015-efi-main.c-include-efisetjmp.h.patch
Normal file
60
boot/syslinux/0015-efi-main.c-include-efisetjmp.h.patch
Normal file
@ -0,0 +1,60 @@
|
||||
From 7d68fa68cd9f2987bd85339f3391913a8b0e58c7 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Date: Tue, 24 Mar 2020 10:21:27 +0100
|
||||
Subject: [PATCH] efi/main.c: include <efisetjmp.h>
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Building syslinux against gnu-efi 3.0.10 currently fails with:
|
||||
|
||||
syslinux/efi/main.c:33:8: error: unknown type name ‘jmp_buf’
|
||||
33 | static jmp_buf load_error_buf;
|
||||
| ^~~~~~~
|
||||
syslinux/efi/main.c: In function ‘local_boot’:
|
||||
syslinux/efi/main.c:189:5: warning: implicit declaration of function ‘longjmp’ [-Wimplicit-function-declaration]
|
||||
189 | longjmp(&load_error_buf, 1);
|
||||
| ^~~~~~~
|
||||
syslinux/efi/main.c: In function ‘build_gdt’:
|
||||
syslinux/efi/main.c:907:75: warning: taking address of packed member of ‘struct dt_desc’ may result in an unaligned pointer value [-Waddress-of-packed-member]
|
||||
907 | status = emalloc(gdt.limit, __SIZEOF_POINTER__ , (EFI_PHYSICAL_ADDRESS *)&gdt.base);
|
||||
| ^~~~~~~~~
|
||||
syslinux/efi/main.c: In function ‘efi_main’:
|
||||
syslinux/efi/main.c:1390:7: warning: implicit declaration of function ‘setjmp’ [-Wimplicit-function-declaration]
|
||||
1390 | if (!setjmp(&load_error_buf))
|
||||
| ^~~~~~
|
||||
make[3]: *** [syslinux/mk/efi.mk:63: main.o] Error 1
|
||||
|
||||
This is due to gnu-efi commit 486ba3c3bdd147b7d98159b9e650be60bce0f027
|
||||
("Do not include efisetjmp.h on efi.h"), in which they state:
|
||||
|
||||
Do not include efisetjmp.h on efi.h
|
||||
|
||||
People than really want to use efisetjmp implementation can include
|
||||
the header on their own.
|
||||
|
||||
Signed-off-by: leo <leo.sartre@geebol.fr>
|
||||
|
||||
So we act as specified, and include <efisetjmp.h> from efi/main.c.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Upstream: https://www.syslinux.org/archives/2020-March/026621.html
|
||||
---
|
||||
efi/main.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/efi/main.c b/efi/main.c
|
||||
index 6a748412..e924cfb1 100644
|
||||
--- a/efi/main.c
|
||||
+++ b/efi/main.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <sys/ansi.h>
|
||||
|
||||
#include "efi.h"
|
||||
+#include <efisetjmp.h>
|
||||
#include "fio.h"
|
||||
#include "version.h"
|
||||
#include "efi_pxe.h"
|
||||
--
|
||||
2.25.1
|
||||
|
@ -1,2 +1,4 @@
|
||||
# From https://www.kernel.org/pub/linux/utils/boot/syslinux/sha256sums.asc
|
||||
sha256 26d3986d2bea109d5dc0e4f8c4822a459276cf021125e8c9f23c3cca5d8c850e syslinux-6.03.tar.xz
|
||||
# Locally computed
|
||||
sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING
|
||||
|
@ -1,7 +0,0 @@
|
||||
config BR2_TARGET_TS4800_MBRBOOT
|
||||
bool "ts4800-mbrboot"
|
||||
depends on BR2_ARM_CPU_ARMV7A
|
||||
help
|
||||
First level bootloader for TS4800 board
|
||||
|
||||
https://github.com/embeddedarm/ts4800-mbrboot
|
@ -1,2 +0,0 @@
|
||||
# Locally calculated
|
||||
sha256 617c70dcf50b7ad35ed3f40666ff2a9a654a5440b522ad73662abdf9f843cee9 ts4800-mbrboot-cf8f7072ed5a4a4e48fcb9841b2e31e519ec5dca.tar.gz
|
@ -1,21 +0,0 @@
|
||||
################################################################################
|
||||
#
|
||||
# ts4800-mbrboot
|
||||
#
|
||||
################################################################################
|
||||
|
||||
TS4800_MBRBOOT_VERSION = cf8f7072ed5a4a4e48fcb9841b2e31e519ec5dca
|
||||
TS4800_MBRBOOT_SITE = $(call github,embeddedarm,ts4800-mbrboot,$(TS4800_MBRBOOT_VERSION))
|
||||
TS4800_MBRBOOT_LICENSE = BSD-2-Clause
|
||||
TS4800_MBRBOOT_LICENSE_FILES = LICENSE
|
||||
TS4800_MBRBOOT_INSTALL_IMAGES = YES
|
||||
|
||||
define TS4800_MBRBOOT_BUILD_CMDS
|
||||
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
|
||||
endef
|
||||
|
||||
define TS4800_MBRBOOT_INSTALL_IMAGES_CMDS
|
||||
$(INSTALL) -D -m 0644 $(@D)/mbrboot.bin $(BINARIES_DIR)/mbrboot.bin
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
@ -3,6 +3,8 @@ config BR2_TARGET_UBOOT
|
||||
help
|
||||
Build "Das U-Boot" Boot Monitor
|
||||
|
||||
https://www.denx.de/wiki/U-Boot
|
||||
|
||||
if BR2_TARGET_UBOOT
|
||||
choice
|
||||
prompt "Build system"
|
||||
@ -39,7 +41,7 @@ choice
|
||||
Select the specific U-Boot version you want to use
|
||||
|
||||
config BR2_TARGET_UBOOT_LATEST_VERSION
|
||||
bool "2018.09"
|
||||
bool "2020.04"
|
||||
|
||||
config BR2_TARGET_UBOOT_CUSTOM_VERSION
|
||||
bool "Custom version"
|
||||
@ -87,7 +89,7 @@ endif
|
||||
|
||||
config BR2_TARGET_UBOOT_VERSION
|
||||
string
|
||||
default "2018.09" if BR2_TARGET_UBOOT_LATEST_VERSION
|
||||
default "2020.04" 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
|
||||
@ -145,12 +147,51 @@ config BR2_TARGET_UBOOT_NEEDS_DTC
|
||||
Select this option if your U-Boot board configuration
|
||||
requires the Device Tree compiler to be available.
|
||||
|
||||
config BR2_TARGET_UBOOT_NEEDS_PYTHON
|
||||
bool
|
||||
|
||||
choice
|
||||
bool "U-Boot needs host Python"
|
||||
|
||||
config BR2_TARGET_UBOOT_NEEDS_PYTHON_NONE
|
||||
bool "no"
|
||||
depends on !BR2_TARGET_UBOOT_NEEDS_PYTHON
|
||||
help
|
||||
Select this option if U-Boot does not need any
|
||||
host python to build.
|
||||
|
||||
config BR2_TARGET_UBOOT_NEEDS_PYTHON2
|
||||
bool "python 2.x"
|
||||
help
|
||||
Select this option if U-Boot needs a host Python 2.x
|
||||
interpreter. This is the case for some U-Boot
|
||||
configurations, prior to U-Boot 2020.01.
|
||||
|
||||
config BR2_TARGET_UBOOT_NEEDS_PYTHON3
|
||||
bool "python 3.x"
|
||||
help
|
||||
Select this option if U-Boot needs a host Python 3.x
|
||||
interpreter. This is the case for some U-Boot
|
||||
configurations, after U-Boot 2020.01.
|
||||
|
||||
endchoice
|
||||
|
||||
config BR2_TARGET_UBOOT_NEEDS_PYLIBFDT
|
||||
bool "U-Boot needs pylibfdt"
|
||||
select BR2_TARGET_UBOOT_NEEDS_PYTHON
|
||||
help
|
||||
Select this option if your U-Boot board configuration
|
||||
requires the Python libfdt library to be available.
|
||||
|
||||
config BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS
|
||||
bool "U-Boot needs pyelftools"
|
||||
select BR2_TARGET_UBOOT_NEEDS_PYTHON
|
||||
help
|
||||
Select this option if your U-Boot board configuration
|
||||
requires the Python pyelftools library to be available.
|
||||
This is used by some rockchip SOCs for elf parsing.
|
||||
For example: rk3399 soc boards.
|
||||
|
||||
config BR2_TARGET_UBOOT_NEEDS_OPENSSL
|
||||
bool "U-Boot needs OpenSSL"
|
||||
help
|
||||
@ -217,6 +258,9 @@ config BR2_TARGET_UBOOT_FORMAT_DTB_IMX
|
||||
config BR2_TARGET_UBOOT_FORMAT_IMG
|
||||
bool "u-boot.img"
|
||||
|
||||
config BR2_TARGET_UBOOT_FORMAT_ITB
|
||||
bool "u-boot.itb"
|
||||
|
||||
config BR2_TARGET_UBOOT_FORMAT_IMX
|
||||
bool "u-boot.imx"
|
||||
|
||||
@ -241,7 +285,7 @@ config BR2_TARGET_UBOOT_FORMAT_SD
|
||||
This is Freescale i.MX28 SB format, with a header for booting
|
||||
from an SD card.
|
||||
|
||||
U-boot includes an mxsboot tool to generate this format,
|
||||
U-Boot includes an mxsboot tool to generate this format,
|
||||
starting from 2011.12.
|
||||
|
||||
See doc/README.mxs (or doc/README.mx28_common before 2013.07)
|
||||
@ -253,7 +297,7 @@ config BR2_TARGET_UBOOT_FORMAT_NAND
|
||||
This is Freescale i.MX28 BootStream format (.sb), with a
|
||||
header for booting from a NAND flash.
|
||||
|
||||
U-boot includes an mxsboot tool to generate this format,
|
||||
U-Boot includes an mxsboot tool to generate this format,
|
||||
starting from 2011.12.
|
||||
|
||||
There are two possibilities when preparing an image writable
|
||||
@ -490,6 +534,8 @@ config BR2_TARGET_UBOOT_ENVIMAGE_SOURCE
|
||||
|
||||
Multiple source files are concatenated in the order listed.
|
||||
|
||||
Leave empty to generate image from compiled-in env.
|
||||
|
||||
config BR2_TARGET_UBOOT_ENVIMAGE_SIZE
|
||||
string "Size of environment"
|
||||
help
|
||||
@ -542,4 +588,10 @@ config BR2_TARGET_UBOOT_CUSTOM_DTS_PATH
|
||||
|
||||
endif
|
||||
|
||||
config BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS
|
||||
string "Custom make options"
|
||||
help
|
||||
List of custom make options passed at build time. Can be
|
||||
used for example to pass a DEVICE_TREE= value.
|
||||
|
||||
endif # BR2_TARGET_UBOOT
|
||||
|
@ -1,2 +1,3 @@
|
||||
# Locally computed:
|
||||
sha256 839bf23cfe8ce613a77e583a60375179d0ad324e92c82fbdd07bebf0fd142268 u-boot-2018.09.tar.bz2
|
||||
sha256 fe732aaf037d9cc3c0909bad8362af366ae964bbdac6913a34081ff4ad565372 u-boot-2020.04.tar.bz2
|
||||
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 Licenses/gpl-2.0.txt
|
||||
|
@ -8,10 +8,15 @@ UBOOT_VERSION = $(call qstrip,$(BR2_TARGET_UBOOT_VERSION))
|
||||
UBOOT_BOARD_NAME = $(call qstrip,$(BR2_TARGET_UBOOT_BOARDNAME))
|
||||
|
||||
UBOOT_LICENSE = GPL-2.0+
|
||||
ifeq ($(BR2_TARGET_UBOOT_LATEST_VERSION),y)
|
||||
UBOOT_LICENSE_FILES = Licenses/gpl-2.0.txt
|
||||
endif
|
||||
|
||||
UBOOT_INSTALL_IMAGES = YES
|
||||
|
||||
# u-boot 2020.01+ needs make 4.0+
|
||||
UBOOT_DEPENDENCIES = $(BR2_MAKE_HOST_DEPENDENCY)
|
||||
|
||||
ifeq ($(UBOOT_VERSION),custom)
|
||||
# Handle custom U-Boot tarballs as specified by the configuration
|
||||
UBOOT_TARBALL = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION))
|
||||
@ -85,6 +90,11 @@ UBOOT_BINS += u-boot.img
|
||||
UBOOT_MAKE_TARGET += u-boot.img
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_FORMAT_ITB),y)
|
||||
UBOOT_BINS += u-boot.itb
|
||||
UBOOT_MAKE_TARGET += u-boot.itb
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_FORMAT_IMX),y)
|
||||
UBOOT_BINS += u-boot.imx
|
||||
UBOOT_MAKE_TARGET += u-boot.imx
|
||||
@ -133,7 +143,8 @@ UBOOT_MAKE_OPTS += \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
ARCH=$(UBOOT_ARCH) \
|
||||
HOSTCC="$(HOSTCC) $(subst -I/,-isystem /,$(subst -I /,-isystem /,$(HOST_CFLAGS)))" \
|
||||
HOSTLDFLAGS="$(HOST_LDFLAGS)"
|
||||
HOSTLDFLAGS="$(HOST_LDFLAGS)" \
|
||||
$(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS))
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_NEEDS_ATF_BL31),y)
|
||||
UBOOT_DEPENDENCIES += arm-trusted-firmware
|
||||
@ -148,8 +159,22 @@ ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y)
|
||||
UBOOT_DEPENDENCIES += host-dtc
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYTHON2),y)
|
||||
UBOOT_DEPENDENCIES += host-python
|
||||
else ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYTHON3),y)
|
||||
UBOOT_DEPENDENCIES += host-python3
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYLIBFDT),y)
|
||||
UBOOT_DEPENDENCIES += host-python host-swig
|
||||
UBOOT_DEPENDENCIES += host-swig
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS),y)
|
||||
ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYTHON2),y)
|
||||
UBOOT_DEPENDENCIES += host-python-pyelftools
|
||||
else ifeq ($(BR2_TARGET_UBOOT_NEEDS_PYTHON3),y)
|
||||
UBOOT_DEPENDENCIES += host-python3-pyelftools
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_NEEDS_OPENSSL),y)
|
||||
@ -197,22 +222,42 @@ define UBOOT_APPLY_LOCAL_PATCHES
|
||||
endef
|
||||
UBOOT_POST_PATCH_HOOKS += UBOOT_APPLY_LOCAL_PATCHES
|
||||
|
||||
# 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)
|
||||
# Fixup inclusion of libfdt headers, which can fail in older u-boot versions
|
||||
# when libfdt-devel is installed system-wide.
|
||||
# The core change is equivalent to upstream commit
|
||||
# e0d20dc1521e74b82dbd69be53a048847798a90a (first in v2018.03). However, the fixup
|
||||
# is complicated by the fact that the underlying u-boot code changed multiple
|
||||
# times in history:
|
||||
# - The directory scripts/dtc/libfdt only exists since upstream commit
|
||||
# c0e032e0090d6541549b19cc47e06ccd1f302893 (first in v2017.11). For earlier
|
||||
# versions, create a dummy scripts/dtc/libfdt directory with symlinks for the
|
||||
# fdt-related files. This allows to use the same -I<path> option for both
|
||||
# cases.
|
||||
# - The variable 'srctree' used to be called 'SRCTREE' before upstream commit
|
||||
# 01286329b27b27eaeda045b469d41b1d9fce545a (first in v2014.04).
|
||||
# - The original location for libfdt, 'lib/libfdt/', used to be simply
|
||||
# 'libfdt' before upstream commit 0de71d507157c4bd4fddcd3a419140d2b986eed2
|
||||
# (first in v2010.06). Make the 'lib' part optional in the substitution to
|
||||
# handle this.
|
||||
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; \
|
||||
$(Q)if [ ! -d $(@D)/scripts/dtc/libfdt ]; then \
|
||||
mkdir -p $(@D)/scripts/dtc/libfdt; \
|
||||
cd $(@D)/scripts/dtc/libfdt; \
|
||||
ln -s ../../../include/fdt.h .; \
|
||||
ln -s ../../../include/libfdt*.h .; \
|
||||
ln -s ../../../lib/libfdt/libfdt_internal.h .; \
|
||||
fi
|
||||
$(Q)$(SED) \
|
||||
's%-I\ *\$$(srctree)/lib/libfdt%-I$$(srctree)/scripts/dtc/libfdt%; \
|
||||
s%-I\ *\$$(SRCTREE)\(/lib\)\?/libfdt%-I$$(SRCTREE)/scripts/dtc/libfdt%' \
|
||||
$(@D)/tools/Makefile
|
||||
endef
|
||||
UBOOT_POST_PATCH_HOOKS += UBOOT_FIXUP_LIBFDT_INCLUDE
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_LEGACY),y)
|
||||
define UBOOT_CONFIGURE_CMDS
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
$(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \
|
||||
$(BR2_MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \
|
||||
$(UBOOT_BOARD_NAME)_config
|
||||
endef
|
||||
else ifeq ($(BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG),y)
|
||||
@ -249,7 +294,7 @@ define UBOOT_BUILD_CMDS
|
||||
cp -f $(UBOOT_CUSTOM_DTS_PATH) $(@D)/arch/$(UBOOT_ARCH)/dts/
|
||||
)
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
$(MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \
|
||||
$(BR2_MAKE) -C $(@D) $(UBOOT_MAKE_OPTS) \
|
||||
$(UBOOT_MAKE_TARGET)
|
||||
$(if $(BR2_TARGET_UBOOT_FORMAT_SD),
|
||||
$(@D)/tools/mxsboot sd $(@D)/u-boot.sb $(@D)/u-boot.sd)
|
||||
@ -267,8 +312,11 @@ define UBOOT_BUILD_OMAP_IFT
|
||||
endef
|
||||
|
||||
ifneq ($(BR2_TARGET_UBOOT_ENVIMAGE),)
|
||||
UBOOT_GENERATE_ENV_FILE = $(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE))
|
||||
define UBOOT_GENERATE_ENV_IMAGE
|
||||
cat $(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)) \
|
||||
$(if $(UBOOT_GENERATE_ENV_FILE), \
|
||||
cat $(UBOOT_GENERATE_ENV_FILE), \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" $(@D)/scripts/get_default_envs.sh $(@D)) \
|
||||
>$(@D)/buildroot-env.txt
|
||||
$(HOST_DIR)/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \
|
||||
$(if $(BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT),-r) \
|
||||
@ -309,8 +357,7 @@ UBOOT_ZYNQMP_PMUFW_PATH = $(shell readlink -f $(UBOOT_ZYNQMP_PMUFW))
|
||||
endif
|
||||
|
||||
define UBOOT_ZYNQMP_KCONFIG_PMUFW
|
||||
$(call KCONFIG_SET_OPT,CONFIG_PMUFW_INIT_FILE,"$(UBOOT_ZYNQMP_PMUFW_PATH)", \
|
||||
$(@D)/.config)
|
||||
$(call KCONFIG_SET_OPT,CONFIG_PMUFW_INIT_FILE,"$(UBOOT_ZYNQMP_PMUFW_PATH)")
|
||||
endef
|
||||
|
||||
UBOOT_ZYNQMP_PSU_INIT = $(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE))
|
||||
@ -318,8 +365,7 @@ UBOOT_ZYNQMP_PSU_INIT_PATH = $(shell readlink -f $(UBOOT_ZYNQMP_PSU_INIT))
|
||||
|
||||
ifneq ($(UBOOT_ZYNQMP_PSU_INIT),)
|
||||
define UBOOT_ZYNQMP_KCONFIG_PSU_INIT
|
||||
$(call KCONFIG_SET_OPT,CONFIG_XILINX_PS_INIT_FILE,"$(UBOOT_ZYNQMP_PSU_INIT_PATH)", \
|
||||
$(@D)/.config)
|
||||
$(call KCONFIG_SET_OPT,CONFIG_XILINX_PS_INIT_FILE,"$(UBOOT_ZYNQMP_PSU_INIT_PATH)")
|
||||
endef
|
||||
endif
|
||||
|
||||
@ -381,11 +427,8 @@ endef
|
||||
|
||||
ifeq ($(BR2_TARGET_UBOOT_ENVIMAGE),y)
|
||||
ifeq ($(BR_BUILDING),y)
|
||||
ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)),)
|
||||
$(error Please define a source file for Uboot environment (BR2_TARGET_UBOOT_ENVIMAGE_SOURCE setting))
|
||||
endif
|
||||
ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SIZE)),)
|
||||
$(error Please provide Uboot environment size (BR2_TARGET_UBOOT_ENVIMAGE_SIZE setting))
|
||||
$(error Please provide U-Boot environment size (BR2_TARGET_UBOOT_ENVIMAGE_SIZE setting))
|
||||
endif
|
||||
endif
|
||||
UBOOT_DEPENDENCIES += host-uboot-tools
|
||||
@ -394,7 +437,7 @@ endif
|
||||
ifeq ($(BR2_TARGET_UBOOT_BOOT_SCRIPT),y)
|
||||
ifeq ($(BR_BUILDING),y)
|
||||
ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE)),)
|
||||
$(error Please define a source file for Uboot boot script (BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE setting))
|
||||
$(error Please define a source file for U-Boot boot script (BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE setting))
|
||||
endif
|
||||
endif
|
||||
UBOOT_DEPENDENCIES += host-uboot-tools
|
||||
|
@ -65,8 +65,6 @@ information is (assuming the document name is +foo+) :
|
||||
|
||||
* +FOO_DEPENDENCIES+, optional, the list of packages (most probably,
|
||||
host-packages) that must be built before building this document.
|
||||
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 xref:hooks[] for general information
|
||||
on hooks), that a document may set to define extra actions to be done at
|
||||
|
@ -17,7 +17,7 @@ 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
|
||||
03: depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
|
||||
04: select BR2_PACKAGE_HOST_CARGO
|
||||
05: help
|
||||
06: This is a comment that explains what foo is.
|
||||
|
@ -322,6 +322,10 @@ use in the comment.
|
||||
** Dependency symbol: +BR2_INSTALL_LIBSTDCPP+
|
||||
** Comment string: `C++`
|
||||
|
||||
* D support
|
||||
** Dependency symbol: +BR2_TOOLCHAIN_HAS_DLANG+
|
||||
** Comment string: `Dlang`
|
||||
|
||||
* Fortran support
|
||||
** Dependency symbol: +BR2_TOOLCHAIN_HAS_FORTRAN+
|
||||
** Comment string: `fortran`
|
||||
@ -457,7 +461,7 @@ The hashes stored in that file are used to validate the integrity of the
|
||||
downloaded files and of the license files.
|
||||
|
||||
The format of this file is one line for each file for which to check the
|
||||
hash, each line being space-separated, with these three fields:
|
||||
hash, each line with the following three fields separated by two spaces:
|
||||
|
||||
* the type of hash, one of:
|
||||
** +md5+, +sha1+, +sha224+, +sha256+, +sha384+, +sha512+, +none+
|
||||
@ -496,10 +500,6 @@ target run. For a package with multiple versions (like Qt5),
|
||||
create the hash file in a subdirectory +<packageversion>+ of that package
|
||||
(see also xref:patch-apply-order[]).
|
||||
|
||||
.Note
|
||||
The number of spaces does not matter, so one can use spaces (or tabs) to
|
||||
properly align the different fields.
|
||||
|
||||
The +none+ hash type is reserved to those archives downloaded from a
|
||||
repository, like a 'git clone', a 'subversion checkout'...
|
||||
|
||||
|
@ -142,7 +142,7 @@ All these steps rely on the +$(@D)+ variable, which
|
||||
contains the directory where the source code of the package has been
|
||||
extracted.
|
||||
|
||||
On lines 31..43, we define a user that is used by this package (e.g.
|
||||
On lines 31..33, we define a user that is used by this package (e.g.
|
||||
to run a daemon as non-root) (+LIBFOO_USERS+).
|
||||
|
||||
On line 35..37, we define a device-node file used by this package
|
||||
@ -358,9 +358,11 @@ not and can not work as people would expect it should:
|
||||
* +LIBFOO_DEPENDENCIES+ lists the dependencies (in terms of package
|
||||
name) that are required for the current target package to
|
||||
compile. These dependencies are guaranteed to be compiled and
|
||||
installed before the configuration of the current package starts. In
|
||||
a similar way, +HOST_LIBFOO_DEPENDENCIES+ lists the dependencies for
|
||||
the current host package.
|
||||
installed before the configuration of the current package starts.
|
||||
However, modifications to configuration of these dependencies will
|
||||
not force a rebuild of the current package. In a similar way,
|
||||
+HOST_LIBFOO_DEPENDENCIES+ lists the dependencies for the current
|
||||
host package.
|
||||
|
||||
* +LIBFOO_EXTRACT_DEPENDENCIES+ lists the dependencies (in terms of
|
||||
package name) that are required for the current target package to be
|
||||
@ -372,9 +374,9 @@ not and can not work as people would expect it should:
|
||||
* +LIBFOO_PATCH_DEPENDENCIES+ lists the dependencies (in terms of
|
||||
package name) that are required for the current package to be
|
||||
patched. These dependencies are guaranteed to be extracted and
|
||||
patched before the current package is patched. In a similar way,
|
||||
+HOST_LIBFOO_PATCH_DEPENDENCIES+ lists the dependencies for the
|
||||
current host package.
|
||||
patched (but not necessarily built) before the current package is
|
||||
patched. In a similar way, +HOST_LIBFOO_PATCH_DEPENDENCIES+ lists
|
||||
the dependencies for the current host package.
|
||||
This is seldom used; usually, +LIBFOO_DEPENDENCIES+ is what you
|
||||
really want to use.
|
||||
|
||||
@ -434,6 +436,10 @@ not and can not work as people would expect it should:
|
||||
component is licensed under what license, then annotate the license
|
||||
with that component, between parenthesis (e.g. +`LIBFOO_LICENSE =
|
||||
GPL-2.0+ (programs), LGPL-2.1+ (libraries)`+).
|
||||
** If some licenses are conditioned on a sub-option being enabled, append
|
||||
the conditional licenses with a comma (e.g.: `FOO_LICENSE += , GPL-2.0+
|
||||
(programs)`); the infrastructure will internally remove the space before
|
||||
the comma.
|
||||
** If the package is dual licensed, then separate licenses with the
|
||||
+or+ keyword (e.g. +`LIBFOO_LICENSE = AFL-2.1 or GPL-2.0+`+).
|
||||
|
||||
@ -446,7 +452,7 @@ not and can not work as people would expect it should:
|
||||
of the manifest file for this package.
|
||||
|
||||
* +LIBFOO_ACTUAL_SOURCE_TARBALL+ only applies to packages whose
|
||||
+LIBFOO_SITE+ / +LIBTOO_SOURCE+ pair points to an archive that does
|
||||
+LIBFOO_SITE+ / +LIBFOO_SOURCE+ pair points to an archive that does
|
||||
not actually contain source code, but binary code. This a very
|
||||
uncommon case, only known to apply to external toolchains which come
|
||||
already compiled, although theoretically it might apply to other
|
||||
@ -482,6 +488,20 @@ not and can not work as people would expect it should:
|
||||
locations, `/lib/firmware`, `/usr/lib/firmware`, `/lib/modules`,
|
||||
`/usr/lib/modules`, and `/usr/share`, which are automatically excluded.
|
||||
|
||||
* +LIBFOO_IGNORE_CVES+ is a space-separated list of CVEs that tells
|
||||
Buildroot CVE tracking tools which CVEs should be ignored for this
|
||||
package. This is typically used when the CVE is fixed by a patch in
|
||||
the package, or when the CVE for some reason does not affect the
|
||||
Buildroot package. A Makefile comment must always precede the
|
||||
addition of a CVE to this variable. Example:
|
||||
|
||||
----------------------
|
||||
# 0001-fix-cve-2020-12345.patch
|
||||
LIBFOO_IGNORE_CVES += CVE-2020-12345
|
||||
# only when built with libbaz, which Buildroot doesn't support
|
||||
LIBFOO_IGNORE_CVES += CVE-2020-54321
|
||||
----------------------
|
||||
|
||||
The recommended way to define these variables is to use the following
|
||||
syntax:
|
||||
|
||||
@ -536,12 +556,20 @@ different steps of the build process.
|
||||
should utilize this step if it has binaries which would be similar
|
||||
to the kernel image, bootloader or root filesystem images.
|
||||
|
||||
* +LIBFOO_INSTALL_INIT_SYSV+ and +LIBFOO_INSTALL_INIT_SYSTEMD+ list the
|
||||
actions to install init scripts either for the systemV-like init systems
|
||||
(busybox, sysvinit, etc.) or for the systemd units. These commands
|
||||
will be run only when the relevant init system is installed (i.e. if
|
||||
systemd is selected as the init system in the configuration, only
|
||||
+LIBFOO_INSTALL_INIT_SYSTEMD+ will be run).
|
||||
* +LIBFOO_INSTALL_INIT_SYSV+, +LIBFOO_INSTALL_INIT_OPENRC+ and
|
||||
+LIBFOO_INSTALL_INIT_SYSTEMD+ list the actions to install init
|
||||
scripts either for the systemV-like init systems (busybox,
|
||||
sysvinit, etc.), openrc or for the systemd units. These commands
|
||||
will be run only when the relevant init system is installed (i.e.
|
||||
if systemd is selected as the init system in the configuration,
|
||||
only +LIBFOO_INSTALL_INIT_SYSTEMD+ will be run). The only exception
|
||||
is when openrc is chosen as init system and +LIBFOO_INSTALL_INIT_OPENRC+
|
||||
has not been set, in such situation +LIBFOO_INSTALL_INIT_SYSV+ will
|
||||
be called, since openrc supports sysv init scripts.
|
||||
When systemd is used as the init system, buildroot will automatically enable
|
||||
all services using the +systemctl preset-all+ command in the final phase of
|
||||
image building. You can add preset files to prevent a particular unit from
|
||||
being automatically enabled by buildroot.
|
||||
|
||||
* +LIBFOO_HELP_CMDS+ lists the actions to print the package help, which
|
||||
is included to the main +make help+ output. These commands can print
|
||||
@ -549,6 +577,14 @@ different steps of the build process.
|
||||
This is seldom used, as packages rarely have custom rules. *Do not use
|
||||
this variable*, unless you really know that you need to print help.
|
||||
|
||||
* +LIBFOO_LINUX_CONFIG_FIXUPS+ lists the Linux kernel configuration
|
||||
options that are needed to build and use this package, and without
|
||||
which the package is fundamentally broken. This shall be a set of
|
||||
calls to one of the kconfig tweaking option: `KCONFIG_ENABLE_OPT`,
|
||||
`KCONFIG_DISABLE_OPT`, or `KCONFIG_SET_OPT`.
|
||||
This is seldom used, as package usually have no strict requirements on
|
||||
the kernel options.
|
||||
|
||||
The preferred way to define these variables is:
|
||||
|
||||
----------------------
|
||||
@ -578,6 +614,13 @@ In the action definitions, you can use the following variables:
|
||||
* +$(TARGET_CROSS)+ to get the cross-compilation toolchain prefix
|
||||
|
||||
* Of course the +$(HOST_DIR)+, +$(STAGING_DIR)+ and +$(TARGET_DIR)+
|
||||
variables to install the packages properly.
|
||||
variables to install the packages properly. Those variables point to
|
||||
the global _host_, _staging_ and _target_ directories, unless
|
||||
_per-package directory_ support is used, in which case they point to
|
||||
the current package _host_, _staging_ and _target_ directories. In
|
||||
both cases, it doesn't make any difference from the package point of
|
||||
view: it should simply use +HOST_DIR+, +STAGING_DIR+ and
|
||||
+TARGET_DIR+. See xref:top-level-parallel-build[] for more details
|
||||
about _per-package directory_ support.
|
||||
|
||||
Finally, you can also use hooks. See xref:hooks[] for more information.
|
||||
|
@ -45,13 +45,18 @@ built.
|
||||
==== +golang-package+ reference
|
||||
|
||||
In their +Config.in+ file, packages using the +golang-package+
|
||||
infrastructure should depend on +BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS+
|
||||
and +BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS+ because Buildroot will
|
||||
automatically add a dependency on +host-go+ to such packages.
|
||||
infrastructure should depend on +BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS+
|
||||
because Buildroot will automatically add a dependency on +host-go+
|
||||
to such packages.
|
||||
If you need CGO support in your package, you must add a dependency on
|
||||
+BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS+.
|
||||
|
||||
The main macro of the Go package infrastructure is
|
||||
+golang-package+. It is similar to the +generic-package+ macro. Only
|
||||
target packages are supported with +golang-package+.
|
||||
+golang-package+. It is similar to the +generic-package+ macro. The
|
||||
ability to build host packages is also available, with the
|
||||
+host-golang-package+ macro.
|
||||
Host packages built by +host-golang-package+ macro should depend on
|
||||
BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS.
|
||||
|
||||
Just like the generic infrastructure, the Go infrastructure works
|
||||
by defining a number of variables before calling the +golang-package+.
|
||||
|
@ -43,6 +43,12 @@ This snippet creates the following make targets:
|
||||
options that differ from the default values. It is not possible to
|
||||
use this target when fragment files are set.
|
||||
|
||||
* +foo-diff-config+, which outputs the differences between the current
|
||||
configuration and the one defined in the Buildroot configuration for
|
||||
this kconfig package. The output is useful to identify the
|
||||
configuration changes that may have to be propagated to
|
||||
configuration fragments for example.
|
||||
|
||||
and ensures that the source configuration file is copied to the build
|
||||
directory at the right moment.
|
||||
|
||||
|
@ -73,9 +73,7 @@ infrastructures in Buildroot, respectively.
|
||||
|
||||
The main macro of the LuaRocks package infrastructure is +luarocks-package+:
|
||||
like +generic-package+ it works by defining a number of variables providing
|
||||
metadata information about the package, and then calling +luarocks-package+. It
|
||||
is worth mentioning that building LuaRocks packages for the host is not
|
||||
supported, so the macro +host-luarocks-package+ is not implemented.
|
||||
metadata information about the package, and then calling +luarocks-package+.
|
||||
|
||||
Just like the generic infrastructure, the LuaRocks infrastructure works
|
||||
by defining a number of variables before calling the +luarocks-package+
|
||||
|
@ -97,6 +97,34 @@ will therefore only use a few of them.
|
||||
* +FOO_CONF_OPTS+, to specify additional options to pass to +meson+ for the
|
||||
configuration step. By default, empty.
|
||||
|
||||
* +FOO_CFLAGS+, to specify compiler arguments added to the package specific
|
||||
+cross-compile.conf+ file +c_args+ property. By default, the value of
|
||||
+TARGET_CFLAGS+.
|
||||
|
||||
* +FOO_CXXFLAGS+, to specify compiler arguments added to the package specific
|
||||
+cross-compile.conf+ file +cpp_args+ property. By default, the value of
|
||||
+TARGET_CXXFLAGS+.
|
||||
|
||||
* +FOO_LDFLAGS+, to specify compiler arguments added to the package specific
|
||||
+cross-compile.conf+ file +c_link_args+ and +cpp_link_args+ properties. By
|
||||
default, the value of +TARGET_LDFLAGS+.
|
||||
|
||||
* +FOO_MESON_EXTRA_BINARIES+, to specify a space-separated list of programs
|
||||
to add to the `[binaries]` section of the meson `cross-compilation.conf`
|
||||
configuration file. The format is `program-name='/path/to/program'`, with
|
||||
no space around the +=+ sign, and with the path of the program between
|
||||
single quotes. By default, empty. Note that Buildroot already sets the
|
||||
correct values for +c+, +cpp+, +ar+, +strip+, and +pkgconfig+.
|
||||
|
||||
* +FOO_MESON_EXTRA_PROPERTIES+, to specify a space-separated list of
|
||||
properties to add to the `[properties]` section of the meson
|
||||
`cross-compilation.conf` configuration file. The format is
|
||||
`property-name=<value>` with no space around the +=+ sign, and with
|
||||
single quotes around string values. By default, empty. Note that
|
||||
Buildroot already sets values for +needs_exe_wrapper+, +c_args+,
|
||||
+c_link_args+, +cpp_args+, +cpp_link_args+, +sys_root+, and
|
||||
+pkg_config_libdir+.
|
||||
|
||||
* +FOO_NINJA_ENV+, to specify additional environment variables to pass to
|
||||
+ninja+, meson companion tool in charge of the build operations. By default,
|
||||
empty.
|
||||
|
@ -67,9 +67,13 @@ Python build system, but are not Python modules, can freely choose
|
||||
their name (existing examples in Buildroot are +scons+ and
|
||||
+supervisor+).
|
||||
|
||||
In their +Config.in+ file, they should depend on +BR2_PACKAGE_PYTHON+
|
||||
so that when Buildroot will enable Python 3 usage for modules, we will
|
||||
be able to enable Python modules progressively on Python 3.
|
||||
Packages that are only compatible with one version of Python (as in:
|
||||
Python 2 or Python 3) should depend on that version explicitely in
|
||||
their +Config.in+ file (+BR2_PACKAGE_PYTHON+ for Python 2,
|
||||
+BR2_PACKAGE_PYTHON3+ for Python 3). Packages that are compatible
|
||||
with both versions should not explicitely depend on them in their
|
||||
+Config.in+ file, since that condition is already expressed for the
|
||||
whole "External python modules" menu.
|
||||
|
||||
The main macro of the Python package infrastructure is
|
||||
+python-package+. It is similar to the +generic-package+ macro. It is
|
||||
@ -94,10 +98,9 @@ Note that:
|
||||
dependencies are automatically added as needed by the Python
|
||||
package infrastructure.
|
||||
|
||||
* Similarly, it is not needed to add +host-setuptools+ and/or
|
||||
+host-distutilscross+ dependencies to +PYTHON_FOO_DEPENDENCIES+ for
|
||||
setuptools-based packages, since these are automatically added by
|
||||
the Python infrastructure as needed.
|
||||
* Similarly, it is not needed to add +host-setuptools+ to
|
||||
+PYTHON_FOO_DEPENDENCIES+ for setuptools-based packages, since it's
|
||||
automatically added by the Python infrastructure as needed.
|
||||
|
||||
One variable specific to the Python infrastructure is mandatory:
|
||||
|
||||
|
81
docs/manual/adding-packages-qmake.txt
Normal file
81
docs/manual/adding-packages-qmake.txt
Normal file
@ -0,0 +1,81 @@
|
||||
// -*- mode:doc; -*-
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
=== Infrastructure for QMake-based packages
|
||||
|
||||
[[qmake-package-tutorial]]
|
||||
|
||||
==== +qmake-package+ tutorial
|
||||
|
||||
First, let's see how to write a +.mk+ file for a QMake-based package, with
|
||||
an example :
|
||||
|
||||
------------------------
|
||||
01: ################################################################################
|
||||
02: #
|
||||
03: # libfoo
|
||||
04: #
|
||||
05: ################################################################################
|
||||
06:
|
||||
07: LIBFOO_VERSION = 1.0
|
||||
08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
|
||||
09: LIBFOO_SITE = http://www.foosoftware.org/download
|
||||
10: LIBFOO_CONF_OPTS = QT_CONFIG+=bar QT_CONFIG-=baz
|
||||
11: LIBFOO_DEPENDENCIES = bar
|
||||
12:
|
||||
13: $(eval $(qmake-package))
|
||||
------------------------
|
||||
|
||||
On line 7, we declare the version of the package.
|
||||
|
||||
On line 8 and 9, we declare the name of the tarball (xz-ed tarball
|
||||
recommended) and the location of the tarball on the Web. Buildroot
|
||||
will automatically download the tarball from this location.
|
||||
|
||||
On line 10, we tell Buildroot what options to enable for libfoo.
|
||||
|
||||
On line 11, we tell Buildroot the depednencies of libfoo.
|
||||
|
||||
Finally, on line line 13, we invoke the +qmake-package+
|
||||
macro that generates all the Makefile rules that actually allows the
|
||||
package to be built.
|
||||
|
||||
[[qmake-package-reference]]
|
||||
|
||||
==== +qmake-package+ reference
|
||||
|
||||
The main macro of the QMake package infrastructure is +qmake-package+.
|
||||
It is similar to the +generic-package+ macro.
|
||||
|
||||
Just like the generic infrastructure, the QMake infrastructure works
|
||||
by defining a number of variables before calling the +qmake-package+
|
||||
macro.
|
||||
|
||||
First, all the package metadata information variables that exist in
|
||||
the generic infrastructure also exist in the QMake infrastructure:
|
||||
+LIBFOO_VERSION+, +LIBFOO_SOURCE+, +LIBFOO_PATCH+, +LIBFOO_SITE+,
|
||||
+LIBFOO_SUBDIR+, +LIBFOO_DEPENDENCIES+, +LIBFOO_INSTALL_STAGING+,
|
||||
+LIBFOO_INSTALL_TARGET+.
|
||||
|
||||
An additional variable, specific to the QMake infrastructure, can
|
||||
also be defined.
|
||||
|
||||
* +LIBFOO_CONF_ENV+, to specify additional environment variables to
|
||||
pass to the +qmake+ script for the configuration step. By default, empty.
|
||||
|
||||
* +LIBFOO_CONF_OPTS+, to specify additional options to pass to the
|
||||
+qmake+ script for the configuration step. By default, empty.
|
||||
|
||||
* +LIBFOO_MAKE_ENV+, to specify additional environment variables to the
|
||||
+make+ command during the build and install steps. By default, empty.
|
||||
|
||||
* +LIBFOO_MAKE_OPTS+, to specify additional targets to pass to the
|
||||
+make+ command during the build step. By default, empty.
|
||||
|
||||
* +LIBFOO_INSTALL_STAGING_OPTS+, to specify additional targets to pass
|
||||
to the +make+ command during the staging installation step. By default,
|
||||
+install+.
|
||||
|
||||
* +LIBFOO_INSTALL_TARGET_OPTS+, to specify additional targets to pass
|
||||
to the +make+ command during the target installation step. By default,
|
||||
+install+.
|
@ -98,7 +98,7 @@ config snippet. For example, here's how you would test +libcurl+ with
|
||||
----
|
||||
$ cat libcurl.config
|
||||
BR2_PACKAGE_LIBCURL=y
|
||||
BR2_PACKAGE_CURL=y
|
||||
BR2_PACKAGE_LIBCURL_CURL=y
|
||||
BR2_PACKAGE_OPENSSL=y
|
||||
----
|
||||
|
||||
|
@ -41,6 +41,8 @@ include::adding-packages-cargo.txt[]
|
||||
|
||||
include::adding-packages-golang.txt[]
|
||||
|
||||
include::adding-packages-qmake.txt[]
|
||||
|
||||
include::adding-packages-kernel-module.txt[]
|
||||
|
||||
include::adding-packages-asciidoc.txt[]
|
||||
|
@ -88,7 +88,7 @@ to +make+ or set in the environment:
|
||||
Buildroot stores the cached files when using ccache.
|
||||
+
|
||||
* +BR2_DL_DIR+ to override the directory in which
|
||||
Buildroot stores/retrieves downloaded files
|
||||
Buildroot stores/retrieves downloaded files.
|
||||
+
|
||||
Note that the Buildroot download directory can also be set from the
|
||||
configuration interface, so through the Buildroot +.config+ file. See
|
||||
@ -102,6 +102,8 @@ to +make+ or set in the environment:
|
||||
xref:graph-depends[] for the accepted options
|
||||
* +BR2_GRAPH_DOT_OPTS+ is passed verbatim as options to the +dot+ utility to
|
||||
draw the dependency graph.
|
||||
* +BR2_GRAPH_SIZE_OPTS+ to pass extra options to the size graph; see
|
||||
xref:graph-size[] for the acepted options
|
||||
|
||||
An example that uses config files located in the toplevel directory and
|
||||
in your $HOME:
|
||||
@ -278,6 +280,7 @@ only other format supported is PNG:
|
||||
BR2_GRAPH_OUT=png make graph-build
|
||||
----------------
|
||||
|
||||
[[graph-size]]
|
||||
=== Graphing the filesystem size contribution of packages
|
||||
|
||||
When your target system grows, it is sometimes useful to understand
|
||||
@ -310,10 +313,25 @@ installed (+python-matplotlib+ on most distributions), and also the
|
||||
+argparse+ module if you're using a Python version older than 2.7
|
||||
(+python-argparse+ on most distributions).
|
||||
|
||||
Just like for the duration graph, a +BR2_GRAPH_OUT+ environment is
|
||||
supported to adjust the output file format. See xref:graph-depends[]
|
||||
Just like for the duration graph, a +BR2_GRAPH_OUT+ environment variable
|
||||
is supported to adjust the output file format. See xref:graph-depends[]
|
||||
for details about this environment variable.
|
||||
|
||||
Additionally, one may set the environment variable +BR2_GRAPH_SIZE_OPTS+
|
||||
to further control the generated graph. Accepted options are:
|
||||
|
||||
* `--size-limit X`, `-l X`, will group all packages which individual
|
||||
contribution is below `X` percent, to a single entry labelled _Others_
|
||||
in the graph. By default, `X=0.01`, which means packages each
|
||||
contributing less than 1% are grouped under _Others_. Accepted values
|
||||
are in the range `[0.0..1.0]`.
|
||||
|
||||
* `--iec`, `--binary`, `--si`, `--decimal`, to use IEC (binary, powers
|
||||
of 1024) or SI (decimal, powers of 1000; the default) prefixes.
|
||||
|
||||
* `--biggest-first`, to sort packages in decreasing size order, rather
|
||||
than in increasing size order.
|
||||
|
||||
.Note
|
||||
The collected filesystem size data is only meaningful after a complete
|
||||
clean rebuild. Be sure to run +make clean all+ before using +make
|
||||
@ -329,6 +347,53 @@ Refer to the help text of this script for more details:
|
||||
utils/size-stats-compare -h
|
||||
----------------
|
||||
|
||||
[[top-level-parallel-build]]
|
||||
=== Top-level parallel build
|
||||
|
||||
.Note
|
||||
This section deals with a very experimental feature, which is known to
|
||||
break even in some non-unusual situations. Use at your own risk.
|
||||
|
||||
Buildroot has always been capable of using parallel build on a per
|
||||
package basis: each package is built by Buildroot using +make -jN+ (or
|
||||
the equivalent invocation for non-make-based build systems). The level
|
||||
of parallelism is by default number of CPUs + 1, but it can be
|
||||
adjusted using the +BR2_JLEVEL+ configuration option.
|
||||
|
||||
Until 2020.02, Buildroot was however building packages in a serial
|
||||
fashion: each package was built one after the other, without
|
||||
parallelization of the build between packages. As of 2020.02,
|
||||
Buildroot has experimental support for *top-level parallel build*,
|
||||
which allows some signicant build time savings by building packages
|
||||
that have no dependency relationship in parallel. This feature is
|
||||
however marked as experimental and is known not to work in some cases.
|
||||
|
||||
In order to use top-level parallel build, one must:
|
||||
|
||||
. Enable the option +BR2_PER_PACKAGE_DIRECTORIES+ in the Buildroot
|
||||
configuration
|
||||
|
||||
. Use +make -jN+ when starting the Buildroot build
|
||||
|
||||
Internally, the +BR2_PER_PACKAGE_DIRECTORIES+ will enable a mechanism
|
||||
called *per-package directories*, which will have the following
|
||||
effects:
|
||||
|
||||
* Instead of a global _target_ directory and a global _host_ directory
|
||||
common to all packages, per-package _target_ and _host_ directories
|
||||
will be used, in +$(O)/per-package/<pkg>/target/+ and
|
||||
+$(O)/per-package/<pkg>/host/+ respectively. Those folders will be
|
||||
populated from the corresponding folders of the package dependencies
|
||||
at the beginning of +<pkg>+ build. The compiler and all other tools
|
||||
will therefore only be able to see and access files installed by
|
||||
dependencies explicitly listed by +<pkg>+.
|
||||
|
||||
* At the end of the build, the global _target_ and _host_ directories
|
||||
will be populated, located in +$(O)/target+ and +$(O)/host+
|
||||
respectively. This means that during the build, those folders will
|
||||
be empty and it's only at the very end of the build that they will
|
||||
be populated.
|
||||
|
||||
include::eclipse-integration.txt[]
|
||||
|
||||
include::advanced.txt[]
|
||||
|
@ -206,9 +206,9 @@ Buildroot or crosstool-NG.
|
||||
|
||||
If you want to generate a custom toolchain for your project, that can
|
||||
be used as an external toolchain in Buildroot, our recommendation is
|
||||
definitely to build it with http://crosstool-ng.org[crosstool-NG]. We
|
||||
recommend to build the toolchain separately from Buildroot, and then
|
||||
_import_ it in Buildroot using the external toolchain backend.
|
||||
to build it either with Buildroot itself (see
|
||||
xref:build-toolchain-with-buildroot[]) or with
|
||||
http://crosstool-ng.org[crosstool-NG].
|
||||
|
||||
Advantages of this backend:
|
||||
|
||||
@ -223,7 +223,53 @@ Drawbacks of this backend:
|
||||
|
||||
* If your pre-built external toolchain has a bug, may be hard to get a
|
||||
fix from the toolchain vendor, unless you build your external
|
||||
toolchain by yourself using Crosstool-NG.
|
||||
toolchain by yourself using Buildroot or Crosstool-NG.
|
||||
|
||||
[[build-toolchain-with-buildroot]]
|
||||
==== Build an external toolchain with Buildroot
|
||||
|
||||
The Buildroot internal toolchain option can be used to create an
|
||||
external toolchain. Here are a series of steps to build an internal
|
||||
toolchain and package it up for reuse by Buildroot itself (or other
|
||||
projects).
|
||||
|
||||
Create a new Buildroot configuration, with the following details:
|
||||
|
||||
* Select the appropriate *Target options* for your target CPU
|
||||
architecture
|
||||
|
||||
* In the *Toolchain* menu, keep the default of *Buildroot toolchain*
|
||||
for *Toolchain type*, and configure your toolchain as desired
|
||||
|
||||
* In the *System configuration* menu, select *None* as the *Init
|
||||
system* and *none* as */bin/sh*
|
||||
|
||||
* In the *Target packages* menu, disable *BusyBox*
|
||||
|
||||
* In the *Filesystem images* menu, disable *tar the root filesystem*
|
||||
|
||||
Then, we can trigger the build, and also ask Buildroot to generate a
|
||||
SDK. This will conveniently generate for us a tarball which contains
|
||||
our toolchain:
|
||||
|
||||
-----
|
||||
make sdk
|
||||
-----
|
||||
|
||||
This produces the SDK tarball in +$(O)/images+, with a name similar to
|
||||
+arm-buildroot-linux-uclibcgnueabi_sdk-buildroot.tar.gz+. Save this
|
||||
tarball, as it is now the toolchain that you can re-use as an external
|
||||
toolchain in other Buildroot projects.
|
||||
|
||||
In those other Buildroot projects, in the *Toolchain* menu:
|
||||
|
||||
* Set *Toolchain type* to *External toolchain*
|
||||
|
||||
* Set *Toolchain* to *Custom toolchain*
|
||||
|
||||
* Set *Toolchain origin* to *Toolchain to be downloaded and installed*
|
||||
|
||||
* Set *Toolchain URL* to +file:///path/to/your/sdk/tarball.tar.gz+
|
||||
|
||||
===== External toolchain wrapper
|
||||
|
||||
|
@ -73,7 +73,7 @@ basically two things that can be done:
|
||||
In the commit message of a patch fixing an autobuild failure, add a
|
||||
reference to the build result directory, as follows:
|
||||
---------------------
|
||||
Fixes http://autobuild.buildroot.org/results/51000a9d4656afe9e0ea6f07b9f8ed374c2e4069
|
||||
Fixes: http://autobuild.buildroot.org/results/51000a9d4656afe9e0ea6f07b9f8ed374c2e4069
|
||||
---------------------
|
||||
|
||||
=== Reviewing and testing patches
|
||||
@ -402,7 +402,7 @@ the problem is complex, it is OK to add more paragraphs. All paragraphs
|
||||
should be wrapped at 72 characters.
|
||||
|
||||
A paragraph that explains the root cause of the problem. Again, more
|
||||
than on paragraph is OK.
|
||||
than one paragraph is OK.
|
||||
|
||||
Finally, one or more paragraphs that explain how the problem is solved.
|
||||
Don't hesitate to explain complex solutions in detail.
|
||||
@ -487,3 +487,171 @@ preserve Unix-style line terminators when downloading raw pastes.
|
||||
Following pastebin services are known to work correctly:
|
||||
- https://gist.github.com/
|
||||
- http://code.bulix.org/
|
||||
|
||||
=== Using the run-tests framework
|
||||
|
||||
Buildroot includes a run-time testing framework called run-tests built
|
||||
upon Python scripting and QEMU runtime execution. There are two types of
|
||||
test cases within the framework, one for build time tests and another for
|
||||
run-time tests that have a QEMU dependency. The goals of the framework are
|
||||
the following:
|
||||
|
||||
* build a well defined configuration
|
||||
* optionally, verify some properties of the build output
|
||||
* if it is a run-time test:
|
||||
** boot it under QEMU
|
||||
** run some test condition to verify that a given feature is working
|
||||
|
||||
The run-tests tool has a series of options documented in the tool's help '-h'
|
||||
description. Some common options include setting the download folder, the
|
||||
output folder, keeping build output, and for multiple test cases, you can set
|
||||
the JLEVEL for each.
|
||||
|
||||
Here is an example walk through of running a test case.
|
||||
|
||||
* For a first step, let us see what all the test case options are. The test
|
||||
cases can be listed by executing +support/testing/run-tests -l+. These tests
|
||||
can all be run individually during test development from the console. Both
|
||||
one at a time and selectively as a group of a subset of tests.
|
||||
|
||||
---------------------
|
||||
$ support/testing/run-tests -l
|
||||
List of tests
|
||||
test_run (tests.utils.test_check_package.TestCheckPackage)
|
||||
Test the various ways the script can be called in a simple top to ... ok
|
||||
test_run (tests.toolchain.test_external.TestExternalToolchainBuildrootMusl) ... ok
|
||||
test_run (tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc) ... ok
|
||||
test_run (tests.toolchain.test_external.TestExternalToolchainCCache) ... ok
|
||||
test_run (tests.toolchain.test_external.TestExternalToolchainCtngMusl) ... ok
|
||||
test_run (tests.toolchain.test_external.TestExternalToolchainLinaroArm) ... ok
|
||||
test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv4) ... ok
|
||||
test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv5) ... ok
|
||||
test_run (tests.toolchain.test_external.TestExternalToolchainSourceryArmv7) ... ok
|
||||
[snip]
|
||||
test_run (tests.init.test_systemd.TestInitSystemSystemdRoFull) ... ok
|
||||
test_run (tests.init.test_systemd.TestInitSystemSystemdRoIfupdown) ... ok
|
||||
test_run (tests.init.test_systemd.TestInitSystemSystemdRoNetworkd) ... ok
|
||||
test_run (tests.init.test_systemd.TestInitSystemSystemdRwFull) ... ok
|
||||
test_run (tests.init.test_systemd.TestInitSystemSystemdRwIfupdown) ... ok
|
||||
test_run (tests.init.test_systemd.TestInitSystemSystemdRwNetworkd) ... ok
|
||||
test_run (tests.init.test_busybox.TestInitSystemBusyboxRo) ... ok
|
||||
test_run (tests.init.test_busybox.TestInitSystemBusyboxRoNet) ... ok
|
||||
test_run (tests.init.test_busybox.TestInitSystemBusyboxRw) ... ok
|
||||
test_run (tests.init.test_busybox.TestInitSystemBusyboxRwNet) ... ok
|
||||
|
||||
Ran 157 tests in 0.021s
|
||||
|
||||
OK
|
||||
---------------------
|
||||
|
||||
Those runtime tests are regularly executed by Buildroot Gitlab CI
|
||||
infrastructure, see .gitlab.yml and https://gitlab.com/buildroot.org/buildroot/-/jobs.
|
||||
|
||||
==== Creating a test case
|
||||
|
||||
The best way to get familiar with how to create a test case is to look at a
|
||||
few of the basic file system +support/testing/tests/fs/+ and init
|
||||
+support/testing/tests/init/+ test scripts. Those tests give good examples
|
||||
of a basic build and build with run type of tests. There are other more
|
||||
advanced cases that use things like nested +br2-external+ folders to provide
|
||||
skeletons and additional packages.
|
||||
|
||||
The test cases by default use a br-arm-full-* uClibc-ng toolchain and the
|
||||
prebuild kernel for a armv5/7 cpu. It is recommended to use the default
|
||||
defconfig test configuration except when Glibc/musl or a newer kernel are
|
||||
necessary. By using the default it saves build time and the test would
|
||||
automatically inherit a kernel/std library upgrade when the default is
|
||||
updated.
|
||||
|
||||
The basic test case definition involves
|
||||
|
||||
* Creation of a new test file
|
||||
* Defining a unique test class
|
||||
* Determining if the default defconfig plus test options can be used
|
||||
* Implementing a +def test_run(self):+ function to optionally startup the
|
||||
emulator and provide test case conditions.
|
||||
|
||||
Beyond creating the test script, there are a couple of additional steps that
|
||||
should be taken once you have your initial test case script. The first is
|
||||
to add yourself to the +DEVELOPERS+ file to be the maintainer of that test
|
||||
case. The second is to update the Gitlab CI yml by executing
|
||||
+make .gitlab-ci.yml+.
|
||||
|
||||
==== Debugging a test case
|
||||
|
||||
Within the Buildroot repository, the testing framework is organized at the
|
||||
top level in +support/testing/+ by folders of +conf+, +infra+ and +tests+.
|
||||
All the test cases live under the +test+ folder and are organized in various
|
||||
folders representing the catagory of test.
|
||||
|
||||
Lets walk through an example.
|
||||
|
||||
* Using the Busybox Init system test case with a read/write rootfs
|
||||
+tests.init.test_busybox.TestInitSystemBusyboxRw+
|
||||
* A minimal set of command line arguments when debugging a test case would
|
||||
include '-d' which points to your dl folder, '-o' to an output folder, and
|
||||
'-k' to keep any output on both pass/fail. With those options, the test will
|
||||
retain logging and build artifacts providing status of the build and
|
||||
execution of the test case.
|
||||
|
||||
---------------------
|
||||
$ support/testing/run-tests -d dl -o output_folder -k tests.init.test_busybox.TestInitSystemBusyboxRw
|
||||
15:03:26 TestInitSystemBusyboxRw Starting
|
||||
15:03:28 TestInitSystemBusyboxRw Building
|
||||
15:08:18 TestInitSystemBusyboxRw Building done
|
||||
15:08:27 TestInitSystemBusyboxRw Cleaning up
|
||||
.
|
||||
Ran 1 test in 301.140s
|
||||
|
||||
OK
|
||||
---------------------
|
||||
|
||||
* For the case of a successful build, the +output_folder+ would contain a
|
||||
<test name> folder with the Buildroot build, build log and run-time log. If
|
||||
the build failed, the console output would show the stage at which it failed
|
||||
(setup / build / run). Depending on the failure stage, the build/run logs
|
||||
and/or Buildroot build artifacts can be inspected and instrumented. If the
|
||||
QEMU instance needs to be launched for additional testing, the first few
|
||||
lines of the run-time log capture it and it would allow some incremental
|
||||
testing without re-running +support/testing/run-tests+.
|
||||
|
||||
* You can also make modifications to the current sources inside the
|
||||
+output_folder+ (e.g. for debug purposes) and rerun the standard
|
||||
Buildroot make targets (in order to regenerate the complete image with
|
||||
the new modifications) and then rerun the test. Modifying the sources
|
||||
directly can speed up debugging compared to adding patch files, wiping the
|
||||
output directoy, and starting the test again.
|
||||
|
||||
---------------------
|
||||
$ ls output_folder/
|
||||
TestInitSystemBusyboxRw/
|
||||
TestInitSystemBusyboxRw-build.log
|
||||
TestInitSystemBusyboxRw-run.log
|
||||
---------------------
|
||||
|
||||
* The source file used to implement this example test is found under
|
||||
+support/testing/tests/init/test_busybox.py+. This file outlines the
|
||||
minimal defconfig that creates the build, QEMU configuration to launch
|
||||
the built images and the test case assertions.
|
||||
|
||||
To test an existing or new test case within Gitlab CI, there is a method of
|
||||
invoking a specific test by creating a Buildroot fork in Gitlab under your
|
||||
account. This can be handy when adding/changing a run-time test or fixing a
|
||||
bug on a use case tested by a run-time test case.
|
||||
|
||||
|
||||
In the examples below, the <name> component of the branch name is a unique
|
||||
string you choose to identify this specific job being created.
|
||||
|
||||
* to trigger all run-test test case jobs:
|
||||
|
||||
---------------------
|
||||
$ git push gitlab HEAD:<name>-runtime-tests
|
||||
---------------------
|
||||
|
||||
* to trigger one test case job, a specific branch naming string is used that
|
||||
includes the full test case name.
|
||||
|
||||
---------------------
|
||||
$ git push gitlab HEAD:<name>-<test case name>
|
||||
---------------------
|
||||
|
@ -22,7 +22,7 @@ place project-specific customizations in two locations:
|
||||
One can tell Buildroot to use one or more br2-external trees by setting
|
||||
the +BR2_EXTERNAL+ make variable set to the path(s) of the br2-external
|
||||
tree(s) to use. It can be passed to any Buildroot +make+ invocation. It
|
||||
is automatically saved in the hidden +.br-external.mk+ file in the output
|
||||
is automatically saved in the hidden +.br2-external.mk+ file in the output
|
||||
directory. Thanks to this, there is no need to pass +BR2_EXTERNAL+ at
|
||||
every +make+ invocation. It can however be changed at any time by
|
||||
passing a new value, and can be removed by passing an empty value.
|
||||
@ -81,7 +81,8 @@ in the following chapters:
|
||||
|
||||
Apart from those mandatory files, there may be additional and optional
|
||||
content that may be present in a br2-external tree, like the +configs/+
|
||||
directory. They are described in the following chapters as well.
|
||||
or +provides/+ directories. They are described in the following chapters
|
||||
as well.
|
||||
|
||||
A complete example br2-external tree layout is also described later.
|
||||
|
||||
@ -186,6 +187,22 @@ the one from the last br2-external tree is used. It is thus possible
|
||||
to override a defconfig bundled in Buildroot or another br2-external
|
||||
tree.
|
||||
|
||||
===== The +provides/+ directory
|
||||
|
||||
For some packages, Buildroot provides a choice between two (or more)
|
||||
implementations of API-compatible such packages. For example, there is
|
||||
a choice to choose either libjpeg ot jpeg-turbo, and another choice
|
||||
between openssl or libressl. Finally, there is a choice to select one
|
||||
of the known, pre-configured toolchains.
|
||||
|
||||
It is possible for a br2-external to extend those choices, by providing
|
||||
a set of files that define those alternatives:
|
||||
|
||||
* +provides/toolchains.in+ defines the pre-configured toolchains, which
|
||||
will then be listed in the toolchain selection;
|
||||
* +provides/jpeg.in+ defines the alternative libjpeg implementations;
|
||||
* +provides/openssl.in+ defines the alternative openssl implementations.
|
||||
|
||||
===== Free-form content
|
||||
|
||||
One can store all the board-specific configuration files there, such
|
||||
@ -202,6 +219,12 @@ BR2_ROOTFS_OVERLAY=$(BR2_EXTERNAL_BAR_42_PATH)/board/<boardname>/overlay/
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=$(BR2_EXTERNAL_BAR_42_PATH)/board/<boardname>/kernel.config
|
||||
----
|
||||
|
||||
===== Additional Linux kernel extensions
|
||||
|
||||
Additional Linux kernel extensions (see xref:linux-kernel-ext[]) can
|
||||
be added by storing them in the `linux/` directory at the root of a
|
||||
br2-external tree.
|
||||
|
||||
===== Example layout
|
||||
|
||||
Here is an example layout using all features of br2-external (the sample
|
||||
@ -217,8 +240,10 @@ illustration, of course):
|
||||
| `----
|
||||
|
|
||||
|- Config.in
|
||||
| |source "$BR2_EXTERNAL_BAR_42_PATH/toolchain/toolchain-external-mine/Config.in.options"
|
||||
| |source "$BR2_EXTERNAL_BAR_42_PATH/package/pkg-1/Config.in"
|
||||
| |source "$BR2_EXTERNAL_BAR_42_PATH/package/pkg-2/Config.in"
|
||||
| |source "$BR2_EXTERNAL_BAR_42_PATH/package/my-jpeg/Config.in"
|
||||
| |
|
||||
| |config BAR_42_FLASH_ADDR
|
||||
| | hex "my-board flash address"
|
||||
@ -227,6 +252,7 @@ illustration, of course):
|
||||
|
|
||||
|- external.mk
|
||||
| |include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/package/*/*.mk))
|
||||
| |include $(sort $(wildcard $(BR2_EXTERNAL_BAR_42_PATH)/toolchain/*/*.mk))
|
||||
| |
|
||||
| |flash-my-board:
|
||||
| | $(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/flash-image \
|
||||
@ -259,6 +285,50 @@ illustration, of course):
|
||||
|- package/pkg-2/pkg-2.hash
|
||||
|- package/pkg-2/pkg-2.mk
|
||||
|
|
||||
|- provides/jpeg.in
|
||||
| |config BR2_PACKAGE_MY_JPEG
|
||||
| | bool "my-jpeg"
|
||||
| `----
|
||||
|- package/my-jpeg/Config.in
|
||||
| |config BR2_PACKAGE_PROVIDES_JPEG
|
||||
| | default "my-jpeg" if BR2_PACKAGE_MY_JPEG
|
||||
| `----
|
||||
|- package/my-jpeg/my-jpeg.mk
|
||||
| |# This is a normal package .mk file
|
||||
| |MY_JPEG_VERSION = 1.2.3
|
||||
| |MY_JPEG_SITE = https://example.net/some/place
|
||||
| |MY_JPEG_PROVIDES = jpeg
|
||||
| |$(eval $(autotools-package))
|
||||
| `----
|
||||
|
|
||||
|- provides/toolchains.in
|
||||
| |config BR2_TOOLCHAIN_EXTERNAL_MINE
|
||||
| | bool "my custom toolchain"
|
||||
| | depends on BR2_some_arch
|
||||
| | select BR2_INSTALL_LIBSTDCPP
|
||||
| `----
|
||||
|- toolchain/toolchain-external-mine/Config.in.options
|
||||
| |if BR2_TOOLCHAIN_EXTERNAL_MINE
|
||||
| |config BR2_TOOLCHAIN_EXTERNAL_PREFIX
|
||||
| | default "arch-mine-linux-gnu"
|
||||
| |config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
|
||||
| | default "toolchain-external-mine"
|
||||
| |endif
|
||||
| `----
|
||||
|- toolchain/toolchain-external-mine/toolchain-external-mine.mk
|
||||
| |TOOLCHAIN_EXTERNAL_MINE_SITE = https://example.net/some/place
|
||||
| |TOOLCHAIN_EXTERNAL_MINE_SOURCE = my-toolchain.tar.gz
|
||||
| |$(eval $(toolchain-external-package))
|
||||
| `----
|
||||
|
|
||||
|- linux/Config.ext.in
|
||||
| |config BR2_LINUX_KERNEL_EXT_EXAMPLE_DRIVER
|
||||
| | bool "example-external-driver"
|
||||
| | help
|
||||
| | Example external driver
|
||||
| |---
|
||||
|- linux/linux-ext-example-driver.mk
|
||||
|
|
||||
|- configs/my-board_defconfig
|
||||
| |BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_BAR_42_PATH)/patches/"
|
||||
| |BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/overlay/"
|
||||
@ -311,3 +381,35 @@ External options --->
|
||||
[ ] foo
|
||||
[ ] bar
|
||||
----
|
||||
|
||||
Additionally, the jpeg provider will be visible in the jpeg choice:
|
||||
|
||||
----
|
||||
Target packages --->
|
||||
Libraries --->
|
||||
Graphics --->
|
||||
[*] jpeg support
|
||||
jpeg variant () --->
|
||||
( ) jpeg
|
||||
( ) jpeg-turbo
|
||||
*** jpeg from: Example br2-external tree ***
|
||||
(X) my-jpeg
|
||||
*** jpeg from: FOO_27 ***
|
||||
( ) another-jpeg
|
||||
----
|
||||
|
||||
And similarly for the toolchains:
|
||||
|
||||
----
|
||||
Toolchain --->
|
||||
Toolchain () --->
|
||||
( ) Custom toolchain
|
||||
*** Toolchains from: Example br2-external tree ***
|
||||
(X) my custom toolchain
|
||||
----
|
||||
|
||||
.Note
|
||||
The toolchain options in +toolchain/toolchain-external-mine/Config.in.options+
|
||||
will not appear in the `Toolchain` menu. They must be explicitly included
|
||||
from within the br2-external's top-level +Config.in+ and will thus appear
|
||||
in the `External options` menu.
|
||||
|
@ -53,7 +53,7 @@ directory.
|
||||
The exception to +BR2_GLOBAL_PATCH_DIR+ being the preferred method for
|
||||
specifying custom patches is +BR2_LINUX_KERNEL_PATCH+.
|
||||
+BR2_LINUX_KERNEL_PATCH+ should be used to specify kernel patches that
|
||||
are available at an URL. *Note:* +BR2_LINUX_KERNEL_PATCH+ specifies kernel
|
||||
are available at a URL. *Note:* +BR2_LINUX_KERNEL_PATCH+ specifies kernel
|
||||
patches that are applied after patches available in +BR2_GLOBAL_PATCH_DIR+,
|
||||
as it is done from a post-patch hook of the Linux package.
|
||||
|
||||
|
@ -145,7 +145,7 @@ It is recommended to use the existing mechanisms to set file permissions
|
||||
The difference between post-build scripts (above) and fakeroot scripts,
|
||||
is that post-build scripts are not called in the fakeroot context.
|
||||
+
|
||||
.Note;
|
||||
.Note:
|
||||
Using `fakeroot` is not an absolute substitute for actually being root.
|
||||
`fakeroot` only ever fakes the file access rights and types (regular,
|
||||
block-or-char device...) and uid/gid; these are emulated in-memory.
|
||||
|
@ -1,329 +0,0 @@
|
||||
/*
|
||||
CSS stylesheet for XHTML produced by DocBook XSL stylesheets.
|
||||
*/
|
||||
|
||||
body {
|
||||
font-family: Georgia,serif;
|
||||
}
|
||||
|
||||
code, pre {
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
}
|
||||
|
||||
span.strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
body blockquote {
|
||||
margin-top: .75em;
|
||||
line-height: 1.5;
|
||||
margin-bottom: .75em;
|
||||
}
|
||||
|
||||
html body {
|
||||
margin: 1em 5% 1em 5%;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
body div {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6
|
||||
{
|
||||
color: #527bbd;
|
||||
font-family: Arial,Helvetica,sans-serif;
|
||||
}
|
||||
|
||||
div.toc p:first-child,
|
||||
div.list-of-figures p:first-child,
|
||||
div.list-of-tables p:first-child,
|
||||
div.list-of-examples p:first-child,
|
||||
div.example p.title,
|
||||
div.sidebar p.title
|
||||
{
|
||||
font-weight: bold;
|
||||
color: #527bbd;
|
||||
font-family: Arial,Helvetica,sans-serif;
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
|
||||
body h1 {
|
||||
margin: .0em 0 0 -4%;
|
||||
line-height: 1.3;
|
||||
border-bottom: 2px solid silver;
|
||||
}
|
||||
|
||||
body h2 {
|
||||
margin: 0.5em 0 0 -4%;
|
||||
line-height: 1.3;
|
||||
border-bottom: 2px solid silver;
|
||||
}
|
||||
|
||||
body h3 {
|
||||
margin: .8em 0 0 -3%;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
body h4 {
|
||||
margin: .8em 0 0 -3%;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
body h5 {
|
||||
margin: .8em 0 0 -2%;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
body h6 {
|
||||
margin: .8em 0 0 -1%;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
body hr {
|
||||
border: none; /* Broken on IE6 */
|
||||
}
|
||||
div.footnotes hr {
|
||||
border: 1px solid silver;
|
||||
}
|
||||
|
||||
div.navheader th, div.navheader td, div.navfooter td {
|
||||
font-family: Arial,Helvetica,sans-serif;
|
||||
font-size: 0.9em;
|
||||
font-weight: bold;
|
||||
color: #527bbd;
|
||||
}
|
||||
div.navheader img, div.navfooter img {
|
||||
border-style: none;
|
||||
}
|
||||
div.navheader a, div.navfooter a {
|
||||
font-weight: normal;
|
||||
}
|
||||
div.navfooter hr {
|
||||
border: 1px solid silver;
|
||||
}
|
||||
|
||||
body td {
|
||||
line-height: 1.2
|
||||
}
|
||||
|
||||
body th {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
ol {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
ul, body dir, body menu {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
html {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body h1, body h2, body h3, body h4, body h5, body h6 {
|
||||
margin-left: 0
|
||||
}
|
||||
|
||||
body pre {
|
||||
margin: 0.5em 10% 0.5em 1em;
|
||||
line-height: 1.0;
|
||||
color: navy;
|
||||
}
|
||||
|
||||
tt.literal, code.literal {
|
||||
color: navy;
|
||||
}
|
||||
|
||||
.programlisting, .screen {
|
||||
border: 1px solid silver;
|
||||
background: #f4f4f4;
|
||||
margin: 0.5em 10% 0.5em 0;
|
||||
padding: 0.5em 1em;
|
||||
}
|
||||
|
||||
div.sidebar {
|
||||
background: #ffffee;
|
||||
margin: 1.0em 10% 0.5em 0;
|
||||
padding: 0.5em 1em;
|
||||
border: 1px solid silver;
|
||||
}
|
||||
div.sidebar * { padding: 0; }
|
||||
div.sidebar div { margin: 0; }
|
||||
div.sidebar p.title {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
|
||||
div.bibliomixed {
|
||||
margin: 0.5em 5% 0.5em 1em;
|
||||
}
|
||||
|
||||
div.glossary dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
div.glossary dd p {
|
||||
margin-top: 0.2em;
|
||||
}
|
||||
|
||||
dl {
|
||||
margin: .8em 0;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
dt {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
dt span.term {
|
||||
font-style: normal;
|
||||
color: navy;
|
||||
}
|
||||
|
||||
div.variablelist dd p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
div.itemizedlist li, div.orderedlist li {
|
||||
margin-left: -0.8em;
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
list-style-position: outside;
|
||||
}
|
||||
|
||||
div.sidebar ul, div.sidebar ol {
|
||||
margin-left: 2.8em;
|
||||
}
|
||||
|
||||
div.itemizedlist p.title,
|
||||
div.orderedlist p.title,
|
||||
div.variablelist p.title
|
||||
{
|
||||
margin-bottom: -0.8em;
|
||||
}
|
||||
|
||||
div.revhistory table {
|
||||
border-collapse: collapse;
|
||||
border: none;
|
||||
}
|
||||
div.revhistory th {
|
||||
border: none;
|
||||
color: #527bbd;
|
||||
font-family: Arial,Helvetica,sans-serif;
|
||||
}
|
||||
div.revhistory td {
|
||||
border: 1px solid silver;
|
||||
}
|
||||
|
||||
/* Keep TOC and index lines close together. */
|
||||
div.toc dl, div.toc dt,
|
||||
div.list-of-figures dl, div.list-of-figures dt,
|
||||
div.list-of-tables dl, div.list-of-tables dt,
|
||||
div.indexdiv dl, div.indexdiv dt
|
||||
{
|
||||
line-height: normal;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Table styling does not work because of overriding attributes in
|
||||
generated HTML.
|
||||
*/
|
||||
div.table table,
|
||||
div.informaltable table
|
||||
{
|
||||
margin-left: 0;
|
||||
margin-right: 5%;
|
||||
margin-bottom: 0.8em;
|
||||
}
|
||||
div.informaltable table
|
||||
{
|
||||
margin-top: 0.4em
|
||||
}
|
||||
div.table thead,
|
||||
div.table tfoot,
|
||||
div.table tbody,
|
||||
div.informaltable thead,
|
||||
div.informaltable tfoot,
|
||||
div.informaltable tbody
|
||||
{
|
||||
/* No effect in IE6. */
|
||||
border-top: 3px solid #527bbd;
|
||||
border-bottom: 3px solid #527bbd;
|
||||
}
|
||||
div.table thead, div.table tfoot,
|
||||
div.informaltable thead, div.informaltable tfoot
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.mediaobject img {
|
||||
margin-bottom: 0.8em;
|
||||
}
|
||||
div.figure p.title,
|
||||
div.table p.title
|
||||
{
|
||||
margin-top: 1em;
|
||||
margin-bottom: 0.4em;
|
||||
}
|
||||
|
||||
div.calloutlist p
|
||||
{
|
||||
margin-top: 0em;
|
||||
margin-bottom: 0.4em;
|
||||
}
|
||||
|
||||
a img {
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
@media print {
|
||||
div.navheader, div.navfooter { display: none; }
|
||||
}
|
||||
|
||||
span.aqua { color: aqua; }
|
||||
span.black { color: black; }
|
||||
span.blue { color: blue; }
|
||||
span.fuchsia { color: fuchsia; }
|
||||
span.gray { color: gray; }
|
||||
span.green { color: green; }
|
||||
span.lime { color: lime; }
|
||||
span.maroon { color: maroon; }
|
||||
span.navy { color: navy; }
|
||||
span.olive { color: olive; }
|
||||
span.purple { color: purple; }
|
||||
span.red { color: red; }
|
||||
span.silver { color: silver; }
|
||||
span.teal { color: teal; }
|
||||
span.white { color: white; }
|
||||
span.yellow { color: yellow; }
|
||||
|
||||
span.aqua-background { background: aqua; }
|
||||
span.black-background { background: black; }
|
||||
span.blue-background { background: blue; }
|
||||
span.fuchsia-background { background: fuchsia; }
|
||||
span.gray-background { background: gray; }
|
||||
span.green-background { background: green; }
|
||||
span.lime-background { background: lime; }
|
||||
span.maroon-background { background: maroon; }
|
||||
span.navy-background { background: navy; }
|
||||
span.olive-background { background: olive; }
|
||||
span.purple-background { background: purple; }
|
||||
span.red-background { background: red; }
|
||||
span.silver-background { background: silver; }
|
||||
span.teal-background { background: teal; }
|
||||
span.white-background { background: white; }
|
||||
span.yellow-background { background: yellow; }
|
||||
|
||||
span.big { font-size: 2em; }
|
||||
span.small { font-size: 0.6em; }
|
||||
|
||||
span.underline { text-decoration: underline; }
|
||||
span.overline { text-decoration: overline; }
|
||||
span.line-through { text-decoration: line-through; }
|
@ -239,3 +239,6 @@ help reduce the build time:
|
||||
|
||||
* Buy new hardware. SSDs and lots of RAM are key to speeding up the
|
||||
builds.
|
||||
|
||||
* Experiment with top-level parallel build, see
|
||||
xref:top-level-parallel-build[].
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 19 KiB |
@ -67,9 +67,8 @@ for packages released under BSD-like licenses, that you are not required to
|
||||
redistribute in source form.
|
||||
|
||||
Moreover, due to technical limitations, Buildroot does not produce some
|
||||
material that you will or may need, such as the toolchain source code and the
|
||||
Buildroot source code itself (including patches to packages for which source
|
||||
distribution is required).
|
||||
material that you will or may need, such as the toolchain source code for
|
||||
some of the external toolchains and the Buildroot source code itself.
|
||||
When you run +make legal-info+, Buildroot produces warnings in the +README+
|
||||
file to inform you of relevant material that could not be saved.
|
||||
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 115 KiB |
@ -80,18 +80,18 @@ to xref:ccache[].
|
||||
|
||||
.Dumping the internal make variables:
|
||||
|
||||
One can dump all the variables known to make, along with their values:
|
||||
One can dump the variables known to make, along with their values:
|
||||
|
||||
----
|
||||
$ make -s printvars
|
||||
VARIABLE=value_of_variable
|
||||
...
|
||||
$ make -s printvars VARS='VARIABLE1 VARIABLE2'
|
||||
VARIABLE1=value_of_variable
|
||||
VARIABLE2=value_of_variable
|
||||
----
|
||||
|
||||
It is possible to tweak the output using some variables:
|
||||
|
||||
- +VARS+ will limit the listing to variables which names match the
|
||||
specified make-pattern
|
||||
specified make-patterns - this must be set else nothing is printed
|
||||
- +QUOTED_VARS+, if set to +YES+, will single-quote the value
|
||||
- +RAW_VARS+, if set to +YES+, will print the unexpanded value
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -12,7 +12,7 @@ It is licensed under the GNU General Public License, version 2. Refer to the
|
||||
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-2019 The Buildroot developers
|
||||
Copyright (C) 2004-2020 The Buildroot developers
|
||||
|
||||
image::logo.png[]
|
||||
|
||||
@ -66,6 +66,8 @@ include::contribute.txt[]
|
||||
|
||||
include::developers.txt[]
|
||||
|
||||
include::release-engineering.txt[]
|
||||
|
||||
= Appendix
|
||||
|
||||
include::appendix.txt[]
|
||||
|
@ -23,8 +23,8 @@ between distributions).
|
||||
** +make+ (version 3.81 or any later)
|
||||
** +binutils+
|
||||
** +build-essential+ (only for Debian based systems)
|
||||
** +gcc+ (version 4.4 or any later)
|
||||
** `g++` (version 4.4 or any later)
|
||||
** +gcc+ (version 4.8 or any later)
|
||||
** `g++` (version 4.8 or any later)
|
||||
** +bash+
|
||||
** +patch+
|
||||
** +gzip+
|
||||
@ -32,7 +32,6 @@ between distributions).
|
||||
** +perl+ (version 5.8.7 or any later)
|
||||
** +tar+
|
||||
** +cpio+
|
||||
** +python+ (version 2.7 or any later)
|
||||
** +unzip+
|
||||
** +rsync+
|
||||
** +file+ (must be in +/usr/bin/file+)
|
||||
@ -45,6 +44,14 @@ between distributions).
|
||||
|
||||
=== Optional packages
|
||||
|
||||
* Recommended dependencies:
|
||||
+
|
||||
Some features or utilities in Buildroot, like the legal-info, or the
|
||||
graph generation tools, have additional dependencies. Although they
|
||||
are not mandatory for a simple build, they are still highly recommended:
|
||||
+
|
||||
** +python+ (version 2.7 or any later)
|
||||
|
||||
* Configuration interface dependencies:
|
||||
+
|
||||
For these libraries, you need to install both runtime and development
|
||||
@ -52,7 +59,7 @@ data, which in many distributions are packaged separately. The
|
||||
development packages typically have a _-dev_ or _-devel_ suffix.
|
||||
+
|
||||
** +ncurses5+ to use the 'menuconfig' interface
|
||||
** +qt4+ to use the 'xconfig' interface
|
||||
** +qt5+ to use the 'xconfig' interface
|
||||
** +glib2+, +gtk2+ and +glade2+ to use the 'gconfig' interface
|
||||
|
||||
* Source fetching tools:
|
||||
|
@ -60,10 +60,10 @@ To start the build process, simply run:
|
||||
$ make
|
||||
--------------------
|
||||
|
||||
You *should never* use +make -jN+ with Buildroot: top-level parallel
|
||||
make is currently not supported. Instead, use the +BR2_JLEVEL+ option
|
||||
to tell Buildroot to run the compilation of each individual package
|
||||
with +make -jN+.
|
||||
By default, Buildroot does not support top-level parallel build, so
|
||||
running +make -jN+ is not necessary. There is however experimental
|
||||
support for top-level parallel build, see
|
||||
xref:top-level-parallel-build[].
|
||||
|
||||
The `make` command will generally perform the following steps:
|
||||
|
||||
@ -87,15 +87,21 @@ This directory contains several subdirectories:
|
||||
target). This directory contains one subdirectory for each of these
|
||||
components.
|
||||
|
||||
* +staging/+ which contains a hierarchy similar to a root filesystem
|
||||
hierarchy. This directory contains the headers and libraries of the
|
||||
cross-compilation toolchain and all the userspace packages selected
|
||||
for the target. However, this directory is 'not' intended to be
|
||||
the root filesystem for the target: it contains a lot of development
|
||||
files, unstripped binaries and libraries that make it far too big
|
||||
for an embedded system. These development files are used to compile
|
||||
libraries and applications for the target that depend on other
|
||||
libraries.
|
||||
* +host/+ contains both the tools built for the host, and the sysroot
|
||||
of the target toolchain. The former is an installation of tools
|
||||
compiled for the host that are needed for the proper execution of
|
||||
Buildroot, including the cross-compilation toolchain. The latter
|
||||
is a hierarchy similar to a root filesystem hierarchy. It contains
|
||||
the headers and libraries of all user-space packages that provide
|
||||
and install libraries used by other packages. However, this
|
||||
directory is 'not' intended to be the root filesystem for the target:
|
||||
it contains a lot of development files, unstripped binaries and
|
||||
libraries that make it far too big for an embedded system. These
|
||||
development files are used to compile libraries and applications for
|
||||
the target that depend on other libraries.
|
||||
|
||||
* +staging/+ is a symlink to the target toolchain sysroot inside
|
||||
+host/+, which exists for backwards compatibility.
|
||||
|
||||
* +target/+ which contains 'almost' the complete root filesystem for
|
||||
the target: everything needed is present except the device files in
|
||||
@ -111,10 +117,6 @@ This directory contains several subdirectories:
|
||||
development files (headers, etc.) are not present, the binaries are
|
||||
stripped.
|
||||
|
||||
* +host/+ contains the installation of tools compiled for the host
|
||||
that are needed for the proper execution of Buildroot, including the
|
||||
cross-compilation toolchain.
|
||||
|
||||
These commands, +make menuconfig|nconfig|gconfig|xconfig+ and +make+, are the
|
||||
basic ones that allow to easily and quickly generate images fitting
|
||||
your needs, with all the features and applications you enabled.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user