Commit Graph

48 Commits

Author SHA1 Message Date
Yann E. MORIN
bae18e117b toolchain/crosstool-NG: do not depend on the top-level Buildroot's .config
Previously, the crosstool-NG backend did depend on the top-level
Buildroot's .config to detect changes in the toolchain options,
using a tentatively-clever heuristic, which also included the full
Buildroot's version string to push down to set the components' versions
strings.

In doing so, any commit in the Buildroot tree would imply a complete
rebuild of the toolchain, even in the case the toolchain options did
not change, thus being a large annoyance (to say the least).

As Buildroot never guaranteed that toolchain options would be detected,
even less handled, and that the internal backend does neither detect nor
act on toolchain options changes, and delegate that to the user, there
is no point in individualising the crosstool-NG backend's behaviour.

This reasoning also applies to the depdency on the crosstool-NG's bundled
.config file, too.

So, just drop the not-so-clever heuristic, and just build the toolchain
once, leaving to the user the responsibility to explictly ask Buildroot
to rebuild the toolchain.

Reported-by: "Przemyslaw Wrzos" <przemyslaw.wrzos@calyptech.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: "Przemyslaw Wrzos" <przemyslaw.wrzos@calyptech.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-03-18 23:16:54 +01:00
Yann E. MORIN
9adea3f859 toolchain/crosstool-ng: sprinkle with some calls to MESSAGE
Thus, the failing step can be easily extracted by autobuilders,
to ease with post-mortem analysis.

At the same time, remove two debug echoes (Arnout).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-01-20 22:10:44 +01:00
Yann E. MORIN
0bc0da0bb4 toolchain/crostool-ng: use newly-introduced BUILDROOT_CONFIG
No need to recreate a path we already have.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-01-13 23:15:07 +01:00
Floris Bos
de1eb105a4 Fix installation of crosstool-ng libraries to target
When using the crosstool-ng toolchain option, the libc libraries were not
installed to target.  Buildroot calls the show-tuple function to determine
the directory to copy from, and it seems that outputs the result to stderr
instead of stdout

Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-01-06 12:13:20 +01:00
Richard Braun
b644575579 toolchain-crosstool-ng: install libthread_db if appropriate
Signed-off-by: Richard Braun <rbraun@sceen.net>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-11-30 13:56:31 -08:00
Thomas Petazzoni
97a3f9e94c toolchain-crosstool-ng: use the Crosstool-ng config options instead of the common hidden ones
Since we are some day going to finally rename the badly named common
toolchain options (BR2_USE_WCHAR, BR2_ENABLE_LOCALE, BR2_INET_RPC,
etc.) into something more logical, let's start using the Crosstool-NG
toolchain options in the Crosstool-NG code.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-11-04 01:12:57 +01:00
Thomas Petazzoni
965cab82af toolchain/crosstool-ng: vendor part of tuple should be 'buildroot'
Since 11017f081f, the Crosstool-ng
backend generates toolchains that have a prefix inconsistent with what
Buildroot expects. Buildroot expects a "buildroot" vendor name, while
Crosstool-NG builds toolchain with the "unknown" vendor name.

This is causing build failure such as:

  http://autobuild.buildroot.org/results/15b2c0e50a81b86dd13af684c9254df2bc0df8de/build-end.log

Fix this by changing the vendor part of the tuple used by Crosstool-NG
to "buildroot".

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-10-18 09:10:32 +02:00
Nathan Lynch
f6b26ea425 toolchain/crosstool-ng: change use of BR2_JLEVEL to PARALLEL_JOBS
Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-06-24 11:10:47 +02:00
Richard Braun
b7b640d812 Remove REAL_GNU_TARGET_NAME
Instead of providing two variables, make GNU_TARGET_NAME give the real
target name, and remove REAL_GNU_TARGET_NAME altogether.

Signed-off-by: Richard Braun <rbraun@sceen.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-06-23 15:14:51 +02:00
Peter Korsgaard
a79f0494a1 crosstool-ng: use uClibc 0.9.33.1 / NPTL by default
So we're in sync with the internal toolchain.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-05-09 11:17:07 +02:00
Peter Korsgaard
03578ce8b6 crosstool-ng: fixup after copy_toolchain_lib_root api changes
Commit 0729b544b3 (Improve external toolchain logic to support IA32
Sourcery CodeBench toolchain) and e1f0804cc (external-toolchain: add
support for recent Linaro toolchains) changed the interface of
copy_toolchain_lib_root, but ctng wasn't updated so libraries weren't
copied to the target.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-05-09 11:16:43 +02:00
Peter Korsgaard
95375f81f7 ctng: use internal toolchain uClibc config, build uClibc 0.9.32
So the uClibc configurations are kept in sync between the two toolchain
methods.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-22 22:46:35 +01:00
Yann E. MORIN
c77f8f173c toochain/crosstool-NG: bump version
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-08-07 23:17:03 +02:00
Peter Korsgaard
4ee9d569f9 uClibc: drop BR2_PROGRAM_INVOCATION option
Remove the BR option and enable the configuration setting in the
uClibc defconfigs.

The BR2_PROGRAM_INVOCATION option only adds very little overhead to
uClibc, and we have a number of packages needing it, so simply always
enable it - Simplifying the kconfig logic and the number of choices
users have to make.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-07-27 11:56:53 +02:00
Yann E. MORIN
bef98b7c10 toolchain/crosstool-NG: use the package infrastructure
Move crosstool-NG to package/ and make it an autotarget package.
This requires a new patch (now upstream).

Now, the crosstool-NG toolchain backend only contains enough to build
the toolchain, there's no more reference to building crosstool-NG as
a package.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-07-15 22:58:38 +02:00
Yann E. MORIN
ea23f34e25 toolchain/crosstool-ng: allow pre-downloading the sources
On "make source", just download the required sources, and do not
build the entire toolchain. This requires a new patch against
crosstool-NG (got from upstream).

The "uclibc-source" rule requires an installed and configured
crosstool-NG, so it has to be after the variables declaration.
For consistency, move down the main rule "uclibc".

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-07-13 08:31:05 +02:00
Yann E. MORIN
40a203f254 toolchain/crosstool-NG: fix up ct-ng config file to saner defaults
Peter on IRC reported some build failures for different targets.
They were of two kinds:
 - missing/unknown stack unwinding support
 - missing *_chk functions

The first is about configure not being able to automagically determine
if stack unwinding support is available for the target. The second is
about fortified build forgetting to build the fortified functions.
This applies to both glibc and eglibc.

After some discussions on IRC with Jacmet, it appears that we can
safely assume both of the following:
 - virtually all targets of buildroot will have stack unwinding support
 - we do not care about fortified builds (so far)

So, update the bundled crosstool-NG .config file to saner defaults:
 - force unwind support
 - disable fortified builds

[Peter: fix 'force non-fortified build' sed invocation]
Reported-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-22 10:19:13 +02:00
Yann E. MORIN
4943afcc91 toolchain/crosstool-NG: update to 1.11.3
1.11.3 is the latest stable version, and it has a few improvements
we'll find usefull. For example, it hasa a boolean option for
disabling the {,e}glibc fortified build (instead of requiring us
to shoehorn it in extra cflags.

Update the config files.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-22 10:04:29 +02:00
Yann E. MORIN
f5268b171a toolchain/crosstool-NG: bundle one CT-NG config file for each libc familly
Currently, the bundled CT-NG config file has no C library configured.
It is quite complex to add and/or munge options in this case.

Now, with one config file per libc familly, it becomes easier.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-22 10:04:27 +02:00
Yann E. MORIN
4b4e5827a2 toolchain/crosstool-NG: correctly copy the dynamic linker
Depending on some setting (which? Arch? Others?), the dynamic linker
can get different names. Some times, it is named ld-linux.something.so,
other times, it is ld.so.1, and maybe other variants as well...

The fix is to always copy ls*.so, even if it is a symlink: we create
the destination file by its SONAME, and if ld*.so matches more than
one file, that's no issue, as they would all get the same SONAME (being
symlinks ones to the others).

Split long lines at the same time.

Reported-by: Ettore Campion <ecampion@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-24 22:37:37 +02:00
Yann E. MORIN
f98c8d65bd toolchain/crosstool-NG: bump version to 1.10.1
At the same time, also use the new upstream location.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-20 15:13:13 +02:00
Yann E. MORIN
d9124d0da9 toolchain/crosstool-NG: fix sysroot name
We have to ensure that the sysroot created while building the
toolchain will be the one we later search for libraries. So:
 - hide the sysroot name prompt from the ct-ng menu.
 - force the sysroot name to be 'sysroot'.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-20 15:13:09 +02:00
Peter Korsgaard
b4f976f28b crosstool-ng: fix target libc install after s/sys-root/sysroot/ rename
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-19 22:46:04 +02:00
Peter Korsgaard
6c016c07e4 crosstool-ng: fix ctng-menuconfig with ccache enabled
If ccache is enabled, we need to ensure it is built for the host before
anything else.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-25 13:08:39 +01:00
Yann E. MORIN
5ad3621259 toolchain/ct-ng: use program_invocation_name option from BR config
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-17 14:05:47 +01:00
Yann E. MORIN
835357388f toolchain/ct-ng: use soft-float option from BR config
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-10 11:23:59 +01:00
Yann E. MORIN
a8e4599212 toolchain/ct-ng: use processor variant from BR config
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-10 11:23:59 +01:00
Yann E. MORIN
072df930ab toolchain/ct-ng: use MMU option from the BR config
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-10 11:23:59 +01:00
Yann E. MORIN
bf6660377b toolchain/ct-ng: update to crosstool-NG 1.10.0
Update the default .config file.
Remove now unnecessary patches.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-10 11:23:59 +01:00
Peter Korsgaard
58d107ec3f crosstool-ng: install toolchain into HOST_DIR like the internal toolchain
Simplifies code and helps us when we add SDK support in the future.
With this we no longer need to copy headers/libraries to STAGING_DIR either.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-25 16:08:50 +01:00
Peter Korsgaard
8442ae7946 crosstool-ng: Use same naming convention as internal toolchains
Use unknown for the vendor part of the tuple, and add $arch-linux- symlinks,
similar to how it's done for the internal toolchain, rather than using
buildroot_ctng and unknown symlinks.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-25 16:03:14 +01:00
Thomas Petazzoni
5eae3c577c toolchain: expose thread options in the Crosstool-NG backend
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-13 22:26:52 +01:00
Thomas Petazzoni
6b578c8d73 toolchain: rework C++ options
Instead of having BR2_GCC_CROSS_CXX and BR2_INSTALL_LIBSTDCPP, with
BR2_GCC_CROSS_CXX not being visible (and therefore being useless),
let's just keep BR2_INSTALL_LIBSTDCPP to enable C++ in the toolchain
and install C++ libraries on the target.

We also take that opportunity to make BR2_INSTALL_LIBSTDCPP an hidden
option, which is selected by an option in Buildroot toolchain support
or an option in External toolchain support, just as we did for other
toolchain features.

Some work definitely remains to be done :

 - The name BR2_INSTALL_LIBSTDCPP is ugly, but we keep it for the
   moment in order to avoid changing all packages.

 - We should clarify the other language-related options (Fortran,
   Java, Objective-C, etc.).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-13 22:04:35 +01:00
Thomas Petazzoni
01b434b27a toolchain: remove toolchain-specific stripping
We already handle the stripping of libraries in $(TARGET_DIR) at the
global level, so there's no need to have toolchain-specific option and
code for this.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-13 22:02:32 +01:00
Yann E. MORIN
512bb3c6d4 toolchain/crosstool-NG: use HOST_PATH when building the toolchain
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-29 10:24:42 +01:00
Yann E. MORIN
33da52a52b toolchain/crosstool-NG: use RPC option
Push the RPC option down to uClibc config

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:29:03 +01:00
Yann E. MORIN
f0e189dcaf toolchain/crosstool-NG: use IPv6 option
Push the IPv6 option down to uClibc config

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:29:03 +01:00
Yann E. MORIN
32dd477465 toolchain/crosstool-NG: use LFS option
Push the LFS option down to uClibc config

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:29:03 +01:00
Yann E. MORIN
421b5597f5 toolchain/crosstool-NG: use locales option
Push the locales option down to crosstool-NG config

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:29:03 +01:00
Yann E. MORIN
fba6c2d76b toolchain/crosstool-NG: use wide-char option
Push the wide-char options down to crosstool-NG config

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:29:03 +01:00
Yann E. MORIN
72568d543b toolchain/crosstool-NG: add C library config munging
For some C libraries, it can be necessary to push the BR settings
down to the libc configuration file. Prepare the infrastructure.

(Note: it will apply only to uClibc for now, and although eglibc
can also be configured, it is not currently supported)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:29:02 +01:00
Yann E. MORIN
8749f92188 toolchain/crosstool-NG: move munging functions
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:29:02 +01:00
Yann E. MORIN
6aec5c2c19 toolchain/crosstool-NG: use a copy of the uClibc .config
Before we can munge the uClibc .config file, we have to use a copy.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:29:02 +01:00
Yann E. MORIN
499f4cf22d toolchain/crosstool-NG: reorder sed expressions
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:29:02 +01:00
Yann E. MORIN
ee355233bb toolchain/crosstool-NG: add dependencies on host- tools
Depends on:
- GNU awk       --> host-gawk
- GNU automake  --> host-automake

Remove dependency on 'cvs'. cvs is used to retrieve newlib,
which is not supported under Buildroot.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-27 22:29:02 +01:00
Yann E. MORIN
75efd6b4fa toolchain/crosstool-ng: use global BR2 version string
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-03 23:31:32 +01:00
Peter Korsgaard
2b721e9c11 toolchain-crosstool-ng: fix arch for powerpc
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-10-13 22:10:52 +02:00
Yann E. MORIN
10c1eec2c3 toolchain: add new toolchain backend: crosstool-NG
[Peter: indent Config.in, shuffle make targets around]
Signed-off-by: Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-10-01 16:40:40 +02:00