Commit Graph

55 Commits

Author SHA1 Message Date
Dave Flogeras
0aa0701fcd Fix typo in toolchain.in
Signed-off-by: Dave Flogeras <dflogeras2@gmail.com>
2017-02-12 17:47:33 -04:00
Alexey Neyman
01bae48719 Do not use sysroot in bare metal.
None of the bare metal C library choices (avr-libc, newlib) support
installing into sysroot. Nor does it make any sense, since sysroot
implies a file system, which in turn implies an OS.
2017-01-12 23:00:20 -08:00
Alexey Neyman
9f62ca8deb Select libintl from gettext we built.
Also, require gettext for NLS, and require iconv/ncurses for gettext.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-10 10:38:08 -08:00
Bryan Hundven
b3869e933b config: Add static link check to static options
If we can't static link with gcc, then don't allow static linking.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-02-26 04:14:39 -08:00
Erico Nunes
b8e64a0c08 avr-libc: add support for avr-libc C library
This commit adds support for the avr-libc C library.
According to the project page at http://www.nongnu.org/avr-libc , the
avr-libc package provides a subset of the standard C library for Atmel
AVR 8-bit RISC microcontrollers. In addition, the library provides the
basic startup code needed by most applications.

Support for this library in crosstool-ng is only enabled for the AVR
8-bit target.

The avr-libc manual and most distributions build the AVR 8-bit gcc
toolchain with the "avr" (non-canonical) target.
Some experimentation also led to the conclusion that other (canonical)
targets are not very well supported, so we force the "avr" target for
crosstool-ng as well.

The manual also recommends building avr-libc after the final gcc build.
To accomplish this with crosstool-ng, a new do_libc_post_cc step is
added, in which currently only avr-libc performs its build, and is a
no-op for the other libc options.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
2015-06-21 20:53:06 -03:00
Bryan Hundven
cd47c091ba eglibc: Remove eglibc support
As posted on http://www.eglibc.org/
====================
EGLIBC is no longer developed and such goals are now being addressed
directly in GLIBC.
====================

I'm not interested in maintaining build support for unsupported
software.

Older branches of crosstool-ng continue to have eglibc support.
If you find issues with older branches, I'm always open to pull
requests.

Removing eglibc also frees up glibc cleanup and build optimization.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-01-27 22:43:25 -08:00
Yann E. MORIN"
db5b6a4915 all: unmark experimental features
It's been some time now we've had those features, so unmark them
being experimental.

It does not mean everything is perfect, but may gather some more
testing of those features.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-12-26 20:05:19 +01:00
Andrzej Bieniek"
946e5d8535 config/toolchain: fixed typo in help string
Signed-off-by: "Andrzej Bieniek" <andyhelp@gmail.com>
2012-08-26 10:35:20 +01:00
Yann E. MORIN"
d776140189 cc/gcc: build core compilers for canadian
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>
2012-01-03 22:57:25 +01:00
Yann E. MORIN"
6fc2908b8b config: fix NLS typo
Reported-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-28 18:35:17 +01:00
Zhenqiang Chen
9ceaada5a0 config/toolchain: Add "Enable nls" in "Toolchain options".
Reviewed-by: Michael Hope
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2011-11-18 15:29:18 +08:00
Yann E. MORIN"
e2b9a81da3 scripts: check host features with host compiler
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-14 22:44:24 +02:00
Yann E. MORIN"
c009897aee misc: fix more typos here and there...
Reported-by: "Antony N. Pavlov" <antony@niisi.msk.ru>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 16:53:40 +02:00
Yann E. MORIN"
74a50972fb configure: disable static linking on Darwin
Static liunking is not supported on Darwin, so hide the corresponding
options when the build machine is Darwin.

Reported-by: Andrea Franceschini <therealmorpheu5@gmail.com>
Reported-by: Bryan Hundven <bryanhundven@gmail.com>
Reported-by: "Titus von Boxberg" <titus@v9g.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-27 21:03:40 +02:00
Benoît THÉBAUDEAU"
d147fbb201 kconfig: prepend CT-NG's version tag to PKGVERSION
"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-06-03 17:21:56 +02:00
Yann E. MORIN"
08ebd6ec3d cc/gcc: CC_STATIC_LIBSTDCXX 'depends on' CONFIGURE_has_static_libstdcpp
Hide the staticaly linked libstdc++ option if the static libstdc++ is not
present, detected at configure time.

Add a blind option that says whether static linking is possible at all.
It defaults to 'y', but depends on the needed CONFIGURE_* options. For
now, it only depends on static libtdc++, but new dependencies can be
easily added.

Hide the global static toolchain option behind this new option.

Original patch by Bryan Hundven <bryanhundven@gmail.com>

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-02 19:50:12 +02:00
Benoît THÉBAUDEAU"
500ee00f22 gdb: use the PKGVERSION and BUGURL options
This patch makes gdb benefit from the TOOLCHAIN_PKGVERSION and
TOOLCHAIN_BUGURL options.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 21:03:03 +02:00
Benoît THÉBAUDEAU"
d558bb995d eglibc: use the PKGVERSION and BUGURL options
This patch makes eglibc benefit from the TOOLCHAIN_PKGVERSION and
TOOLCHAIN_BUGURL options.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 20:55:30 +02:00
Benoît THÉBAUDEAU"
493672e977 binutils: use the PKGVERSION and BUGURL options
This patch makes binutils benefit from the TOOLCHAIN_PKGVERSION and
TOOLCHAIN_BUGURL options.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 20:39:42 +02:00
Benoît THÉBAUDEAU"
35fe8a047d gcc: promote PKGVERSION and BUGURL options to toolchain level
This patch promotes the PKGVERSION and BUGURL options to toolchain level so that
all toolchain components supporting them can benefit from them.

These options are passed to configure through --with-pkgversion and
--with-bugurl.

They are supported by binutils 2.18+, gcc 4.3+, eglibc 2.9+ and gdb 7.0+.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 20:12:35 +02:00
Benoît THÉBAUDEAU"
96245813d8 kconfig: remove useless 'default n'
kconfig bools are disabled by default, so specifying 'default n' is useless and
noisy. This patch removes all occurrences of 'default n'.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 16:27:39 +02:00
Yann E. MORIN"
8c360cbfc4 config/toolchain: hide sysroot name when in backend mode
In backend mode, setting the sysroot name is the
responsibility of the upper-layer build system.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-20 19:21:39 +02:00
Yann E. MORIN"
cec4bbf5c0 config/toolchain: force use of sysroot if OBSOLETE is not set
Use of the sysroot is highly recommended, and the non-sysroot case is
both obsolete and not widely tested.

Before the non-sysroot case can go away, deprecate it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-25 22:14:52 +01:00
Yann E. MORIN"
94be1f470c config: add an option to name the sysroot directory
Depending on local policies, some users have expressed a need to
have the sysroot be named differently than the hard-coded name.

Add an option for that.
Default to 'sysroot' to match the existing literature.

While at it, replace 'sys-root' with 'sysroot' everywhere we
reference the sysroot.

Reported-by: Alexey Kuznetsov <Alexey.KUZNETSOV@youtransactor.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-25 20:31:16 +01:00
Yann E. MORIN"
6ef2caf1d3 docs: overview.txt is gone, point to the new documentation
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-22 00:34:56 +01:00
Bryan Hundven"
bf3c89ebb5 binutils/binutils: build statically
If the global static option is set, then build binutils statically.

Signed-off-by: "Bryan Hundven" <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-09 18:55:33 +01:00
Bryan Hundven"
c10e06ed81 debug/gdb: global static forces static cross-gdb
If the global static option is set, then build host binutils statically.

Signed-off-by: "Bryan Hundven" <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-09 18:55:15 +01:00
Bryan Hundven"
264207aa10 config: add option to build statically linked toolchain
Add a config option to statically build the host tools.
Impacted tools can use that option to decide wether to build
statically or shared.

For now, no tool uses it, but they'll be added one at a time
in the next commits.

Signed-off-by: "Bryan Hundven" <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-09 18:54:37 +01:00
Yann E. MORIN"
bf785b301b config: hide paths when used as a backend
When crosstool-NG is used as a backend, it is the responsibility of the
upper-layer build-system to properly set paths, so we just hide the
prompts in this case.
2010-03-29 12:04:27 +02:00
Yann E. MORIN"
a272b32bba config: don't force the vendor part in the tuple
Note however that some configurations (eg. arm-elf) will still
have the vendor part 'unknown' forced in (by config.sub).
2010-01-07 23:05:30 +01:00
Yann E. MORIN"
b7d11da128 tools wrapper: move choice selection to a more appropriate place
Move the tools wrapper choice selection down to the companion libraries
sub-menu, to avoid the user going back and forth in the menu.
2009-09-06 11:47:40 +02:00
Joachim Nilsson
2231853b85 tools wrapper: fix config dependency
The tools wrapper is not needed only for canadian crosses, but also
for every other type of toolchain.
2009-09-06 11:13:28 +02:00
Yann E. MORIN"
4fa6f04c32 config: move the "build shared libraries" option to the OS menu
The "Build shared libraries" config option is dependant on the type of
"Target OS".

Moving this options to the "Target OS" sub-menu is also better in the user
perspective: he/she no longer needs to go back and forth to see if he/she
missed any option.
2009-08-30 16:54:30 +02:00
Yann E. MORIN"
cf053f4c05 config: make "Build shared libraries" depend on KERNEL_SUPPORTS_SHARED_LIBS
Now that all kernels that support shared libraries select the correct config
option, we can change the dependency rules of SHARED_LIBS accordingly.
2009-08-30 16:50:30 +02:00
Yann E. MORIN"
4ae5ff5fd8 tools wrapper: introduce the silent WRAPPER_NEEDED config option
Add the WRAPPER_NEEDED silent config option, that can be selected by
components that require it (companion libs so far).
Rely on this config option when deciding to install the wrapper,
instead of checking GMP/MPFR or PPL/CLoog/MPC.
2009-08-30 00:57:40 +02:00
Yann E. MORIN"
d811941c9a config: choose whether to use the shell or the C wrapper
Offer a config choice on whether to isntall the script wrapper, or
the compiled C wrapper. Update docs/overview.txt accordingly.
2009-08-30 00:27:12 +02:00
Bart van der Meulen
1a84e201d0 Add support code for the canadian-cross case.
Add implementation for a candadian build option already
present in crosstool in order to build a cross-compiler
where build != host != target

Signed-off-by: Bart van der Meulen <bartvdrmeulen@gmail.com>
2009-06-26 19:09:22 +02:00
Yann E. MORIN"
d8ee6e30de Do not have the sys-root prefix depend on EXPERIMENTAL.
/trunk/config/toolchain.in |    1     0     1     0 -
 1 file changed, 1 deletion(-)
2009-03-09 10:54:57 +00:00
Yann E. MORIN"
661d2239e5 Some eye-candy in the toolchain sub-menu entries.
/trunk/config/toolchain.in |    8     5     3     0 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
2009-03-03 17:50:53 +00:00
Yann E. MORIN"
6822fae02e Allow user to add a directory component in the sys-root path.
Rename CT_DEBUG_INSTALL_DIR to CT_DEBUGROOT_DIR (to match CT_SYSROOT_DIR).
As a side effect, fix creating lib64->lib symlinks.

 /trunk/scripts/build/debug/100-dmalloc.sh |    2     1     1     0 +-
 /trunk/scripts/build/debug/400-ltrace.sh  |    2     1     1     0 +-
 /trunk/scripts/build/debug/300-gdb.sh     |    6     3     3     0 +++---
 /trunk/scripts/build/debug/500-strace.sh  |    2     1     1     0 +-
 /trunk/scripts/build/debug/200-duma.sh    |    6     3     3     0 +++---
 /trunk/scripts/crosstool-NG.sh.in         |   16     7     9     0 +++++++---------
 /trunk/scripts/functions                  |    2     1     1     0 +-
 /trunk/config/toolchain.in                |   17    17     0     0 +++++++++++++++++
 8 files changed, 34 insertions(+), 19 deletions(-)
2009-03-03 17:41:59 +00:00
Yann E. MORIN"
eb687c65b3 Sanity-check CT_TARGET_VENDOR, CT_TARGET_ALIAS and CT_TARGET_ALIAS_SED_EXPR:
- vendor and alias must not contain spaces
- vendor must not contain dashes '-'
- sed_expr must not generate an alias with a space in it

 /trunk/scripts/functions   |   17    16     1     0 ++++++++++++++++-
 /trunk/config/toolchain.in |    1     1     0     0 +
 2 files changed, 17 insertions(+), 1 deletion(-)
2008-12-09 22:02:20 +00:00
Yann E. MORIN"
8fba8c2732 Merge #1195, #1196 and #1203 from /devel/YEM-build_host_target_cleanup:
- Get rid of CT_CC_NATIVE
- Get rid of CT_CANADIAN_OPT
- Sanitise CT_BUILD vs. CT_HOST

 /trunk/scripts/build/tools/200-sstrip.sh |    4     2     2     0
 /trunk/scripts/build/binutils.sh         |    1     0     1     0 -
 /trunk/scripts/build/cc/gcc.sh           |   11     6     5     0 +-
 /trunk/scripts/build/debug/200-duma.sh   |    3     1     2     0 -
 /trunk/scripts/build/libc/glibc.sh       |   10     5     5     0 +-
 /trunk/scripts/build/libc/eglibc.sh      |    8     4     4     0 +-
 /trunk/scripts/crosstool.sh              |  168   113    55     0 ++++++++++++++++++++++++++------------
 /trunk/config/toolchain.in               |  160   137    23     0 +++++++++++++++++++++++++++++++-----
 8 files changed, 268 insertions(+), 97 deletions(-)
2008-11-13 18:22:23 +00:00
Yann E. MORIN"
799672a641 Introduce a new EXPERIMENTAL feature: BARE_METAL.
This should ultimately llow to build bare-metal compilers, for targets that have no kernel and no C library.
Move the C library build script to their own sub-directory; introduce an empty build script for bare-metal.
Move the compiler build script to its own sub-directory.
Move the kernel build script to its own sub-directory; introduce an empty build script for bare-metal.
Update the ARM target tuples to enable bare-metal targets.
Add two ARM bare-metal samples.
Add latest Linux kernel versions.

 /trunk/scripts/build/kernel/none.sh              |   77     6    71     0 +----
 /trunk/scripts/build/cc/gcc.sh                   |   58    41    17     0 ++-
 /trunk/scripts/build/libc/none.sh                |  513     9   504     0 +-----------------------------
 /trunk/scripts/crosstool.sh                      |   17     9     8     0 +
 /trunk/scripts/functions                         |    6     4     2     0 +
 /trunk/scripts/showSamples.sh                    |    6     3     3     0
 /trunk/samples/arm-unknown-elf/crosstool.config  |  225   225     0     0 +++++++++++++
 /trunk/samples/arm-unknown-eabi/crosstool.config |  223   223     0     0 +++++++++++++
 /trunk/config/kernel/linux_headers_install.in    |   64    27    37     0 ++--
 /trunk/config/kernel.in                          |    9     8     1     0 +
 /trunk/config/toolchain.in                       |    1     1     0     0 +
 /trunk/config/cc/gcc.in                          |    3     3     0     0 +
 /trunk/config/debug/dmalloc.in                   |    1     1     0     0 +
 /trunk/config/debug/gdb.in                       |    4     3     1     0 +
 /trunk/config/debug/strace.in                    |    1     1     0     0 +
 /trunk/config/debug/duma.in                      |    1     1     0     0 +
 /trunk/config/cc.in                              |    8     8     0     0 +
 /trunk/config/target.in                          |   13    13     0     0 +
 /trunk/config/binutils.in                        |    1     1     0     0 +
 /trunk/config/gmp_mpfr.in                        |    1     1     0     0 +
 /trunk/config/libc.in                            |   17    11     6     0 +
 /trunk/arch/arm/functions                        |    3     1     2     0 -
 22 files changed, 600 insertions(+), 652 deletions(-)
2008-09-14 16:21:07 +00:00
Yann E. MORIN"
916e8760dc Typo.
/trunk/config/toolchain.in |    2     1     1     0 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
2008-08-21 13:12:35 +00:00
Yann E. MORIN"
30481d01ce Move the threading model choice back to the C library menu:
- the threading models available are dependent on the C library used
 - it is thus easier to first select the C libary, and then the threading model, rather going back to the toolchain menu.

 /trunk/config/toolchain.in |   29     0    29     0 -----------------------------
 /trunk/config/libc.in      |   47    38     9     0 ++++++++++++++++++++++++++++++++++++++---------
 2 files changed, 38 insertions(+), 38 deletions(-)
2008-08-21 09:48:00 +00:00
Yann E. MORIN"
9e5b090cc5 Building multi-lib aware toolchains is not supported, and won'yt be before a loooong time. Remove the associated config entry.
/trunk/config/toolchain.in |   18     0    18     0 ------------------
 1 file changed, 18 deletions(-)
2008-05-24 22:10:51 +00:00
Yann E. MORIN"
07fa611771 Robet P. J. DAY: typoes. 2008-02-14 22:44:34 +00:00
Yann E. MORIN"
09f0dcc66f Change "triplet" (target triplet) to "tuple". That sounds better!
Document overriding the number of // jobs.
Some small documentation fixes.
2007-08-15 16:18:35 +00:00
Yann E. MORIN"
ab0fc7eab4 Totally comment-out the multilib option: it's not implemented, and not really implementable with the current crosstool-NG scheme. 2007-08-14 19:32:22 +00:00
Yann E. MORIN"
ab8763bedd Introduce new config option: CT_TARGET_ALIAS_SED_EXPR
This option is used as a sed expression to pass onto CT_TARGET to create an alias.
2007-08-07 19:40:38 +00:00