Commit Graph

848 Commits

Author SHA1 Message Date
Bryan Hundven
69c568ac85 Merge pull request #57 from smoofra/buildflags
bugfix: pass extra build CFLAGS and LDFLAGS to glibc
2015-04-14 08:20:38 -07:00
Bryan Hundven
0056444ad5 Merge pull request #63 from neftedal/master
Updated script to support mingw versions above major 2
2015-04-14 08:18:05 -07:00
Nils Petter Eftedal
00b68926a8 mingw.sh: added with sysroot argument to mingw configure
The argument will prevent the prefix path from being added as an include path while building mingw. Having the prefix as an include path might cause all kinds of weird issues if prefix directory also exists on the build machine.

Signed-off-by: Nils Petter Eftedal <nilspetter@eftedal.org>
2015-04-08 09:36:57 +02:00
Nils Petter Eftedal
2392a3909d mingw.sh: updated script to support mingw versions above major 2
Added new functions to support changes in prefix and required vendor tuple for new versions of mingw.

Tested and verified with mingw version 2.0.7, 3.3.0 and 4.0-rc3.

Signed-off-by: Nils Petter Eftedal <nilspetter@eftedal.org>
2015-04-08 09:28:16 +02:00
Lawrence D'Anna
972dbd294d bugfix: pass extra build CFLAGS and LDFLAGS to glibc
Glibc actually does create a build executable.  It's under sunrpc and it's
called cross-rpcgen.  It uses gettext, so if that's not available in a standard
place on your system (for example if you're using Mac OS X and Homebrew), then
you are all out of luck.

Signed-off-by: Lawrence D'Anna <larry@elder-gods.org>
2015-04-07 20:31:58 -07:00
Bryan Hundven
18175b8d93 Merge pull request #37 from bhundven/so_long_to_eglibc
So long to eglibc
2015-04-07 19:07:13 -07:00
Johannes Pfau
586e30f726 Only create ${CT_TARGET}-cc${ext} symlink if ${CT_TARGET}-gcc exists
Without this canadion cross builds create invalid symlinks:
When the code in do_cc_core_backend is called there is no
${CT_TARGET}-gcc in the install directory. Therefore ext is empty and
we create a link to ${CT_TARGET}-gcc. The final compiler
step then installs ${CT_TARGET}-gcc.exe and creates a working
${CT_TARGET}-cc.exe symlink but we still keep the invalid link
as well.

Signed-off-by: Johannes Pfau <johannespfau@gmail.com>
2015-04-07 20:14:26 +02:00
Bryan Hundven
7b8d76ed56 scripts/*/*.sh: prioritize http downloads
Prirotize http downloads before ftp downloads.
By having http download first, those using proxy will work with the
current download mechnism.

This tells me that that mechnism needs to be updated.
(proxy support and/or kconfig toggles)

closes #3

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-02-01 21:00:14 -08:00
Bryan Hundven
add039fd50 glibc: Fix pkgversion and bugurl support
glibc versions that don't support --with-pkgversion or --with-bugurl
will cause a harmless:

====================
configure: WARNING: unrecognized options: --with-bugurl...`
====================

If it's set, use it, if it's a recognized option.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-01-27 23:13:38 -08: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
Daniel Zimmermann
4ac1653f94 arch/nios2:add nios2
add the nios2 architecture to crosstool-ng.

Signed-off-by: Daniel Zimmermann <netzimme@gmail.com>
2015-01-26 20:43:18 +01:00
Cristoforo Cataldo
01397b7e5a libc: newlib: Add NewLib 2.2.0, Linaro NewLib 2.2.0-2015.01 and 2.1.0-2014.09
This commit allows to choose, download and build latest NewLib:
- newlib-2.2.0
- newlib-linaro-2.2.0-2015.01
- newlib-linaro-2.1.0-2014.09

Signed-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>
2015-01-16 22:07:44 +01:00
Cristoforo Cataldo
315f69271c libc: glibc: Add Linaro GLibc 2.20-2014.11
This commit allows to choose, download and build latest Linaro GLibC:
- glibc-linaro-2.20-2014.11

Signed-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>
2015-01-16 22:07:44 +01:00
Cristoforo Cataldo
4170d1ed70 libc: eglibc: Add Linaro EGLibc 2.19-2014.08
This commit allows to choose, download and build latest Linaro EGLibC:
- eglibc-linaro-2.19-2014.08

Signed-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>
2015-01-16 22:07:44 +01:00
Cristoforo Cataldo
017d2d014e debug: gdb: Add Linaro GDB 7.8-2014.09 and Linaro GDB 7.6.1-2013.10
This commit allows to choose, download and build latest Linaro GDB:
- gdb-linaro-7.8-2014.09
- gdb-linaro-7.6.1-2013.10

Signed-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>
2015-01-16 22:07:44 +01:00
Cristoforo Cataldo
d90bd6f13f gcc: Add Linaro GCC 4.9-2015.01 and GCC 4.8-2014.11
This commit allows to choose, download and build latest Linaro GCC:
- gcc-linaro-4.9-2015.01
- gcc-linaro-4.8-2014.11

Signed-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>
2015-01-16 22:07:44 +01:00
Cristoforo Cataldo
ca5003cbe6 binutils: Add Linaro Binutils 2.25-2015.01 and 2.24-2014.11
This commit allows to choose, download and build latest Linaro Binutils:
- binutils-linaro-2.25.0-2015.01-2
- binutils-linaro-2.24.0-2014.11-2

Signed-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>
2015-01-16 21:52:25 +01:00
Bernhard Walle
c88bbca7ab comptools/make: Install 'gmake' symlink
We had following problem: We're building a toolchain with an old glibc
version for compatibility with old Linux distributions (glibc 2.9). This
version requires make < 4 to build. However, the configure script of
glibc looks for make in the order "gnumake", "gmake" and "make". So when
"gmake" is available in the system (which is the case on Gentoo Linux
per default, unfortunately), then configure finds the system gmake 4.1
instead of the ct-ng make 3.82.

This patch adds an option to install a symlink so that 'gmake' is also
available in the old version when building toolchains.

Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
2015-01-08 19:15:51 -08:00
Bryan Hundven
2ba44bb761 Merge pull request #19 from davidholsgrove/newlib_headers
Newlib headers for Canadian Crosses
2015-01-07 12:21:30 -08:00
David Holsgrove
af731ae904 cc/gcc: Remove copyheaders toggle in do_cc_core_backend, make default
Canadian Cross compile for baremetal fails with error;

  checking for the value of EOF... configure: error: computing EOF failed

which is due to libstdc++ configure not being able to find stdio.h

Having all modes of the core compiler copyheaders from CT_HEADERS_DIR
(in combination with previous patch for newlib to add a do_libc_start_files
function to copy into the CT_HEADERS_DIR) resolves this.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2015-01-02 09:52:29 +10:00
David Holsgrove
234c643008 libc/newlib: Add do_libc_start_files to copy headers to CT_HEADERS_DIR
Require access to newlibs headers in gcc.sh, matching other libc components.
Resolves issue with headers not found.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2015-01-02 09:52:28 +10:00
Bryan Hundven
4b84be34c5 gmp: Disable --enable-mpbsd if version is >= 5.0.2
closes #12

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-23 13:28:26 -08:00
Bryan Hundven
5c7bccdb3f Merge pull request #14 from davidholsgrove/glibc_rpc
libc/glibc: install obsolete RPC for both eglibc and glibc
2014-12-15 18:02:28 -08:00
Bryan Hundven
0ee9ecbcf7 Merge pull request #6 from davidholsgrove/libc_custom_location
Libc custom location
2014-12-15 09:33:43 -08:00
Jérôme BARDON
7147418c8f libc/glibc: install obsolete RPC for both eglibc and glibc
Currently, the obsolete RPC headers are only installed for eglibc,
but glibc has the same /deficiency/, so install the obsolete RPC
for both.

Signed-off-by: Jérôme BARDON <bardon.pro@gmail.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-12-15 14:48:33 +10:00
Bryan Hundven
9159846334 gdb: fix typo made in gdb build script
I made a typo in: 1e17619b27

It should be version, not release.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-09 22:16:40 -08:00
Bryan Hundven
91cf168d76 gcc and gdb: fix fetching linaro builds (part three)
Yes, I missed the backslash which messed up the linaro stuff.
The more I look at this code, I feel it needs to be refactored a bit. So
I'll come back to this in the future and clean it up.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-08 23:46:41 -08:00
Bryan Hundven
1e17619b27 gcc and gdb: fix fetching linaro builds (part two)
It's not my day.

linaro_version is a filter. If it is not a linaro toolchain, it will
just be CT_{CC,GDB}_VERSION. If it is a linaro toolchain, CT_{CC,GDB}_VERSION
will be prefixed with 'linaro-' and will not match linaro_version, as
linaro_version will just have the part after 'linaro-'.

This *really* fixes the issue :sigh:

Thanks again to @elsonwei for being right the first time!

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-08 23:27:46 -08:00
Bryan Hundven
aee4142a9d gcc and gdb: fix fetching linaro builds
linaro_version and linaro_series are defined but not set if we are not
configured for linaro builds.

Therefore we need to default them to "" (null string).
As reported by @elsonwei

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-08 22:32:19 -08:00
David Holsgrove
163a1737b8 libc/{,e}glibc: If using custom {e}glibc, dont extract or patch
If custom {e}glibc is being used, no need to carry out the
extract or patching phase of scripts/build/libc/glibc-eglibc.sh-common

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-12-09 15:51:11 +10:00
David Holsgrove
71ed5aae34 libc/eglibc: Add CUSTOM version and CUSTOM_LOCATION config options and GetCustom
CUSTOM_LOCATION config options only presented in menuconfig if component
CUSTOM version selected.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-12-09 15:51:11 +10:00
David Holsgrove
79b9881295 libc/glibc: Add CUSTOM version and CUSTOM_LOCATION config options and GetCustom
CUSTOM_LOCATION config options only presented in menuconfig if component
CUSTOM version selected.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-12-09 15:51:11 +10:00
David Holsgrove
d7b4f0dbe3 glibc: nptl is default from 2.20, so dont add to addons_list
No longer recommended practice to use --enable-add-ons=nptl, so
for 2.20 and later (along with custom glibc), don't add the
CT_THREADS to the addons_list

https://sourceware.org/glibc/wiki/Release/2.20#Packaging_Changes

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-12-09 14:41:35 +10:00
Bryan Hundven
79422633cf scripts: Update download locations
This change updates the download locations to default to the official
download site.

For gcc and gdb, also separate out the linaro download locations so that
if you are downloading the linaro variant, it skips trying to download
from the official gcc mirror.

This commit closes #3

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-12-08 15:03:08 -08:00
Solomon Peachy
4125a79589 binutils: Fix elf2flt compile on more modern systems
Without this fix, elf2flt will blow up complaining that it can't resolve
dlopen() and friends.  One has to explicitly pass '-ldl' on the final
linking command line, because the system linker is not resolving
indirect dependent shared libraries.

I've needed to this patch for several years on Fedora systems.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-05 13:09:51 -08:00
goodmenlinux@gmail.com
f65ecce4ba binutils: Fixup the static toolchain build problem
When try to build the static toolchain, binutils failed.

    I have checked the libtool script, and found that the following option
          -all-static
          -static
          -static-libtool-libs

    are processed in a strange way. If any one of those three options
    appears firstly in the cmdline, all others will be neglected. Our
    LDFLAGS is ".... -static -all-static -o", so the -static option
    takes the real effect, and the -all-static has no useage actually!
    that is the cause of the failure.

Signed-off-by: Brock Zheng <goodmenlinux@gmail.com>
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-05 03:20:04 -08:00
Bryan Hundven
6bef0b4d24 libc/musl: Add config option for extra developer warnings
This commit adds a configuration knob for enabling extra developer
warnings to be enabled during the musl-libc build.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2014-09-11 23:12:22 +02:00
Bryan Hundven
9dd63da071 libc/musl: Add config option for debugging info
This option enables a configuration knob for adding debugging info.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2014-09-11 23:12:19 +02:00
Bryan Hundven
cb27b22974 libc/musl: Add options for optimization
This commit adds configuration knobs for optimizing musl-libc.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2014-09-11 23:12:11 +02:00
Yann E. MORIN
a56df802eb cc/gcc: add option to enable/disable libsanitizer
libsaniotizer requires a few headers that are not in uClibc, for
example. Also, it is only available for native threads (NPTL under
glibc.) Finally, it is only available starting with gcc-4.8.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-08-31 18:54:13 +02:00
Bryan Hundven
52260ccebb libc/musl: add musl-libc support
This patch adds initial support for musl-libc.

Musl-libc versions currently supported:
* 1.0.3 (Stable)
* 1.1.3 (Previous Mainline)
* 1.1.4 (Mainline)

Futher improvements are needed.
* gcc-4.9.x has issues (Might be fixed in musl-1.1.4).
* Multilib support is needed.
* Checks to make sure paths are correct.
* Move to 2-step gcc build. 3-step build is not necessary.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
[yann.morin.1998@free.fr: removed the gcc musl patch, to be added later;
 removed dead code do_get_arch()]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-08-08 22:49:37 +02:00
Cody P Schafer
975d24cb35 cc/gcc: avoid passing --enable-multilib (take 2)
The previous patch (cset b61a1b1, cc/gcc: avoid passing --enable-multilib)
only fixed the core backend, and missed the final backend.

This patch does the same as b61a1b1, but for the final backend.

Signed-off-by: Cody P Schafer <dev@codyps.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-07-19 12:10:23 +02:00
Yann E. MORIN"
d0cc0b3a56 arch: use the newly introduced target_bits_64
Convert MIPS and Sparc over to using the new target_bits_64 variable.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-05-12 00:09:31 +02:00
Cody P Schafer
aaaea2987a arch/powerpc: add powerpc64le support
Technically, I don't forbid powerpcle support either, but I'm not sure that
there is any library/compiler support for that at the moment (though the hw
technically makes it possible).

powerpc64le needs glibc 2.19 and gcc 4.9. I haven't looked into the support
tools, but at least gdb 7.5 is too old (7.7.1 definitely has support).

Also make powerpc64 non-experimental. It's practically old at this point.

Signed-off-by: Cody P Schafer <dev@codyps.com>
[yann.morin.1998@free.fr: use ${target_endian_le} and ${target_bits_64}]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <64bfbbced9dd8f62e0d6.1399801945@gun>
Patchwork-Id: 347775
2014-05-12 00:02:13 +02:00
Yann E. MORIN"
8989b2d658 binutils/elf2flt: restore the custom location functionality
Somehow, it got lost when incorporating elf2flt in the binutils farmework.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-05-11 17:51:33 +02:00
Yann E. MORIN"
298982aab2 binutils/binutils: do not forget to extract elf2flt
In case we're using a custom (aka local) binutils source, we still
need to extract and patch elf2flt.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-05-11 18:42:30 +02:00
Yann E. MORIN"
04a7340d0a binutils/elf2flt: use alternate mirror
The official elf2flt upstream has disapeared.

Switch to a mirror.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-05-11 15:43:28 +02:00
Cody Schafer
db2872f2ac cc/gcc: allow CC_EXTRA_CONFIG_ARRAY on baremetal
The final bare-metal compiler is built using the core backend.
Currently the core uses the CC_CORE_EXTRA_CONFIG_ARRAY variable.

While this works as supposed to, this can leave the user puzzled
in the menuconfig, since all he can see is the core options, not
the final options.

Only show the core options if any of the core passes are needed,
and use the final options in the core-backend if we're issuing
the bare-metal compiler.

Signed-off-by: Cody P Schafer <dev@codyps.com>
[yann.morin.1998@free.fr: hide core options if no core pass needed;
 use final option in core backend if issuing the bare-metal compiler]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <22181e546ba746202489.1399688067@localhost>
Patchwork-Id: 347586
2014-05-09 19:13:49 -07:00
Cody Schafer
b61a1b13ee cc/gcc: avoid passing --enable-multilib
Some versions of gcc have a broken --enable-multilib flag. As multilib is the
default, only pass the --disable-multilib flag

Signed-off-by: Cody P Schafer <dev@codyps.com>
[yann.morin.1998@free.fr: make it an if-block; duplicate commit log as comment]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <5c970c1ceb22528fe28a.1399687923@localhost>
Patchwork-Id: 347585
2014-05-09 19:11:59 -07:00
Trevor Woerner
3737334080 newlib: fix extract process for custom version
newlib: fix extract process for custom version

If the user specifies the use of a custom newlib version, the logic in the
extract function was reversed, so this step would fail.

Signed-off-by: Trevor Woerner <trevor.woerner@linaro.org>
[yann.morin.1998@free.fr: keep leading indentation]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <c727adf1b7bd2c1e891d.1393353347@openSUSE-i7>
Patchwork-Id: 324060
2014-02-25 13:34:48 -05:00