Commit Graph

3560 Commits

Author SHA1 Message Date
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
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
Bryan Hundven
e1d494a248 Merge pull request #320 from bhundven/newlib_updates
Newlib updates
2016-03-26 09:11:43 -07: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
Max Filippov
02d8e4a514 scripts/build/cc: pass FLAGS_FOR_TARGET in do_gcc_core_backend
Pass CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET and LDFLAGS_FOR_TARGET to
gcc configure in do_gcc_core_backend as they may be used to build
libstdc++ for bare-metal target.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2016-03-15 17:14:16 +03:00
Max Filippov
8a65d08b27 gcc: backport fixes that preserve FLAGS_FOR_TARGET
CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET are rewritten in gcc-4.8.x and
gcc-4.9.x, so libstdc++ does not get any flags passed to gcc configure.
Backport fixes for config/mt-gnu and config/mt-ospace that preserve these
flags. With these fixes libstdc++ gets built with flags specified in
CT_TARGET_CFLAGS.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2016-03-15 17:14:16 +03:00
Bryan Hundven
6476f8a940 newlib: add option to enable nano formatted io
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-03-08 04:48:27 -08:00
Bryan Hundven
929e027500 newlib: add option to enable nano malloc
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-03-08 04:48:27 -08:00
Bryan Hundven
9d5fc3fd9b newlib: disable multilib if it is not enabled
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-03-08 04:48:27 -08:00
Bryan Hundven
867a7d61ac newlib: Update newlib versions
Newlib release seem to be snapshots now. Newlib 2.3.0 was released in
git here:
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=commit;h=ad7b3cde9c157f2c34a6a1296e0bda1ad0975bda

and the snapshot for 2.3.0 was here:
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=commit;h=06cd7127e3cf16ab3c0aa665956deb263e524753

The 2.2 series was also updated.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-03-08 04:48:24 -08:00
Reser, Ben
9c7a41ea64 Add patch for glibc 2.22 for CVE-2015-7547.
This resolves a vulnerability related to getaddrinfo().
2016-03-04 15:36:19 -08:00
Bryan Hundven
d7339f50a2 Merge pull request #364 from bhundven/aarch64_generic_sample
Aarch64 generic sample
2016-03-03 15:04:51 -08:00
Bryan Hundven
c59c785c7f Merge pull request #365 from bhundven/no_aout_static_check
configure: Don't write a.out on static compiler check
2016-03-03 09:53:39 -08:00
Bryan Hundven
58617df80d configure: Don't write a.out on static compiler check
Because I don't pass `-o` to gcc, it makes an a.out file with gcc.
For clang it doesn't make the a.out, as that is not the default.

It doesn't hurt to output to /dev/null for both.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-03-03 09:51:32 -08:00
Bryan Hundven
09abe4e39d travis-ci: Add aarch64-unknown-linux-gnueabi
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-03-03 09:33:26 -08:00
Bryan Hundven
13d4b2b6a3 samples: Add generic aarch64 sample
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-03-03 09:32:31 -08:00
Bryan Hundven
f67572fda7 Merge pull request #363 from bhundven/update_config
config.{sub,guess}: Ran ct-ng updatetools
2016-03-03 09:17:50 -08:00
Bryan Hundven
637fbae755 config.{sub,guess}: Ran ct-ng updatetools
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-03-03 09:16:48 -08:00
Bryan Hundven
bd460e8872 Merge pull request #362 from bhundven/rpi_aarch64_sample
samples: add aarch64-rpi3-linux-gnueabi
2016-03-03 09:13:19 -08:00
Bryan Hundven
1f590667ac samples: add aarch64-rpi3-linux-gnueabi
This is a aarch64 raspberry pi 3 sample.

Please test!

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-03-03 07:23:01 -08:00
Bryan Hundven
0f76cad2f0 Merge pull request #360 from kongen/RPi3
Adds Raspberry Pi 3 sample config
2016-03-02 12:11:44 -08:00
Stefan Hallas Mulvad
bc9ed3c5cb Adds Raspberry Pi 3 sample config
Signed-off-by: Stefan Hallas Mulvad <shm@hallas.nu>
2016-03-02 20:09:09 -08:00
Bryan Hundven
785dbce351 Merge pull request #359 from bhundven/fix_musl_libc_build
musl-libc: Rewrite musl.sh build script
2016-02-29 18:07:31 -08:00
Bryan Hundven
9820e4eea5 musl-libc: Rewrite musl.sh build script
This commit moves the do_libc_configure function to do_libc_backend and
switches do_libc_start_files and do_libc_final to call do_libc_backend.

The major reason for the rewrite is that musl => 1.1.13 has had it's own
build system rewritten and can now build out-of-tree.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-02-29 17:20:28 -08:00
Bryan Hundven
38bac5781a Merge pull request #358 from bhundven/musl_update
musl-libc: Update to 1.1.14
2016-02-29 13:20:26 -08:00
Bryan Hundven
b30443458d musl-libc: Update to 1.1.14
We also remove the old 1.0 series.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-02-29 13:18:25 -08:00
Bryan Hundven
c1c03aa27c Merge pull request #356 from bhundven/check_static_link
configure: Check to see if gcc can static link
2016-02-28 12:16:10 -08:00
Bryan Hundven
01bc77f5f1 Merge pull request #357 from dajamminyogesh/master
kernel: Updated kernel revisions
2016-02-28 12:14:42 -08:00
Yogesh Sharma
cea34175c4 kernel: Updated kernel revisions
Kernel revisions updated to match kernel.org.

Signed-off-by: Yogesh Sharma <YogeshASharma@gmail.com>
2016-02-26 23:45:36 -05: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
Bryan Hundven
c66d5c20cf configure: Check to see if gcc can static link
This is a semi-nasty-hack to see if gcc can static link.
Obviously on Mac OS X this is not possible, so we set
CT_CONFIGURE_has_static_link=y if it can.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-02-26 03:52:05 -08:00
Bryan Hundven
6430ff506e Merge pull request #353 from bhundven/glibc_cleanup
Glibc cleanup
2016-02-26 01:23:45 -08:00
Bryan Hundven
4d7e6fb003 Merge pull request #354 from westermo/upgrade-gdb
gdb: Add support for v7.11, port patches from v7.10.1 that apply
2016-02-25 12:17:44 -08:00
Joachim Nilsson
f9a704bd44 gdb: Help gnulib determine uClibc gettimeofday() is OK
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-02-25 18:37:22 +01:00