summaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag '2019.02.1' into 2019.02-op-buildJoel Stanley2019-04-011-3/+3
|\ | | | | | | Signed-off-by: Joel Stanley <joel@jms.id.au>
| * Update for 2019.02.1Peter Korsgaard2019-03-291-2/+2
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * Makefile: release: really drop build/docs from release tarballPeter Korsgaard2019-03-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 15cb98769e4 (release: remove manual build files from release tarballs) tried to remove the temporary files from the manual build from the release tarball, but manual-clean only removes build/docs/manual and leaves build/docs in the tarball. Instead use 'make clean' to completely remove the build directory from the tarball. Signed-off-by: Peter Korsgaard <peter@korsgaard.com> (cherry picked from commit c24faa81e859a773c72a84dca1eadffd1ddeffcf) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Separate target-building make targets from image-building make targetsStewart Smith2019-03-051-2/+5
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, it's not possible to have dependencies from an image-building target to a rootfs-building target. For example, the boot-wrapper-aarch64 package uses the kernel build as an input file. It supplies a dependency on 'linux', but this will break if we're using BR2_TARGET_ROOTFS_INITRAMFS - the wrapper will include the first kernel build, not the rebuild (which contains the embedded initramfs). This means we'd need to express a dependency from the target build to the image build. However, if we do something like: -BOOT_WRAPPER_AARCH64_DEPENDENCIES = linux +BOOT_WRAPPER_AARCH64_DEPENDENCIES = linux26-rebuild-with-initramfs - then we get a circular dependency, because boot-wrapper-aarch64 is in the TARGETS list, which linux26-rebuild-with-initramfs depends on. This change splits the possible targets into two separate lists, TARGET_TARGETS (dependencies for building the target dir) and IMAGE_TARGETS (dependencies for building images). We keep TARGETS as a list of everything, and use TARGET_TARGETS for the rootfs-finalize target. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com> [fix for PACKAGES variable rename 8a58e0238ef3] Signed-off-by: Joel Stanley <joel@jms.id.au>
* Update for 2019.02Peter Korsgaard2019-03-041-2/+2
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Update for 2019.02-rc3Peter Korsgaard2019-03-011-2/+2
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Update for 2019.02-rc2Peter Korsgaard2019-02-231-2/+2
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Update for 2019.02-rc1Peter Korsgaard2019-02-131-2/+2
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Makefile: allow rootfs overlays to override symbolic linksCarlos Santos2019-02-061-3/+1
| | | | | | | | | | | | | | | | | | | | | | | Since commit 0db34529f48 we use rsync with the --keep-dirlinks option to prevent overlays from accidentally overwriding /{usr,bin,sbin,lib} links when BR2_ROOTFS_MERGED_USR option is enabled. Unfortunately this also prevents replacing a symlink by a directory on purpose (e.g. /var/log, to persist system logs). Steps to reproduce: - enable BR2_ROOTFS_MERGED_USR and BR2_PACKAGE_SKELETON_INIT_SYSV - mkdir some_path/rootfs-overlay/var/log - enable BR2_ROOTFS_OVERLAY="some_path/rootfs-overlay" - run 'make' - 'target/var/log' is still a symlink to '../tmp', not a directory The --keep-dirlinks option can be dropped, since we run sanity checks on overlays. Now the rsync invocation is identical to the SYSTEM_RSYNC logic we have in system/system.mk, so use that variable. Signed-off-by: Carlos Santos <casantos@datacom.ind.br> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* Makefile: check rootfs overlays with BR2_ROOTFS_MERGED_USR enabledCarlos Santos2019-02-061-0/+16
| | | | | | | | | | | | | Add a step to target-finalize that checks each rootfs overlay, following the criteria established for custom skeletons and using the same script uesd by skeleton-custom.mk. Add a paragraph to the documentation clarifying that rootfs overlays don't need to contain /bin, /lib or /sbin and must not contain them when BR2_ROOTFS_MERGED_USR is enabled. Signed-off-by: Carlos Santos <casantos@datacom.ind.br> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* core/sdk: don't mangle symlinks with '.' or '..' at startJoel Carlson2019-02-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current transform changes any '.' at the start of a filename to $(BR2_SDK_PREFIX). This also applies to the target of a symlink, when it is relative. We thus might end up with something like: $(BR2_SDK_PREFIX)/bin/aarch64-linux-gnu-ar -> $(BR2_SDK_PREFIX)./opt/ext-toolchain/bin/aarch64-linux-gnu-ar when it should be: $(BR2_SDK_PREFIX)/bin/aarch64-linux-gnu-ar -> ../opt/ext-toolchain/bin/aarch64-linux-gnu-ar We fix that by making sure we always remove a known prefix, i.e. we remove the path to host dir. The obvious solution would be to cd into $(HOST_DIR)/.. , then tar ./host/ and finally use a --transfrom pattern as 's,^\./$(notdir $(HOST_DIR)),$(BR2_SDK_PREFIX)'. Since $(HOST_DIR) can point to a user-supplied location, we don't know very well how the pattern may patch. Instead, we cd into / and tar the full path to $(HOST_DIR). Since tar removes any leading '/', it would spurr a warning message, which is annoying. So we explicitly remove the leading '/' from $(HOST_DIR) when we tar it. Finally, we transform all filenames to replace a leading $(HOST_DIR) (without a leading /) to the prefix to use. Signed-off-by: Joel Carlson <JoelsonCarl@gmail.com> [yann.morin.1998@free.fr: - use a single transform pattern - use full HOST_DIR path as pattern to replace - update commit log accordingly ] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* Makefile: unexport 'PLATFORM' and 'OS' environment variablesThomas De Schampheleire2019-02-051-0/+2
| | | | | | | | | | | Some package builds may fail when environment variables are present with the same names as make variables in a package. This is a bigger problem for environment variables with generic names, like 'PLATFORM' and 'OS'. 'PLATFORM' is for example a problem for host-acl. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Makefile: respect strip exclusions for special librariesJohn Keeping2019-02-041-20/+26
| | | | | | | | | | | | | | | | | | ld-*.so and libpthread*.so* are not stripped in the same way as other binaries because some applications need symbols in these libraries in order to operate correctly. However, the special handling for these binaries ignores the usual BR2_STRIP_EXCLUDE_* rules so it is not possible to build an image which has debugging symbols in these binaries. Pull out the common find functionality so that we can build two find commands that re-use the common exclusion rules. Fix-suggested-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: John Keeping <john@metanate.com> Tested-by: Matt Weber <matthew.weber@rockwellcollins.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Makefile: add update-defconfig targetVivien Didelot2019-02-041-2/+5
| | | | | | | | | | For symmetry with the Kconfig-based packages offering comprehensive targets like linux-update-defconfig, barebox-update-defconfig and so on, add a new top level update-defconfig target to run savedefconfig. Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com> Reviewed-by: Titouan Christophe <titouan.christophe@railnova.eu> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Makefile: move definition of TARGET_DIR inside .config conditionThomas Petazzoni2019-01-171-3/+4
| | | | | | | | | | | | | | | | In a follow-up commit introducing per-package directory support, we will need to define TARGET_DIR in a different way depending on the value of a Config.in option. To make this possible, the definition of TARGET_DIR should be moved inside the BR2_HAVE_DOT_CONFIG condition. We have verified that $(TARGET_DIR) is only used within the BR2_HAVE_DOT_CONFIG condition. Outside of this condition, such as in the "clean" target, $(BASE_TARGET_DIR) is used. Suggested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Makefile, manual, website: Bump copyright yearPeter Korsgaard2019-01-061-1/+1
| | | | | | Happy 2019! Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* utils/test-pkg: force checking dependenciesAdam Duskett2019-01-031-1/+8
| | | | | | | | | | | | | | | | | | | | | Currently, if a user runs "make" while specifying a specific package (IE: make -p foo), the Makefile logic skips checking to see if all the dependencies are selected in the specified packages config file. This behavior is useful to test simple packages which do not have "complex" dependencies. However; if a developer uses test-pkg -p ${package_name} to check their package, the package may pass all the checks, but would have otherwise failed with a simple "make" because the developer may have failed to add a select line in packages config file, even if there is a new dependency in the packages Makefile. Pass the environment variable "BR_FORCE_CHECK_DEPENDENCIES" to the Makefile in the test-pkg script, and check it's value in the Makefile. If the value is "YES" force checking for dependency issues. Signed-off-by: Adam Duskett <Aduskett@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Makefile: offload .gitlab-ci.yml generationRicardo Martincoski2018-12-091-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GitLab has severe limitations imposed to triggers. Using a variable in a regexp is not allowed: | only: | - /-$CI_JOB_NAME$/ | - /-\$CI_JOB_NAME$/ | - /-%CI_JOB_NAME%$/ Using the key 'variables' always lead to an AND with 'refs', so: | only: | refs: | - branches | - tags | variables: | - $CI_JOB_NAME == $CI_COMMIT_REF_NAME would make the push of a tag not to trigger all jobs anymore. Inheritance is used only for the second level of keys, so: |.runtime_test: &runtime_test | only: | - tags |tests.package.test_python_txaio.TestPythonPy2Txaio: | <<: *runtime_test | only: | - /-TestPythonPy2Txaio$/ would override the entire key 'only', making the push of a tag not to trigger all jobs anymore. So, in order to have a trigger per job and still allow the push of a tag to trigger all jobs (all this in a follow up patch), the regexp for each job must be hardcoded in the .gitlab-ci.yml and also the inherited values for key 'only' must be repeated for every job. This is not a big issue, .gitlab-ci.yml is already automatically generated from a template and there will be no need to hand-editing it when jobs are added or removed. Since the logic to generate the yaml file from the template will become more complex, move the commands from the main Makefile to a script. Using Python or other advanced scripting language for that script would be the most versatile solution, but that would bring another dependency on the host machine, pyyaml if Python is used. So every developer that needs to run 'make .gitlab-ci.yml' and also the docker image used in the GitLab pipelines would need to have pyyaml pre-installed. Instead of adding the mentioned dependency, keep using a bash script. While moving the commands to the script: - mimic the behavior of the previous make target and fail on any command that fails, by using 'set -e'; - break the original lines in one command per line, making the diff for any patch to be applied to this file to look nicer; - keep the script as simple as possible, without functions, just a script that executes from the top to bottom; - do not perform validations on the input parameters, any command that fails already makes the script to fail; - do not add an usage message, the script is not intended to be called directly. This patch does not change functionality. Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> [Thomas: make the script output on stdout rather than take the output file name as second argument.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Merge branch 'next'Peter Korsgaard2018-12-021-32/+29
|\ | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * Makefile: define TARGET_DIR_WARNING_FILE relative to TARGET_DIRThomas Petazzoni2018-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 7e9870ce32d6329d9e3d602247fbe1709a2275a4 ("core: introduce intermediate BASE_TARGET_DIR variable"), the definition of TARGET_DIR_WARNING_FILE was changed to use $(BASE_TARGET_DIR) instead of $(TARGET_DIR). However, this change is incompatible with per-package directories, and is in fact not needed. With per-package directories, using $(BASE_TARGET_DIR) means that TARGET_DIR_WARNING_FILE is output/target/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM. Due to this, when skeleton-init-common or skeleton-custom attempt to install it, it fails, because it should be installed to their package per-package target directory, and not the global output/target directory that doesn't exist yet. The failure looks like this: /usr/bin/install -m 0644 support/misc/target-dir-warning.txt /home/thomas/projets/buildroot/output/target/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM /usr/bin/install: cannot create regular file '/home/thomas/projets/buildroot/output/target/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM': No such file or directory make[1]: *** [package/pkg-generic.mk:336: /home/thomas/projets/buildroot/output/build/skeleton-init-common/.stamp_target_installed] Error 1 TARGET_DIR_WARNING_FILE is used in three places: - In skeleton-custom.mk and skeleton-init-common.mk, where as explained above, using $(TARGET_DIR) fixes the use of $(TARGET_DIR_WARNING_FILE) in the context of per-package target directories. - In fs/common.mk, where it is used as argument to $(notdir ...) to retrieve just the name of the warning file. So in this case, we really don't care about the path of the file, just its name. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * Makefile: move .NOTPARALLEL statement after including .config fileThomas Petazzoni2018-11-261-16/+16
| | | | | | | | | | | | | | | | | | In a follow-up commit, we will make the .NOTPARALLEL statement conditional on a Config.in option, so we need to move it further down. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * Makefile: rework main directory creation logicThomas Petazzoni2018-11-261-12/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the current code, the creation of the main output directories (BUILD_DIR, STAGING_DIR, HOST_DIR, TARGET_DIR, etc.) is done by a global "dirs" target. While this works fine in the current situation, it doesn't work well in a context where per-package host and target directories are used. For example, with the current code and per-package host directories, the output/staging symbolic link ends up being created as a link to the per-package package sysroot directory of the first package being built, instead of the global sysroot. This commit reworks the creation of those directories by having the package/pkg-generic.mk code ensure that the build directory, target directory, host directory, staging directory and binaries directory exist before they are needed. Two new targets, host-finalize and staging-finalize are added in the main Makefile to create the compatibility symlinks for host and staging directories. They will be extended later with additional logic for per-package directories. Thanks to those changes, the global "dirs" target is entirely removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * Makefile: evaluate CCACHE and HOST{CC, CXX} at time of useThomas Petazzoni2018-11-261-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we are going to move to per-package SDK, the location of CCACHE and therefore the definitions of HOSTCC and HOSTCXX need to be evaluated at the time of use and not at the time of assignment. Indeed, the value of HOST_DIR changes from one package to the other. Therefore, we need to change from := to =. In addition, while doing A := $(something) $(A) is possible, doing A = $(something) $(A) is not legal. So, instead of defining HOSTCC in terms of the current HOSTCC variable, we re-use HOSTCC_NOCCACHE instead. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Kickoff 2019.02 cyclePeter Korsgaard2018-12-011-1/+1
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Update for 2018.11Peter Korsgaard2018-12-011-2/+2
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Update for 2018.11-rc3Peter Korsgaard2018-11-301-2/+2
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Update for 2018.11-rc2Peter Korsgaard2018-11-211-2/+2
|/ | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Update for 2018.11-rc1Peter Korsgaard2018-11-091-2/+2
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* core: support host gcc of the futureYann E. MORIN2018-10-231-2/+8
| | | | | | | | | | | | | | | | | | When we do a release, we know only of a set of gcc versions that the host may have. But in the future, distributions with newer gcc versions may show up. Currently, we do not recognise those versions, and thus we do as if they were older than the oldest we know of. This means that a set of packages become unselectable, when they should be. We fix that by capping the detected version to the highest we know of. Reported-by: gargar_ on IRC Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Peter Korsgaard <peter@korsgaard.com> Cc: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Makefile: .gitlab-ci.yml: fail when listing tests failArnout Vandecappelle (Essensium/Mind)2018-10-211-1/+1
| | | | | | | | | | | | | | | | | | To update the .gitlab-ci.yml file, we run run-tests -l to list all the tests and post-process the output in a format suitable for .gitlab-ci.yml. However, in a pipeline, it is the last command that gives the return value. In addition, we have to redirect stderr of run-tests -l because nose2 prints the tests on stderr, not stdout. Thus, when run-tests -l fails, the update of .gitlab-ci.yml silently succeeds but no tests are included in the .gitlab-ci.yml. To fix this, set the pipefail option. This is bash-specific, but our Makefile ascertains that we are running with bash as the shell (if bash is available, but if it is not, dependencies.sh will error out). The error message is still invisible, but at least make will fail. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* core/legal-info: Add package dependencies with licenses to the manifestMichal Sojka2018-10-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This adds one column to the legal-info manifest table. It contains the dependencies of the given package and their licenses. This information is useful when assessing license compatibility of the packages and their libraries. An example of the content of the new column for the MPD package is shown below: "alsa-lib [LGPL-2.1+ (library), GPL-2.0+ (aserver)] boost [BSL-1.0] libid3tag [GPL-2.0+] libmad [GPL-2.0+] libogg [BSD-3-Clause] libvorbis [BSD-3-Clause] libzlib [Zlib] skeleton-init-common [unknown] skeleton-init-sysv [unknown] sqlite [Public domain] toolchain-external-linaro-arm [unknown]" [Credits to Yann E. MORIN <yann.morin.1998@free.fr> for suggesting a few simplifications.] Signed-off-by: Michal Sojka <sojka@merica.cz> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net> Tested-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* core/legal-info: Change order of legal-manifest parametersMichal Sojka2018-10-211-3/+3
| | | | | | | | | | | | | The last parameter {HOST|TARGET} is now first. With this change, adding new columns to the legal manifest file (as in the next commit) will be slightly easier to review. Signed-off-by: Michal Sojka <sojka@merica.cz> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net> Tested-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* core: detect and reject build paths which contain an '@'Yann E. MORIN2018-10-201-0/+5
| | | | | | | | | | | | | | | | | gcc does not build when the srcdir path contains a '@', because that path is then substitued in a texi file as argument to an @include directive. But then, the '@' in the path will start a command evaluation of its own, thus breaking the build. For example, with a $(O) path set to /home/ymorin/dev/buildroot/O/to@ti : perl ../../gcc/../contrib/texi2pod.pl ../../gcc/doc/invoke.texi > gcc.pod ../../gcc/doc/invoke.texi:1678: unknown command `ti' ../../gcc/doc/invoke.texi:1678: @include: could not find /home/ymorin/dev/buildroot/O/to/build/host-gcc-initial-7.3.0/build/gcc/../../gcc/../libiberty/at-file.texi [Peter: use findstring instead of subst/compare] Reported-by: c32 on IRC Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* legal-info: use the per-package variable to get the hash fileYann E. MORIN2018-10-201-1/+1
| | | | | | | | | | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Luca Ceresoli <luca@lucaceresoli.net> Cc: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* arch: add support for RISC-V 64-bit (riscv64) architectureMark Corbin2018-09-231-0/+1
| | | | | | | | | | | | | | This enables a riscv64 system to be built with a Buildroot generated toolchain (gcc >= 7.x, binutils >= 2.30, glibc only). This configuration has been used to successfully build a qemu-bootable riscv-linux-4.15 kernel (https://github.com/riscv/riscv-linux.git). Signed-off-by: Mark Corbin <mark.corbin@embecosm.com> [Thomas: - simplify arch.mk.riscv by directly setting GCC_TARGET_ARCH - simplify glibc.mk changes by using GLIBC_CONF_ENV.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* arch: allow GCC target options to be optionally overwrittenMark Corbin2018-09-231-2/+2
| | | | | | | | | | | | | The BR2_GCC_TARGET_* configuration variables are copied to corresponding GCC_TARGET_* variables which may then be optionally modified or overwritten by architecture specific makefiles. All makefiles must use the new GCC_TARGET_* variables instead of the BR2_GCC_TARGET_* versions. Signed-off-by: Mark Corbin <mark.corbin@embecosm.com> [Thomas: simplify include of arch/arch.mk] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* support/kconfig: bump to kconfig from Linux 4.17-rc2Petr Vorel2018-09-201-5/+5
| | | | | Signed-off-by: Petr Vorel <petr.vorel@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Makefile: fix issue with printvars executing giant shell commandTrent Piepho2018-09-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The underlying problem is that $(foreach V,1 2 3,) does not evaluate to an empty string. It evaluates to "  ", three empty strings separated by whitespace. A construct of this format, with a giant list in the foreach, is part of the printvars command. This means that "@:$(foreach ....)", which is intended to expand to a null command, in fact expands to "@: " with a great deal of whitespace. Make chooses to execute this command with: execve("/bin/sh", ["/bin/sh", "-c", ": "] But with far more whitespace. So much that it can exceed shell command line length limits. This solution is to move the foreach to another step in the recipe. The "@:" is retained as the first line so the recipe is not Empty, which would cause a change in make behavior when make builds the target. The 2nd line, all whitespace, will be skipped by make. Signed-off-by: Trent Piepho <tpiepho@impinj.com> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Merge branch 'next'Peter Korsgaard2018-09-071-3/+18
|\ | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * core/sdk: generate the SDK tarball ourselvesYann E. MORIN2018-08-141-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the wording in the manual instructs the user to generate a tarball from "the contents of the +output/host+ directory". This is pretty confusing, because taken literally, this would amount to running a command like: tar cf my-sdk.tar -C output/host/ . This creates a tarbomb [0], which is very bad practice, because when extracted, it creates multiple files in the current directory. What one really wants to do, is create a tarball of the host/ directory, with something like: tar cf my-sdk.tar -C output host/ However, this is not much better, because the top-most directory would have a very common name, host/, which is pretty easy to get conflict with when it gets extracted. So, we fix that mess by giving the top-most directory a recognisable name, based on the target tuple, which we also use as the name of the archive (suffixed with the usual +.tar.gz+.) We offer the user the possibility to override that default by specifying the +BR2_SDK_PREFIX+ variable on the command line. Since this is an output file, we place it in the images/ directory. As some users expressed a very strong feeling that they do not want to generate a tarball at all, and that doing so would badly hurt their workflows [1], we actually prepare the SDK as was previously done, but under the new, intermediate rule 'prepare-sdk'. The existing 'sdk' rule obviously depend on that before generating the tarball. We choose to make the existing rule to generate the tarball, and introduce a new rule to just prepare the SDK, rather than keep the existing rule as-is and introduce a new one to generate the tarball, because it makes sense to have the simplest rule do the correct thing, leaving advanced, power users use the longest command. If someone already had a wrapper that called 'sdk' and expected just the host directory to be prepared, then this is not broken; it just takes a bit longer (gzip is pretty fast). Update the manual accordingly. [0] https://en.wikipedia.org/wiki/Tar_(computing)#Tarbomb [1] http://lists.busybox.net/pipermail/buildroot/2018-June/thread.html#223377 and some messages in the ensuing thread... Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Wolfgang Grandegger <wg@grandegger.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Stefan Becker <chemobejk@gmail.com> Cc: Trent Piepho <tpiepho@impinj.com> Signed-off-by: &quot;Yann E. MORIN&quot; &lt;<a href="mailto:yann.morin.1998@free.fr" target="_blank">yann.morin.1998@free.fr</a>&gt;<br> Reviewed-by: Stefan Becker <chemobejk@gmail.com> Signed-off-by: &quot;Yann E. MORIN&quot; &lt;<a href="mailto:yann.morin.1998@free.fr" target="_blank">yann.morin.1998@free.fr</a>&gt;<br> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
| * Makefile: introduce check-package targetThomas Petazzoni2018-08-121-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The snippet of code that runs a check-package on all .mk/.hash/Config.in files is currently only available within .gitlab-ci.yml, and isn't immediately and easily usable by Buildroot users. In order to simplify this, this commit introduces a top-level "check-package" make target that implements the same logic. The .gitlab-ci.yml file is changed to use "make check-package". Since this target is oriented towards Buildroot developers, we intentionally do not clutter the already noisy "make help" text with this additional make target. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* | Kickoff 2018.11 cyclePeter Korsgaard2018-09-061-1/+1
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Update for 2018.08Peter Korsgaard2018-09-061-2/+2
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Update for 2018.08-rc3Peter Korsgaard2018-09-011-2/+2
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Update for 2018.08-rc2Peter Korsgaard2018-08-201-2/+2
|/ | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Update for 2018.08-rc1Thomas Petazzoni2018-08-051-2/+2
| | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Makefile: help: BR2_DEFCONFIG for defconfig must be on command lineArnout Vandecappelle (Essensium/Mind)2018-07-281-2/+2
| | | | | | | | | | | | | | | | | The help text says that BR2_DEFCONFIG will be used as input, but a BR2_DEFCONFIG specified in the existing .config file will *not* be used. So say explicitly that it must be specified on the command line. Note that both "BR2_DEFCONFIG=... make defconfig" and "make defconfig BR2_DEFCONFIG=..." will work. While we're at it, add a semicolon to separate the two statements. Note that this overflows the help text beyond 80 characters, but that is already the case in many other lines. Reported-by: Anisse Astier <anisse@astier.eu> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Kickoff 2018.08 cyclePeter Korsgaard2018-06-021-1/+1
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Update for 2018.05Peter Korsgaard2018-06-011-2/+2
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Update for 2018.05-rc3Peter Korsgaard2018-05-281-2/+2
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
OpenPOWER on IntegriCloud