In preparation for multilib support, use the same "backend" model that
is already employed by glibc and musl.
Also, the verbosity setting descriptions were swapped. V=2 is actually
less verbose than V=1: V=1 prints full commands, while V=2 prints 'CC
<file> <defines>'.
Signed-off-by: Alexey Neyman <stilor@att.net>
- Dump CT_LIBC_EXTRA_CC_ARGS: instead, treat CT_LIBC_EXTRA_CFLAGS as
arguments to CC (or they are not applied to .S, for example).
Combine them with multi_flags and CT_TARGET_CFLAGS in proper order.
- Analyze thus combined flags to determine --with-fp/--without-fp.
Don't need to check CT_ARCH_FLOAT - it is reflected in
CT_TARGET_CFLAGS anyway. Check more soft/hard float options defined
on different architectures.
- Drop checking for endianness flags: they are not reflected in
configure arguments in any way, and they're already present in CFLAGS
(either via multi_flags or via CT_TARGET_CFLAGS). Besides,
CT_ARCH_ENDIAN_OPT was actually called CT_ARCH_ENDIAN_CFLAG, so this
was a no-op anyway.
Signed-off-by: Alexey Neyman <stilor@att.net>
If EXPERIMENTAL is not set, the only choice for version is the set of
released versions - currently, 1.1.14. But this only option is disabled
because it is also marked EXPERIMENTAL; this leaves no available choices
in the configuration.
Marking MUSL as experimental: it seems to have header issues which
prevent, for example, gdbserver from building. musl copied chunks of
ptrace.h code from the kernel into its own headers, which now clash with
Linux kernel headers. Manifests at least on SH4 target.
Also, musl breaks in powerpc builds: GCC balks at it with "unsupported
DEFAULT_LIBC" message. Also, 64-bit powerpc and mips are not supported.
So, until someone figures out the dependencies for musl in config/, mark
it experimental.
Signed-off-by: Alexey Neyman <stilor@att.net>
GLIBC 2.23 dropped support for pre-v9 SPARC in pthreads. Pass host
triplet with s/sparc/sparcv9/ replacement for 2.23.
Signed-off-by: Alexey Neyman <stilor@att.net>
We now only support glibc >=2.18
This now enables us to clean up glibc support!
Also, add a comment about glibc 2.20 as the point which glibc no longer
supports not building with pthread.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
As per #222, in crosstool-NG >= 1.23.0, we will only support:
[upstream supported gcc versions] - 1
As of this writing, these versions are:
* 5.2.0
* 4.9.3
* 4.8.5 (the -1, since development on 4.8.x is now closed)
I plan to keep 4.8.5 around because of some architectures having issues
with over-optimization or just faulty optimization in the 4.9.x and
possibly newer versions.
I also cleaned up a requirement for glibc to depend on >= gcc-4.6.x for
>= glibc-2.20, but since the lowest gcc we support after this change is
>= 4.8.5, this condition can go away.
Patches for older gcc versions are removed in the next commit.
This closes#222
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
In commit c9704c6683, I forgot to bump the
version in the prompt for uClibc-ng-1.0.9.
Reported-by: Reinoud Koornstra <reinoudkoornstra@gmail.com>
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
.. they're needed for the RPC generation in glibc
on both Cygwin and MinGW-w64.
Neither are built on GNU/Linux and iconv is not
built on Darwin.
Two patches for gettext are needed, one so that
-O0 works and one so that static builds can be
made.
They can take a good while to build, so if not
needed for_host or for_build then they are not
built.
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
I've added the .config files to contrib/uClibc-defconfigs from buildroot
to use as default configs if they are not provided in the sample.
If a particular architecture really needs an option set, it should be
either updated in the manange_uClibc_config function in
scripts/build/libc/uClibc.sh or a custom ${uclibc_name}.config should be
added to the sample (usually via `ct-ng saveconfig`).
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
This commit removes blackfin support.
I'm open to re-adding blackfin after crosstool-1.23.0 is released, but
it is currently too difficult to port forward to newer versions of gcc
and uclibc.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
This change, as per #222, reduces the number of supported releases of
gcc to the latest branch releases.
I noticed while doing this work that gcc-4.5.4 was never added, so I
moved patches for gcc-4.5.3 to 4.5.4 and updated the
bfin-unknown-linux-uclibc example. Also, 120-siginfo.patch was fixed
upstream in the 4.5.4 release, so this patch is omitted.
I also bumped the avr sample to 4.9.3 from 4.9.2.
With the addition of gcc-5.x, the gcc release team now releases the
major.minor.0 versions, while updates to the branch are available in
svn/git. We'll address that when we get to issue #219. This change just
removes CC_GCC_5_1 and moves CC_GCC_5_2 to CC_GCC_5, and removes
CC_GCC_5_1_or_later and moves CC_GCC_5_2_or_later to CC_GCC_5_or_later.
This is the first of two part changes, as mentioned in #222.
This change is slated for release in 1.22.0. The next change will be
slated for 1.23.0, and will limit gcc versions to what is on
https://gcc.gnu.org under "Release Series and Status", which is
currently 4.9.3 and 5.2.0, although I will also support the previous
supported version. In this example that would be 4.8.5.
Last, but not least, this change also retires AVR32 support.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
independend configuration to enable LIBC_NEWLIB_CUSTOM.
All newlib versions >=2.0.0 does provide __cxa_atexit. To enable this function
in GCC, all versions >=2.0.0 does now select LIBC_PROVIDES_CXA_ATEXIT.
Signed-off-by: Jasmin Jessich <jasmin@anw.at>
glibc-2.17 and above no longer have external addons or ports.
So if we are => 2.17, don't even think about trying to mess with ports
or addons.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
* Add glibc 2.22
* Add a constraint on glibc-2.21 that depends on gcc-4.6 or greater.
See: https://sourceware.org/ml/libc-alpha/2015-02/msg00119.html
======================================================================
* The minimum GCC version that can be used to build this version of
the GNU C Library is GCC 4.6. Older GCC versions, and non-GNU
compilers, can still be used to compile programs using the GNU C
Library.
======================================================================
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
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>
This commit updates the version knobs so that oldconfig does the right
thing when we bump versions.
Also, we update stable to 1.0.5 and experimental to 1.1.9.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
While we do want users to be able to use the mingw from git, being under
the experimental umbrella makes it more obvious that this should not be
used as a production toolchain.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
In commit cd47c091ba
I had forgot to also remove the config/libc/eglibc.in.
This commit removes it.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
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>
Can safely skip the core pass-1 for normal baremetal builds,
but when building a canadian baremetal, the repair_cc
functionality (GCC_FOR_TARGET) in gcc.sh will force the
core pass-2 to attempt to build gcc and libgcc without a
${CT_TARGET}-gcc existing, causing a failure on
${CT_TARGET}-gcc -dumpspecs > tmp-specs
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
As per the glibc release notes for 2.20:
--------------------------------------------------------------------------------
All supported architectures now use the main glibc sysdeps directory
instead of some being in a separate "ports" directory (which was
distributed separately before glibc 2.17).
--------------------------------------------------------------------------------
There isn't a ports directory anymore. So disable using and forcing it.
closes#7 on crosstool-ng github
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>