summaryrefslogtreecommitdiff
path: root/scripts/crosstool-NG.sh.in
AgeCommit message (Collapse)AuthorFilesLines
2014-12-05scripts/crosstool-NG.sh.in: patch regex to work with BSD grepJason T. Masker1-1/+1
BSD grep does not interpret a null alteration. It complains about an empty sub-expression, e.g.: $ grep --version && grep -E '^(# |)CT_' .config grep (BSD grep) 2.5.1-FreeBSD grep: empty (sub)expression This patch replaces the null alteration with a zero or once quantifier which works with both BSD & GNU grep. $ grep --version && grep -E '^(# )?CT_' .config grep (BSD grep) 2.5.1-FreeBSD CT_CONFIGURE_has_xz=y CT_CONFIGURE_has_svn=y ... $ ggrep --version && ggrep -E '^(# )?CT_' .config ggrep (GNU grep) 2.20 Copyright (C) 2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Mike Haertel and others, see <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>. CT_CONFIGURE_has_xz=y CT_CONFIGURE_has_svn=y ... Signed-off-by: Jason T. Masker <jason@masker.net> Tested-by: Andreas Bießmann <andreas@biessmann.de> Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-09-02scripts: properly restore stdout/err/in at the endYann E. MORIN1-2/+2
Byt the end of the main script, the log file is being moved and compressed, and the final destination might become read-only at any time, so we consign stdout/err to oblivion. This is incorrect, as some actions after may still fail (out of space, for example). So, properly restore stdout/err, but also stdin (useless, but harmless) instead, so the user has a chance to see the error, especially since it is not logged into the log file. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-08-28scripts/crosstool-NG: use ${grep} instead of 'grep'Fabian Freyer1-3/+3
Helps building on BSD-like systems. Reported-by: Fabian Freyer <fabian.freyer@physik.tu-berlin.de> Signed-off-by: "Fabian Freyer" <fabian.freyer@physik.tu-berlin.de> [yann.morin.1998@free.fr: split the original patch] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
2014-01-02scripts: do not allow commas in directories, it breaks thingsYann E. MORIN"1-0/+3
The comma is used by the autotools as separator in many sed expressions, which break if a directory contains commas. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-11-15scripts: remove duplicate '/' in prefix, it breaks relocationYann E. MORIN"1-0/+3
Reported-by: Richard Weinberger <richard.weinberger@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-01-28scripts: fix finishing the toolchain when download/extract-only is setYann E. MORIN"1-2/+7
In case we only download or extract the sources, do not fail while finishing the toolchain: the test-suite directory may not exist, so we can't chmod it. Also, use safer constructs that won't trigger the 'set -e' in case of failure (eg.: "[ ... ] && ..." is not safe in case the test fails). Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-01-27script: allow to pass any float value for CT_LOADSamuel Martin1-1/+1
Signed-off-by: Samuel Martin <s.martin49@gmail.com> Message-Id: <b51acf21c72b4a8e882e.1359320015@laptop> Patchwork-Id: 216062
2013-01-10scripts: woops, root's UID is 0, not 1000!Yann E. MORIN"1-1/+1
Left-over from a test... :-( Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-01-10scripts: check for running as rootYann E. MORIN"1-0/+8
Running as root is really, really dangerous. Add a runtime-check that refuses to build if running as root. Can be overriden with a double switch in the menuconfig. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-11-21scripts: refine static linking check to better guide the userDaniel Price1-15/+36
The current mechanism to check if static linking is possible, and the mesage displayed on failure, can be puzzling to the unsuspecting user. Also, the current implementation is not using the existing infrastructure, and is thus difficult to enhance with new tests. So, switch to using the standard CT_DoExecLog infra, and use four tests to check for the host compiler: - check we can run it - check it can build a trivial program - check it can statically link that program - check if it statically link with libstdc++ That should cover most of the problems. Hopefully. (At the same time, fix a typo in a comment) Signed-off-by: Daniel Price <daniel.price@gmail.com> [yann.morin.1998@free.fr: split original patch for self-contained changes] [yann.morin.1998@free.fr: use steps to better see gcc's output] [yann.morin.1998@free.fr: commit log] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Message-Id: <163f86b5216fc08c672a.1353459722@nipigon.dssd.com> Patchwork-Id: 200536
2012-11-21scripts: fail on ':' in pathsDaniel Price1-0/+3
Signed-off-by: Daniel Price <daniel.price@gmail.com> [yann.morin.1998@free.fr: split original patch for self-contained changes] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Message-Id: <163f86b5216fc08c672a.1353459722@nipigon.dssd.com> Patchwork-Id: 200536
2012-11-19binutils: introduce the infrastructure to support binutils alternativesYann Diorcet1-4/+1
Rework binutils in order to provide soon binutils alternative. Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com> [yann.morin.1998@free.fr: split up original patch for self-contained changes] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Message-Id: <d3d1d51f399e6d2c1163.1353320546@macbook-smorlat.local> Patchwork-Id: 199971
2012-11-16scripts: add BUILD/HOST extra cflags/ldflagsYann Diorcet1-2/+12
On some hosts, and for certain toolchains (eg. toolchain targetting the upcoming Darwin), it may be necessary to pass arbitrary CFLAGS and/or LDFLAGS when building the components. And necessary infrastructure: - EXTRA_{CFLAGS,LDFLAGS}_FOR_{BUILD,HOST} as config options - pass those extra flags to components Fix-up a slight typo in elf2flt at the same time (misnamed cflags). Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com> Message-Id: <d24043276c9243a35421.1353077450@macbook-smorlat.local> Patchwork-Id: 199645
2012-11-19binutils/sstrip: removeYann Diorcet1-3/+0
sstrip has been obsoleted for a while now, as it's still broken for some archs, and there seems to be no incentive to fix it upstream. Besides, the space gained with sstrip is marginal at best. Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com> Message-Id: <65c8bf534d0647ce52cd.1353320545@macbook-smorlat.local> Patchwork-Id: 199970
2012-11-16complibs: introduce generic multi-complibs infrastructureYann Diorcet (diorcet yann1-18/+3
Use the same method as companion tools for providing generic and extendable companion libs. Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com> Message-Id: <515c5c4635d99ebe4877.1353074410@macbook-smorlat.local> Patchwork-Id: 199613
2012-11-13scripts: set default CFLAGS to optimise.Michael Hope1-1/+3
The extra CFLAGS override the product defaults, causing the product to be built without optimisation or debug. Be explicit and add these in. Reported-by: Johannes Stezenbach <js@sig21.net> Signed-off-by: Michael Hope <michael.hope@linaro.org> Message-Id: <CANLjY-=3Gbio6nzUPhhevDHV7cUN=6Vigooe9nSf-RnGCqnjog@mail.gmail.com> Patchwork-Id: 198808
2012-10-06scripts: add option to start an interactive debug shellYann E. MORIN"1-0/+8
Add an option that, when a command fails: - starts an interactive shell with the failed command's environment - attempts re-execution of the failed command, continues, or aborts at user's whim. Before starting the debug-shell, the backtrace is printed. When exiting for an abort, the standard error message is printed. Based on an idea and a patch from: Johannes Stezenbach <js@sig21.net> http://sourceware.org/ml/crossgcc/2012-09/msg00144.html Signed-off-by: Johannes Stezenbach <js@sig21.net> [yann.morin.1998@free.fr: integrate in the fault handler] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: Johannes Stezenbach <js@sig21.net> Patchwork-Id: 191571 Patchwork-Id: 191668
2012-10-14scripts: move backtrace marker to CT_WORK_DIRJohannes Stezenbach1-0/+1
Avoid error when commands in scripts/crosstool-NG.sh fail before CT_BUILD_DIR is set. So we need to remove the backtrace marker of a potential previous build. Previously, it was implicitly removed because we did remove the directory it was in, which is no longer the case. Signed-off-by: Johannes Stezenbach <js@sig21.net> [yann.morin.1998@free.fr: remove backtrace marker on start of build] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Message-Id: <20121015094615.GA18673@sig21.net> Patchwork-Id: 191498
2012-10-17scripts: fix default work-dir nameYann E. MORIN"1-1/+1
It's been a long time the default work-dir changed its name from 'target' to '.build'. Change the left-over. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-09-25scripts: exporting (even empty) LIBRARY_PATH and/or LPATH breaks gccYann E. MORIN"1-4/+2
If either LIBRARY_PATH or LPATH is set, even to the empty string, the gcc build breaks. Fix that by bailing-out rather than re-setting. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-05-12scripts: unset LIBRARY_PATH and LPATHErik Inge Bolsø1-0/+4
These environment variables set search path for gcc at link time, which can break the build. Signed-off-by: Erik Inge Bolsø <knan-ct@anduin.net> Message-Id: <alpine.BSF.2.00.1205130131550.21551@anduin.net> PatchWork-Id: 186872
2012-05-08scripts: fix catching build failures, the proper way, nowYann E. MORIN"1-1/+1
Serves me for pushing too fast... :-( Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-05-08scripts: fix catching failuresYann E. MORIN"1-0/+4
POSIX 1003.1-2008 does not say whether "set -e" should catch a sub-shell that exits with !0 (it has a list of conditions to catch, but no list of conditions not to catch, and this situation is not listed). bash-3 does not catch such a failure, but bash-4 does. That why, on my Squeeze system I did not see the issue, while Thomas did on is Lenny chroot. Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-01-03cc/gcc: build core compilers for canadianYann E. MORIN"1-1/+1
Currently, we rely on an existing external cross-compiler targetting the target, to build the C library. This can pause quite a few problems if that compiler is different from the one we are building, because it could introduce some ABI issues. This patch removes this dependency, by building the core compilers as we do for standard cross, and also by building the binutils and gcc, for running on the build machine. This means we no longer need to offer the cross-sompiler selection in the menuconfig. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-25complibs: fixup the host complibs install dirYann E. MORIN"1-2/+13
It's easier to have as much as possible stuff in the same place to ease backup/restore, and make things easier to follow. Move the host companion libraries install dir as a sub-dir of the build-tools install dir (but not directly in it, it would break for canadian or cross-native). Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-01cc/gcc: install the core compilers in the build-tools dirYann E. MORIN"1-12/+2
There really is no good reason to install the core compilers in their own places, one for each pass. We can install them with the other build tools. Also, this implies that: - there are fewer directories to save/restore - there are fewer symlinks to create for binutils - the PATH is shorter Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-16scripts: fix tools overrideYann E. MORIN"1-2/+4
The tools found by the new autostuff configure can contain arguments, for example: grep -E This needs separating the paths set for the Makfile from the paths set for the scripts. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-12-12scripts: unset CONFIG_SITEYann E. MORIN"1-0/+2
Some distributions (eg. openSUSE 12.1) systematically export the CONFIG_SITE environment variable to point to a custom script setting misc paths for ./configure. This can, and does, break when cross-compiling for architectures that are not supported by this script. The simple workaround is to unset this variable. NB: buildroot has a similar fix: http://git.buildroot.org/buildroot/commit/?id=12c9f7dd6dee9c6029b4f9a12d6aac1516911ab4 Reported-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-12-07scripts: create CT_HEADERS_DIRZhenqiang Chen1-1/+1
"${CT_SYSROOT_DIR}/usr/include" is only for "${CT_USE_SYSROOT}" = "y". We should also mkdir when "${CT_USE_SYSROOT}" != "y". "${CT_HEADERS_DIR}" can support both cases. Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2011-11-30scripts: use CT_CONFIG_SHELL instead of CT_SHELLTitus von Boxberg"1-3/+3
CT_SHELL is undefined. Thus, the generated wrapper scripts are not executable by the kernel because they do not contain a valid interpreter. Use CT_CONFIG_SHELL instead. Signed-off-by: "Titus von Boxberg" <titus@v9g.de>
2011-10-21scripts: fix missing space when using CT_EXTRA_FLAGS_FOR_HOSTMichael Hope1-1/+1
CT_EXTRA_FLAGS_FOR_HOST needs a preceding space to separate it from any other options that have already been set. Signed-off-by: Michael Hope <michael.hope@linaro.org>
2011-10-14scripts: check host features with host compilerYann E. MORIN"1-0/+13
Currently, we check host feature in ./configure. This works only for cross toolchains, but not for canadian toolchains. ./configure has absolutely no way to know what the host for the toolchain will be; only the build scripts know. So, move the headers & libraries checks from ./configure to the build scripts, early enough in the build, but not before we know the host compiler and other tools. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-16config: use '0' for automatic number of jobsYann E. MORIN"1-4/+3
Also, make it the default. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-09scripts: execute each steps in a subshellYann E. MORIN"1-1/+1
To avoid variable leakage from one step to another, isolate the steps from each others by running them in their own sub-shell. This avoids variables leaking from one step to the others. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-11config: simplify setting CONFIG_SHELL, add a bit to the help entryYann E. MORIN"1-13/+3
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-05scripts: support extra host compiler flagsYann E. MORIN"1-1/+2
Allow the user to configure extra flags to pass to the host compiler at build time. Applies to both C and C++. Useful on Ubuntu to turn off the stack protector and fortify defaults so the program stands a better chance of running on other distros. Signed-off-by: Michael Hope <michael.hope@linaro.org> [yann.morin.1998@anciens.enib.fr: put the custom flags at the end] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-09-28config: add a 'auto' value for the number of parallel jobsMichael Hope1-1/+5
When CT_PARALLEL_JOBS is -1, set the number of parallel jobs to the number of online CPUs + 1. Update documentation to match. I find this useful when building in the cloud. You can use the same .config file and have the build adapt to the number of processors available. Limited testing shows that NCPUS+1 is faster than NCPUS+0 or NCPUS+2. Signed-off-by: Michael Hope <michael.hope@linaro.org>
2011-09-06scripts: fix sysroot prefix dirYann E. MORIN"1-2/+4
The sysroot prefix dir was broken in #4960f5d9f829 due to a mishap when making the out-of-sysroot lib/ symlink: the './' was mistakenly changed into a single '.' . Although Jonathan suggested restoring the missing '/' to restore it to normal operation, I prefered using an explicit pushd/popd to be extra sure of the symlink location and target, along with a fix in the sysroot relative directory calculation. Reported-by: Jonathan Grundon <JGrundon@xos.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-02scripts: try the mirror even if downloads are forbiddenYann E. MORIN"1-21/+17
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17misc: fix more typos here and there...Yann E. MORIN"1-3/+3
Reported-by: "Antony N. Pavlov" <antony@niisi.msk.ru> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-12scripts, cc/gcc: do not fail on existing symlinks or build.logYann E. MORIN"1-1/+1
If the user builds a toolchain over an existing one, so, without removing CT_PREFIX_DIR, the build fails as the symlinks already exist, as does the build.log. This can also happen (for build.log) if the user first ran in download- or extract-only. Patch (with no SoB) originally from: Phil Wilshire <phil.wilshire@overturenetworks.com> Modified by me as it did not apply cleanly. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-09scripts: on startup, also remove the buildtools dirYann E. MORIN"1-3/+2
In case there's one lingering around (whether the previous build was successful, or failed), we have to remove the buildtools directory as well as the toochain build dir. This should also fix the case where out makeinfo wrapper calls itself recursively. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-03kconfig: prepend CT-NG's version tag to PKGVERSIONBenoît THÉBAUDEAU"1-0/+3
"crosstool-NG-${CT_VERSION}" is currently the default for TOOLCHAIN_PKGVERSION, and this options is passed as is to --with-pkgversion. This patch prepends "crosstool-NG ${CT_VERSION}" to TOOLCHAIN_PKGVERSION before passing it to --with-pkgversion. Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-19scripts: munge .config to handle array variablesYann E. MORIN"1-2/+6
Transfrom array variables from pure strings (in the kconfig output) into proper bash arrays declarations, for feeding to the build scripts. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-18config: rename variables that are arraysYann E. MORIN"1-2/+2
Make it explicit that a variable is an array bu the name of the variable. It will be used later when .config gets munged to allow both multiple arguments and arguments with spaces at the same time to be passed from the configuration down to the build scripts. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-06complibs: disable building shared libsYann E. MORIN"1-8/+1
Managing the shared version of the companion libraries has become cumbersome. Also, it will one day be possible to use the companion libraries from the host distribution, and then we will be able to easily use either shared or static libs. As a side note, while working on the canadian-rework series, it has become quite more complex to properly handle shared companion libraries, as they need to be built both for the build and gost systems. That's not easy to handle. At all. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-19scripts: leave changelog in build dir, copy to install dirYann E. MORIN"1-20/+7
Users tend to look for the build log in the current working directory, rather than in the toolchain's installation dir. While bundling the build log in the toolchain installation dir is nice for distribution and review, it can be easier to have the build log readily available in the working directory, as it is quicker to get to it. So, the build log stays in the working directory until the toolchain is completely and successfully built, and then a (compressed) copy is made. Reported-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-19buildtools: the buildtools dir is in fact a prefixYann E. MORIN"1-8/+8
Consider the buildtools install directory as a prefix directory, that is, install buildtools in prefix/bin/, not in prefix/. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-23buildtools: move to working directoryYann E. MORIN"1-8/+8
There is absolutely *no* reason for the buildtools (wrappers to gcc, g++, as, ld... for the local machine) to be in the toolchain directory. Moreover, they are removed after the build completes. Move them out of the toolchain directory, and into the build directory (but yet the part specific to the current toolchain). This means we no longer need to explicitly remove them either, BTW, but we need to save/restore them for the restart feature. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-20buildtools: store path to buildtools in a variableYann E. MORIN"1-7/+8
Currently, the buildtools are installed relative to ${CT_PREFIX_DIR}. Change that by introducing ${CT_BUILDTOOLS_DIR}, which is still set relative to ${CT_PREFIX_DIR}, but which will make it easy to change in the future. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>