Commit Graph

233 Commits

Author SHA1 Message Date
Alexey Neyman
2808fdb6a3
Merge pull request #985 from antmak/platform_headers
Use the platform headers in the pass-2 and canadian gcc stages
2018-11-03 15:38:51 -07:00
Alexey Neyman
782b45d0da Supply "very old" and "very new" glibc versions
... as 1.0 and 99.99, respectively, to gcc configure.

Fixes #1031.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-10-21 19:05:19 -07:00
Anton Maklakov
1dea24ce9a Use the platform headers in the pass-2 and canadian gcc stages 2018-06-12 17:07:06 +08:00
Alexey Neyman
07ec87f14f Avoid adding arch/cpu/tune flags for target to GCC build
... as it may need to override them for building runtime-selectable code.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-06-05 00:16:37 -07:00
M1cha
ea702af5c3 cc/gcc: use correct sysroot arg for do_gcc_core_backend
This fixes gccs LIMITS_H_TEST detection for baremetal targets
so limits.h will be installed correctly.

Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
2018-02-12 07:45:54 +01:00
Alexey Neyman
48a949cf60 Add an ability to verify the digest/signature
Fixes #611.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-09-27 22:40:21 -07:00
Alexey Neyman
1e4eeb5c3b Workaround for static uClibc-ng issue with -lpthread
Also, preserve .config when running test-package.sh.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-09-03 12:12:14 -07:00
Alexey Neyman
413f5f6100 Super-H multilib toolchain fixes
1. On SuperH, configuring GCC with explicit variant of the CPU
(like "sh4") limits the default set of multilibs to just that CPU
and requires --with-multilib-list to change. Allow for "unspecified"
variant, so that we can defer to GCC to determine the list.

2. Support toolchains with both endiannesses at the same time.

3. Add a SuperH/newlib sample

4. Add more flags processing for uClibc

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-09-03 12:11:23 -07:00
Nathan Chancellor
1d724767bd config: Add package versioning flexibility
Some users (like myself) may want to omit the crosstool-NG version
from the binaries' versioning output, as it can be incredibly long
and not too helpful. Add a config option to disable it. The possible
combinations are as follows:

- crosstool-NG version (default)
- crosstool-NG version - custom toolchain ID
- Custom toolchain ID
- No crosstool-NG version OR custom toolchain ID

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2017-09-01 16:48:59 -07:00
Alexey Neyman
5324905c14 Fix glibc-ports with the new framework
While here, also consider patched by anything other than "bundled patches"
as per-target sources. Add scary warnings in case of a failure.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-08-26 13:01:37 -07:00
Alexey Neyman
20e0f706c6 Fix PPC64LE by supplying --with-glibc-version
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-08-22 16:48:45 -07:00
Alexey Neyman
0346153bdb Save export status for environment vars
... and limit our modifications to our variables.

Fixes #762.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-08-21 08:41:14 -07:00
Alexey Neyman
d26dc5d5f5 Use per-package list of formats to determine downloads
Fixes #789

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-08-19 00:18:25 -07:00
Alexey Neyman
fd522eed50 Resolve a few more TBDs
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-09 23:08:12 -07:00
Alexey Neyman
c9b31439db Some locations were missed while renaming kconfig symbols
... because there the symbols were constructer part by part.

Also, remove cc.sh and source $(CT_CC).sh directly - we only build
a single compiler at a time.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08 10:57:57 -07:00
Alexey Neyman
993b4acec5 Building packages using the new framework
(fails at building GMP off the VCS because it needs to run bootstrap scripts)

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08 10:57:56 -07:00
Alexey Neyman
567277099a Fix the references to old config variables
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08 10:57:56 -07:00
Alexey Neyman
1e37cd5450 Honor CFLAGS_FOR_BUILD
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-06-15 23:07:00 -07:00
Alexey Neyman
20a8525e8b Retire CT_CC_GCC_TARGET_FINAL
Make this behavior default in case the core gcc backend is used
for final compiler (i.e., for baremetal configurations). Not
setting this option breaks canadian baremetal configurations,
and not setting it makes little sense at all in any baremetal
configuration (since in baremetal we don't have any libc to begin
with).

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-05-24 23:03:34 -07:00
Alexey Neyman
d83a003618 Add symlinks from the libraries' original location to the new one.
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-29 13:29:31 -07:00
Alexey Neyman
a596ec5b39 Fix up the sysroot issue for sh4 in a different way
(see the comments in the code for details on the issue)

Old workaround in 100-gcc.sh stopped working (probably, due to one
of GCC version upgrades), so switch to the other approach originally
described there: adjust the list of multilibs to not include the
default target explicitly.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-26 23:32:27 -07:00
Alexey Neyman
67ab129fc5 Do not create multilib symlinks if not using sysroot
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-23 09:13:51 -07:00
Alexey Neyman
63b2a19de4 Add an option to "demultilib"
It turns out buildroot does not currently accept a toolchain where a dynamic
linker does not reside in the multi-os-directory. Unfortunately this is
how glibc installs itself on AArch64 without any extra tricks.

So, provide an option to force everything into /lib or /usr/lib; patch to
buildroot will be worked on separately.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-17 14:31:17 -07:00
Alexey Neyman
11b52ab6d7 Create ld.so.conf
Also a fix for CT_IterateMultilibs: it didn't pass multi_os_dir_gcc, so
it only worked if the caller did *not* declare it as a local variable.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-13 01:08:13 -07:00
Alexey Neyman
fc2f73fc08 When moving gcc libs, prefer the same directory as libc
If libc ended up in a directory other than /lib, place GCC's libs
in that directory as well.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-09 19:07:21 -08:00
Alexey Neyman
b3b94e4807 Only add clang-specific flags to clang
I.e., only to CFLAGS_FOR_BUILD if the build is canadian.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-06 18:57:12 -08:00
Alexey Neyman
59bab98b2d Revert "Determine whether -E/-r option selects extended regexp"
This reverts commit 7bcf18bfab.
2017-02-26 19:06:35 -08:00
Jasmin Jessich
c8d7d79e20 Added new gcc config option CC_GCC_CONFIG_TLS
Adding new tristate configuration for TLS (Thread Local Storage) to
add "--enable-tls" (y), "--disable-tls" (n) or nothing (m).

Signed-off-by: Jasmin Jessich <jasmin@anw.at>
2017-02-21 09:10:22 +01:00
Alexey Neyman
4d723d0892 More garbage collection
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-18 23:20:55 -08:00
Alexey Neyman
45512b003d Have LTO depend-on non-static builds
Loading a dynamic library (LTO plugin) from a static binary fails
on ArchLinux. It is also prone to break if a system is ever upgraded.

Also, disable plugins if not enabled explicitly.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-18 19:00:25 -08:00
Alexey Neyman
264b0c8686 More GC
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-18 18:41:04 -08:00
Alexey Neyman
f0716643b4 Garbage collection for GCC options that are same
... on all supported versions.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-18 18:36:34 -08:00
Alexey Neyman
7bcf18bfab Determine whether -E/-r option selects extended regexp
... and then use the right option. See the note in scripts/functions
on where we should use ${foo} and where just 'foo'; this boils down to
whether we can expect the build tools override to be in effect (e.g. in
the actual build scripts) or not (i.e. outside of scripts/build).
While running in scripts/functions, or in scripts/crosstool-NG.sh the
build tools override directory (.build/tools/bin) may have not been
set up (yet, or at all).

Also, modify the installed scripts (populate, xldd) accordingly.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-13 22:47:40 -08:00
Alexey Neyman
7186e39f32 Run all configure scripts using ${CONFIG_SHELL}
... as its help message says in menuconfig.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-25 00:06:28 -08:00
Alexey Neyman
ef58f6c01c Merge pull request #535 from stilor/broke-newlib-cxx-canadian
Restore copying headers for gcc_build
2017-01-16 09:01:20 -08:00
Alexey Neyman
d47e64711e Restore copying headers for gcc_build.
Only needed in canadian configurations to build libstdc++.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-14 14:51:38 -08:00
Alexey Neyman
c1612e9295 Use ${CT_CC} instead of gcc ...
... when refering to target's compiler.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-13 21:47:07 -08:00
Alexey Neyman
949cc86ab7 Merge pull request #526 from stilor/double-include
Avoid creating include/include
2017-01-13 21:44:33 -08:00
Alexey Neyman
9f5a92a783 Unify fetching Linaro components.
Add CT_GetLinaro, use it from gcc/binutils/gdb/glibc/newlib.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-12 23:00:41 -08:00
Alexey Neyman
59a784c572 No need to copy header; libc_start_file does it.
Signed-off-by: Alexey Neyman <stilor@att.net>
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
Alexey Neyman
11f87cfa5d Kill CT_COMPLIBS_SHARED.
There is no such option so the check is always true.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-10 10:38:08 -08:00
Alexey Neyman
b1ac2e7a7d Pass original multi_os_dir to iterator.
This is needed for callbacks that use that directory to look inside
GCC internal directories, e.g. moving the libraries. This broke
when I made libexpat for target honor ${CT_SHARED_LIBS}.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-12-17 12:10:10 -08:00
Alexey Neyman
2091c5dd2d Pass FOR_BUILD flags when building the pass-1/2 core GCC.
Current build passes {CFLAGS,LDFLAGS}_FOR_HOST - which breaks canadian cross
(e.g. tried building for x86_64-unknown-linux-uclibc host). This dates
back to the days of yore when CFLAGS were set directly in the do_gcc_core_backend
(and that function is used as the final gcc's backend).

do_gcc_core_backend is now passed with CFLAGS/LDFLAGS to use, so let
the pass-1/pass-2/final-for-build steps pass the appropriate flags.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-11-28 22:55:54 -08:00
Alexey Neyman
488b27f58b Partially revert 6f8e89cb5c.
The referenced commit replaced 'make' with '${make}' everywhere. This is
wrong for at least the utilities that we may build as companion tools
(make, libtool): this will always invoke the version detected by configure
by supplying the absolute path. In other words, the wrappers in
.build/tools/bin are not fallbacks - they are either temporary (in case
a respective companion tool is built) or permanent redirectors.

This is the reason why the PATH= has .build/*/buildtools/bin at higher
precedence than .build/tools/bin; the latter has the versions detected by
configure and the former has the versions built as companion tools.

Revert the rest of the gang (grep/sed/...) for consistency. After all,
we may decide to supply some of them as well (awk, for instance).

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-11-20 23:50:17 -08:00
Alexey Neyman
f4c7688946 Do not run 'make install' in parallel in GCC.
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-11-09 16:46:01 -08:00
Alexey Neyman
3330ad7197 Fine-tune moving gcc libraries to sysroot.
1. Check if anything was installed outside sysroot; on some [baremetal only?]
configurations GCC doesn't install anything to ${CT_PREFIX_DIR}/${CT_TARGET}/lib.
2. We need to create <sysroot>/lib/<multilib> if it doesn't exist
(MUSL only installs in <sysroot>/usr/lib).
3. Do not move the linker scripts; elf2flt expects to find them
in gcc's dir, not sysroot.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-10-07 10:34:33 -07:00
Alexey Neyman
33fccf9838 Merge branch 'master' into x86-musl 2016-10-04 11:43:42 -07:00
Alexey Neyman
96338beeca GCC uses multi_os_dir for libgcc, not multi_dir.
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-10-02 18:50:41 -07:00
Alexey Neyman
75dee86653 Fix issue #449.
After building final gcc, place the libraries in non-sysroot libs
into sysroot.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-10-02 15:23:53 -07:00