Commit Graph

3991 Commits

Author SHA1 Message Date
Alexey Neyman
098bd01f81 glibc.sh: Use --print-multi-os-directory
GCC makes the distinction between:
multilib (-print-multi-lib) and
multilib-os (--print-multi-os-directory)
as the GCC library and GCC sysroot library paths, respecitively.

Use this to build libc into the correct locations, the same
applies to the dummy libc.so

Changed by Alexey Neyman: restore missing CT_EndStep.

Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23 11:00:27 -07:00
Carlos Santos
29df8cccf4 scripts/functions: fix log level in call to CT_DoLog
It must be "DEBUG", not "Debug"

Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
2016-08-16 23:56:23 -03:00
Dmitry Pankratov
11b20626b0 Merge branch 'master' of https://github.com/crosstool-ng/crosstool-ng 2016-08-12 17:04:31 +02:00
Bryan Hundven
87eb166c5b Merge pull request #418 from bhundven/Docs_Update
README.md: Fix a list formatting issue.
2016-08-04 13:09:48 -07:00
Bryan Hundven
7f2108deb6 README.md: Fix a list formatting issue.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-08-04 13:08:46 -07:00
Bryan Hundven
cdcbdb1cbd Merge pull request #416 from bhundven/update_gitignore
Update .gitignore in kconfig/...
2016-08-04 01:24:46 -07:00
Bryan Hundven
5d9ac48c9a Update .gitignore in kconfig/...
Ignore `*.dep` and `*.o`.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-08-04 01:23:27 -07:00
Bryan Hundven
73c93120a1 Merge pull request #415 from bhundven/Docs_Update
Fix waffle.io badges
2016-08-04 01:10:27 -07:00
Bryan Hundven
124e36142e Fix waffle.io badges
I had Ready twice and colums in the wrong order.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-08-04 01:08:46 -07:00
Bryan Hundven
0c13553076 Merge pull request #414 from bhundven/Docs_Update
README.md: Add mailing list archive/subscription page
2016-08-04 01:04:05 -07:00
Bryan Hundven
c1388a9735 README.md: Add mailing list archive/subscription page
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-08-04 01:02:31 -07:00
Bryan Hundven
43ecb73bb4 Merge pull request #413 from bhundven/Docs_Update
Update README.md
2016-08-04 00:50:33 -07:00
Bryan Hundven
3f4e8e7b34 Update README.md
This commit makes the README.md more informative and basically jacks a
bunch of content from crosstool-ng.org (plus some extras).

I also added the waffle.io badges

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-08-04 00:49:29 -07:00
Jean-Marie Lemetayer
a2d6572b45 populate: Fix undefined awk
Fix minor issue introduced by 6f8e89cb5c
2016-07-26 16:07:58 +02:00
Kirill K. Smirnov
269eb63875 Add sparc-leon-linux-uclibc sample
Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2016-07-26 00:26:17 +03:00
Vaibhav Jain
4090f17e6b samples: Add powerpc64 little-endian toolchain sample
This change adds a powerpc64le-unknown-linux-gnu sample that can be used
to quickly create a little-endian tool-chain for powerpc64
architecture. This sample is based on the earlier work done by "Yann
E. MORIN" to add support for powerpc64 tool chain and implementing the
power64-unknown-linux-gnu sample. The existing sample however generates
a big-endian tool chain by default.

Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
2016-07-19 15:14:26 +05:30
Dmitry Pankratov
91b8280e8c Merge remote-tracking branch 'upstream/master' 2016-06-18 16:02:15 +02:00
Bryan Hundven
6e7c61650a Merge pull request #403 from stilor/multilib-1
First chunk of multilib changes for merging
2016-06-17 18:02:59 -07:00
Martin Lund
e4a21f634d Update elf2flt default cset 2016-06-14 07:54:52 +02:00
Martin Lund
b06f5ab689 Update elf2flt git repository location
The elf2flt git repository has been moved to GitHub. Updated the script
accordingly.

Signed-off-by: Martin Lund <martin.lund@keep-it-simple.com>
2016-06-10 22:11:39 +02:00
Alexey Neyman
dc8f2d1c04 glibc.sh: build dummy libc.so with correct extra flags
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-06-09 17:12:49 -07:00
Ray Donnelly
c7da54edf4 glibc: Use common arch call to get multilib targets
The previous patch added the function 'CT_DoMultilibTarget()' to
scripts/build/arch/*.sh.

This patch calls the common function to (currently) get just the target
tuple for the current multilib target.

This patch was originally by: Cody P Schafer

Changed by Alexey Neyman: first, try `gcc -print-multiarch`. If it is
supported, use whatever it reports. Otherwise, fall back to our
guesswork. Move "i486" quirk into glibc.sh, as it is specific to glibc
(e.g. uclibc will need i386, which is what GCC reports).

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-06-09 17:12:49 -07:00
Alexey Neyman
67b314a051 arch/x86: add a sanity check
i[34567]86-*-gnux32 is not a valid tuple.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: Ray Donnelly <ray.donnelly@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-06-09 17:12:49 -07:00
Alexey Neyman
34ecc718d9 arch/all: Add common function to return multilib target
This code was abstracted out of Cody P Schafer's multilib patch.
It doesn't seem right having architecture dependent code in a
specific libc implementation script. So this patch breaks it out into
scripts/build/arch/<arch>.sh in a function:

  multilib_target_to_build="$(CT_DoArchMultilibTarget 'multi_flags'
'target-in')"

Note that this function gets called on each multilib variant with
different sets of compiler flags supplied in 'multi_flags'. The caller
will first filter the flags so that there is no conflicting flags (e.g.,
no '-m32 -m64') supplied.

Changed by Alexey Neyman:
- make option analysis check specific option rather than match global
  options string as a whole. Moreover, old code did not handle multiple
  options in the same multilib, e.g. '-m64 -mlittle'.
- fixed substitutions in powerpc.sh (*le variants did not match the
  pattern in the shell parameter expansion)
- make s390.sh actually apply the flags it gathered from the options.
- straighten the spaghetti in x86.sh by setting two flags, arch & abi.
  Also, do not depend on "gnu" being the last part - we can have
  '*-uclibcx32', for example.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: Ray Donnelly <ray.donnelly@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-06-09 17:12:49 -07:00
Ray Donnelly
aa30d0bc4f gcc: Add --with-multilib-list option
Written by Bryan Hundven.

Modified by Alexey Neyman to actually add the option to gcc.in.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-06-09 17:12:49 -07:00
Alexey Neyman
a65d8841ec Enable multiarch support in pass-1 GCC.
By default, it is 'auto' - which means, it is enabled if there are
multilibs directories detected in the installation location for libgcc.
Thus, it is not detected for pass-1 GCC: the installation location is
empty at this point.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-06-09 17:12:49 -07:00
Alexey Neyman
55879ed1d8 glibc: do not add bogus options
If a multilib configuration contains an endianness option, the
${endian_extra} is set to, for example, 'mb' (note, no dash!). It is
then added to CFLAGS, resulting in bogus flags like 'mb -mb'. But it is
not even needed, as ${extra_flags} already contains the very same
option!

Found by experimenting with multilibs with different endianness on SH,
which still didn't work, but that's another story...

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-06-09 17:12:49 -07:00
Alexey Neyman
a49e13fb4e sh: require multilib
Now that libc backend installs the libraries into the directory reported
by gcc as 'multi-os-directory', sh4 libraries are installed into a '!m4'
subdirectory. This directory then confuses GNU ld, which assumes the
exclamation mark to be a word separator and attempts to link to
'/usr/lib' (a directory). However, if multilib is enabled, the default
libraries are installed into the [expected] '/usr/lib/./'. This looks
like an artifact of SuperH's unique way of specifying the multilibs to
be built in GCC (which may list exclusions, starting with '!').

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-06-09 17:12:49 -07:00
Alexey Neyman
a60946eb24 arch/sparc: better default CPU when targetting Linux
By default, sparc64-*-linux is configured with -mcpu=v9. However,
according to https://sourceware.org/ml/libc-alpha/2005-12/msg00027.html:
    "There is no Linux sparc64 port that runs on non-UltraSPARC-I+ ISA
     CPUs."

v9 is such a "non-UltraSPARC-I+ ISA CPU", so it makes no sense to
default to v9 when targetting Linux.

Change the default to ultrasparc, even though it can suboptimally
schedule instructions for newer SPARC CPUs. See the pending patch:
    https://patchwork.ozlabs.org/patch/409424/

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-06-09 17:12:49 -07:00
Alexey Neyman
08d91d41f3 musl: config is broken for !EXPERIMENTAL
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>
2016-06-09 17:12:49 -07:00
Bryan Hundven
7300eb17b4 Merge pull request #392 from bhundven/fix_building_gcc-5_with_gcc-6
patches/gcc: Backport fix for building gcc-5 with gcc-6
2016-05-13 14:33:33 -07:00
Bryan Hundven
5a5fcbe148 patches/gcc: Backport fix for building gcc-5 with gcc-6
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69959

...was observed while trying to build gcc-5.3.0 on latest (at the time
of this change) archlinux using gcc-6.1.1.

This patch fixes the issue.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-05-13 11:54:54 -07:00
Bryan Hundven
cd39285ff8 Merge pull request #373 from stilor/unbreak-ppc-uclibc
Unbreak samples
2016-05-12 20:34:42 -07:00
Bryan Hundven
cd6274dcad Merge pull request #390 from bhundven/addToolVersion_syntax_issues
addToolVersion: Fix syntax issues
2016-05-12 11:37:27 -07:00
Bryan Hundven
2b0cc92fab addToolVersion: Fix syntax issues
This issue was reported on github:
https://github.com/crosstool-ng/crosstool-ng/issues/378

by: alonbg

This is the same addToolVersion.sh change in the zipfile, with minor
changes. (whitespace)

This closes #378

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-05-12 11:34:34 -07:00
Bryan Hundven
176594e4a1 Merge pull request #366 from CDKGlobal/glibc-getaddrinfo
Add patch for glibc 2.22 for CVE-2015-7547.
2016-05-12 11:24:13 -07:00
Jim Huang
fa89c82a3e gettext: bump version to 0.19.7 2016-04-30 00:16:13 +08:00
Erico Nunes
560bbdc887 avr: update sample to use up-to-date gcc
With avr-libc 2.0.0 released, we no longer need to force gcc 4.9.x for
the avr toolchain. So, remove the gcc version constraint and allow it to
follow the default gcc version. There is also no need to force companion
libraries' versions anymore.
The 'experimental' flag was also removed from the description as it
seems to be following upstream development now.

This sample has been build tested on Arch Linux and Ubuntu 14.04 hosts.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
2016-04-19 01:38:32 -03:00
Erico Nunes
d312347348 avr-libc: update to 2.0.0
The avr-libc project has released version 2.0.0:
http://savannah.nongnu.org/forum/forum.php?forum_id=8460

Apart from changes and bugfixes, this release adds support for gcc 5,
which allows us to build gcc 5 avr toolchains and also to update our avr
sample.

avr-libc 2.0.0 has been build tested both with gcc 4.9.3 and gcc 5.3.0.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
2016-04-19 01:38:25 -03:00
Alexey Neyman
2162cbbdb7 Work-around another quirk in GDB configure.
Previous fix for cross-gdb broke powerpc-unknown_nofpu-linux-gnu which
uses an old GDB (6.8a). That GDB's configure chokes on $CC values with
multiple consecutive spaces; see the comment in 300-gdb.sh.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-04-01 18:15:39 -07:00
Alexey Neyman
cc7f7db767 Mark x86_64-w64-mingw32,x86_64-pc-linux-gnu broken.
I couldn't get this sample to build. I tried rolling ct-ng back to 1.22
and back to the commit that introduced it, to no avail. Not sure if it
ever built on my machine.

The first problem is the failure to build binutils/gold because of the
missing <pthread.h> in mingw. However, even if CT_BINUTILS_GOLD_THREADS
option is unset, the build dies in configure of the pass-1 of the core CC.
The config.log states that it failed to link with libmpfr.a, which has
a lot of undefined references to symbols like '__imp___iob_func'.
Googling shows that these symbols are some dark Cygwin/MinGW magic and I
do not have the knowledge of these arcana. Let some other MinGWizard fix
it another day.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-04-01 18:15:39 -07:00
Alexey Neyman
712b617a74 Unbreak sparc-unknown-linux-gnu.
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>
2016-04-01 18:15:39 -07:00
Alexey Neyman
7ac327d6c3 Remove --with-expat from extra GDB args.
300-gdb.sh always adds --with-expat, no need to list it in
crosstool.config.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-04-01 18:15:39 -07:00
Alexey Neyman
62d357d3c0 Unbreak static cross-gdb.
GDB's configure mishandles the libexpat.{so,a} libraries when it is
given -static in CFLAGS AND --with-libexpat-prefix in configure's args:
it checks for <prefix>/lib/libexpat.so and finding that, attempts to
link it as `gcc -static .. conftest.c <prefix>/lib/libexpat.so`; this
obviously fails (.so cannot be statically linked), so configure assumes
libexpat is unusable. Thus, --with-libexpat-prefix is dangerous and
should be avoided; instead, configure should find the libraries via the
supplied CC/LD definitions.
2016-04-01 18:15:39 -07:00
Alexey Neyman
2c7f7cf847 Unbreak *-uclibc with native GDB.
Currently, native GDB 7.11 fails to build with uClibc-ng due to
undefined reference to _obstack_free.

On IRC
[http://crosstool-ng.osuosl.org/download/ibot-logs/2016-02-28.html], it
has been suggested to disable obstack in uClibc configuration. I think
it is a workaround rather than a fix: if another library/app needs
obstack, this leaves no viable configuration. IMO, if uClibc seeks to
mimic the glibc API, it should also provide _obstack_free call (an
alias for which it already has, even though commented out).

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-04-01 18:15:39 -07:00
Alexey Neyman
85af584872 Unbreak powerpc-unknown-linux-uclibc.
There is invalid assembly in dmalloc for PowerPC. The issue is that
'stw' expects a memory operand, and =g constraint allows both registers
and memory. Newer GCC tends to choose register even at -O0, resulting in
invalid assembly. Instead, force a register constraint in 'mflr' and let
GCC decide if it wants to store it into memory at all.

Reported this upstream.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-04-01 18:15:39 -07:00
Dmitry Pankratov
f6d8dc4411 Merge remote-tracking branch 'upstream/master' 2016-03-30 05:41:36 +02:00
Bryan Hundven
e1d494a248 Merge pull request #320 from bhundven/newlib_updates
Newlib updates
2016-03-26 09:11:43 -07:00
Dmitry Pankratov
78c683c356 Merge remote-tracking branch 'upstream/master' 2016-03-17 22:55:51 +01:00
Bryan Hundven
a41b269af6 Merge pull request #376 from jcmvbkbc/gcc-flags-for-target
Pass CFLAGS_FOR_TARGET/CXXFLAGS_FOR_TARGET for libstdc++ in baremetal build
2016-03-15 09:58:47 -07:00