Commit Graph

1256 Commits

Author SHA1 Message Date
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
Yann E. MORIN"
eb0da898f8 cc/gcc: only build required core passes
We now know exactly what pass to build, so build only what is required.

Reported-by: Trevor Woerner <trevor.woerner@linaro.org>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-05-05 23:24:05 +02:00
Ray Donnelly
62a1145d61 binutils: Added ranlib to tools list
so that it is available to available to
the core C compiler build because static
libraries are built and ranlib is used
on them.

Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Message-Id: <CAOYw7dt=+DdnKAHNShfs6a+=7sS+DLQYkyxnQMAwmw7E7zqvgA@mail.gmail.com>
Patchwork-Id: 316477
2014-02-04 07:40:45 +00:00
Yann E. MORIN"
2ee8d1d8f2 cc/gcc: add option to enable/disable decimal floats
Decimal floats need support form the C library, namely support
for fenv, which is missing in uClibc for any architecture but
x86/32.

Add an option (a choice) to enable or disable decimal floats.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-04 16:17:40 +01:00
Yann E. MORIN"
ec93451443 libc/uClibc: add option to enable fenv
Support for fenv.h is a little bit more tricky that enabling it only
for x86-32 is not right.

Add an option for the user to choose whther to install fenv.h or not.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-04 16:19:18 +01:00
Yann E. MORIN"
20d851ad9f libc/glibc: fix downloading addons
Do to glibc what we did to eglibc in #dff359adf15c.

Only (very) old versions of glibc have other external addons,
and they are no longer meaningful.

But for consistency, do the change nonetheless.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-06 20:05:14 +01:00
Yann E. MORIN"
2071cfb13e libc/glibc: print name of skipped addon
When trying to extract an already present (aka bundled) addon,
print the name of that addon, for clarity, and to help analyse
the build.log post-mortem.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-05 19:25:54 +01:00
Daniel Dittmann
ba4abe8285 cc/gcc: set CXXFLAGS at configure gcc
Since gcc 4.8 C++ is also used as implementation language (see gcc
release notes).

Signed-off-by: "Daniel Dittmann" <ddittmann@gmx.net>
Message-Id: <acc7d11bc77b30f21c5b.1388863298@bernalk.machteam>
Patchwork-Id: 306883
2014-01-04 20:16:18 +01:00
Yann E. MORIN"
c1ed43e527 libc-uclibc: enable fenv for x86 32-bit
Without it, gcc-4.8 fails to build.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-04 01:10:13 +01:00
Yann E. MORIN"
c6fd7bd2d9 cc/gcc: diable libsanitizer without NPTL
gcc-4.8 comes with a new library to sanitise memory access:
  - heap-, stack-, and global-buffer overflow, use-after-free
  - data-races between threads

This library requires some _np parts of the API, which are not
implemented in the (old) LinuxThreads, which is still available
in uClibc.

Since NPTL requires a i486 or above, i386 are stuck with using LT,
which precludes building the libsanitizer.

Disable libsanitizer, a bit like libatomic is.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Niels Penneman <niels@penneman.org>
2014-01-04 01:02:57 +01:00
Yann E. MORIN"
05429e01f2 libc/eglibc: fix downloading of localedef addon
For the versions of eglibc where the ports addon is not external (ie,
all versions after, and including 2.17), we would fail to download the
localedef addon, since the test did not care about the addon we were
about to download, only whether the ports addon was external or not.

Fix that by skipping the ports addon only if that's the addon we're
trying to download.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-03 17:10:09 +01:00
Niels Penneman
89e9d9851a cc/gcc: fix gcc 4.8 build for C library without threads support
Signed-off-by: Niels Penneman <niels@penneman.org>
Message-Id: <309df93f4354c80e05c9.1388743085@i7sb.local>
Patchwork-Id: 306521
2014-01-03 10:57:48 +01:00
Yann E. MORIN"
dbe2cc1c0b kernel/linux: fix fall-out due to arm64 special case
Cset 3b61be3d7aa6 (prepare for arch whose kenel name is not the standard name)
failed to name a variable consistently, so all archs but arm64 were broken.

Fix that by renaming the variable in a consistent way.

Reported-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-01 19:14:20 +01:00
Yann E. MORIN"
1bf982dd68 arch/arm: add support for AArch64
AArch64 id the 64-bit variant for ARM.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Zhenqiang Chen <zhenqiang.chen@linaro.org>
Cc: Michael Hope <michael.hope@linaro.org>
2013-12-30 23:28:18 +01:00
Yann E. MORIN"
9bda4536fe kernel/linux: prepare for arch whose kenel name is not the standard name
For some architectures, the kernel architecture name is not the common
name of the architecture for other tools.

For example: ARM 64-bit is commonly referenced as aarch64, but the kernel
calls it arm64.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
[yann.morin.1998@free.fr: split out of the aarch64 patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-12-30 23:15:02 +01:00
Yann E. MORIN"
2c2717a019 libc/newlib: fix variables for avr32 headers
Some of the avr32headers related variables are used in different
functions, so have to be declared globally, not locally.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-12-31 12:55:21 +01:00
Zhenqiang Chen
2f94f99dd8 cc/gcc: Add Fortran support for Baremetal build
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
[yann.morin.1998@free.fr: fix damage due to mailer]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <CACgzC7D5HCVS-qX=ydcQphNFH=VGgJzTdZWQWaLKAv-CdE8crA@mail.gmail.com>
Patchwork-Id: 292703
2013-11-19 14:44:02 +08:00
Yann E. MORIN"
f63e4f0604 libc/{glibc,eglibc}: Don't download glibc-ports when not available
Don't download glibc-ports when glibc or eglibc version greater than 2.16,
because the "ports" source is mainline in the glibc or eglibc since version 2.17.

Signed-off-by: "Daniel Zimmermann" <netzimme@gmail.com>
Message-Id: <9c045ca3cf1b9dc89da3.1384602843@haus-VirtualBox>
Patchwork-Id: 291766
[yann.morin.1998@free.fr: slightly tweak subject, change variable name]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-11-16 16:16:51 +01:00
Yann E. MORIN"
78c5cab850 debug/gdb: fix canadian-cross in case of static cross gdb
Building the cross-gdb shoud be done using the host compiler,
not the native compiler.

Reported-by: Per Arnold Blaasmo <per-arnold.blaasmo@atmel.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-11-15 21:35:27 +01:00
Yann E. MORIN"
edd01b7729 libc/(e)glibc: fix extra configparms
In case ${CT_LIBC_GLIBC_CONFIGPARMS} starts with a dash, printf will try
to interpret it as an option for itself, and will invariably flail in
panic as it does not recognise any of it.

Use a more robust solution, as suggested by Cody.

Reported-by: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Cody P Schafer <devel-lists@codyps.com>
2013-11-15 21:21:12 +01:00
Yann E. MORIN"
cf36828878 cc/gcc: Add support for golang
Signed-off-by: Richard Weinberger <richard@nod.at>
Message-Id: <ca374aef944e28a6ec3c.1383921708@azrael>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-11-08 15:18:09 +01:00
Michael Hope
c0c6db07fe complibs/isl: add HTTP mirror
Add well-known HTTP mirror as a fallback.  This lets crosstool-ng
work when behind a HTTP/HTTPS only proxy.

Signed-off-by: Michael Hope <michaelh@juju.net.nz>
[me: split original patch in two]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <aeb4a850d0786ee62dc2.1375559989@wanda>
Patchwork-Id: 264436
2013-08-01 20:24:35 +00:00
Michael Hope
8d21f730a6 libc/newlib: add HTTP mirror
Add well-known HTTP mirror as a fallback.  This lets crosstool-ng
work when behind a HTTP/HTTPS only proxy.

Signed-off-by: Michael Hope <michaelh@juju.net.nz>
[yann.morin.1998@free.fr: split patch in two]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <aeb4a850d0786ee62dc2.1375559989@wanda>
Patchwork-Id: 264436
2013-08-01 20:24:35 +00:00
Yann E. MORIN"
e1675bac64 complibs/cloog: add support for the ISL backend
CLooG 0.18+ will use ISL instead of PPL, so we have to configure
adequately depending of which backend is in use.

The Kconfig entries will decide for us which is selected, so we
can rely on either PPL xor ISL to be selected, not both.

Reported-by: "Plotnikov Dmitry" <leitz@ispras.ru>
[Dmitry did a preliminray patch to add ISL support,
 which this patch is inspired from]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-05-05 00:01:05 +02:00
Yann E. MORIN"
1dc3dd9167 cc/gcc: add preliminray support for 4.8
This means:
  - introduce the new symbols for 4.8
  - do not always select PPL if graphite is selected

Reported-by: "Plotnikov Dmitry" <leitz@ispras.ru>
[Dmitry did a preliminray patch to add gcc-4.8 support,
 which this patch is inspired from]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-05-05 17:59:00 +02:00
Yann E. MORIN"
e4828c01d3 complibs: add ISL
ISL is used by gcc-4.8 onward for GRAPHITE, so is also used as
backend for CLooG 0.18.0 onward.

Reported-by: "Plotnikov Dmitry" <leitz@ispras.ru>
[Dmitry did a preliminray patch to add ISL, which this one is inspired from]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-05-04 00:08:34 +02:00
Zhenqiang Chen
501204e8d4 cc/gcc: Set CXX_FOR_BUILD for bare metal and canadian build.
>From 4.8, g++ is used as the default compiler to build the toolchain.

Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
Message-Id: <CACgzC7B-LQvAw3hOYhBA7b7g0H1WtH20gqXM=Y=YFO4FrnZKWQ@mail.gmail.com>
Patchwork-Id: 243590
2013-05-13 15:00:56 +08:00
Jongsung Kim
d8988dbe0b cc/gcc: modify to build gcc-4.8-based cross-tools
Building cross-tool based on gcc-4.8 fails while "Installing
pass-2 core C compiler", because building libgcc.mvars needs
libbacktrace.a that gcc.sh doesn't build. This patch inserts
a few lines configuring, and making libbacktrace into gcc.sh
to build gcc-4.8-based cross-tools successfully.

Reported-by: Plotnikov Dmitry <leitz@ispras.ru>
Signed-off-by: Jongsung Kim <neidhard.kim@lge.com>
Message-Id: <201305031831.33395.neidhard.kim@lge.com>
Patchwork-Id: 241258
2013-05-02 23:31:33 +00:00
Samuel Martin
a3e17bad44 complibs/ppl: only add -fpermissive flag to CXXFLAGS
-fpermissive is not a valid option to gcc.

Adding it to the CFLAGS make the ppl checks fail with the following
error:

[ALL  ]    Making check in tests
[ALL  ]    cc1: warnings being treated as errors
[ERROR]    cc1: error: command line option "-fpermissive" is valid for C++/ObjC++ but not for C
[ALL  ]    cc1: warnings being treated as errors
[ERROR]    cc1: error: command line option "-fpermissive" is valid for C++/ObjC++ but not for C
[ERROR]    make[7]: *** [formatted_output.o] Error 1

Signed-off-by: "Samuel Martin" <smartin@aldebaran-robotics.com>
Message-Id: <bba2482a06a11415207e.1365876457@smartin-de-2.aldebaran.lan>
Patchwork-Id: 236383
2013-04-13 19:41:36 +02:00
Jerzy Grzegorek"
5458f566af kernel/linux: add xz-ed linux tarballs
Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net>
Message-Id: <f249828223fc75313bee.1363860871@NX5000>
Patchwork-Id: 229618
2013-03-21 10:57:31 +01:00
Martin Guy
e284b218a7 arch/avr32: Fix download of header files
This patch fixes the download of the avr32 headers in crosstool-ng by
fetching them directly from Atmel's web site instead of the now-broken URL
given by the original author of the avr32-header-fetching modification,
who fetched them from a copy on his own, now-defunct server.

It also adds the necessary logic to extract from a zip file, as that is
how the headers are packaged.

To configure it for avr32 after launching ct-ng menuconfig in an empty
directory:

       Paths and misc options ->
               Shell to use as CONFIG_SHELL = sh
       Target options ->
               Target Architecture = avr32
       Toolchain options ->
               Tuple's alias = avr32
       Binary utilities ->
               binutils version = 2.18a
       C compiler
               gcc version = 4.2.2
       C-library
               newlib version = 1.17.0
               Enable IOs on long long = yes
               Enable IOs on floats and doubles = yes
               Disable the syscalls supplied with newlib = yes

CONFIG_SHELL is necessary to get round the "fragment: command not
found" bug when binutils-2.18 is configured using bash.

Prepared against crosstool-ng mercurial trunk on 31 March 2012.

Signed-off-by: Martin Guy <martinwguy@gmail.com>
[yann.morin.1998@free.fr: update bundles sample accordingly]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <CAL4-wQrg_NQ7jm-NCADqeyQr9twyhtx42OUGNThP6gWeqZc=kw@mail.gmail.com>
Patchwork-Id: 232612
2013-03-31 04:07:38 +00:00
Samuel Martin"
355e585232 debug/dmalloc: enforce cross-compilation
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Message-Id: <69772732f551aa342a2c.1363446264@laptop>
Patchwork-Id: 228221
2013-03-16 15:33:44 +01:00
Samuel Martin"
96b2e3c3f6 debug/strace: enforce cross-compilation
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Message-Id: <24b6540a08cbca7ee1fa.1363446263@laptop>
Patchwork-Id: 228220
2013-03-16 15:47:56 +01:00
Samuel Martin"
1fc10f2779 debug/gdb: enforce gdbserver cross-compilation
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Message-Id: <ca85cad85c4dd20e74f1.1363446262@laptop>
Patchwork-Id: 228219
2013-03-16 15:46:45 +01:00
Yann E. MORIN"
d12f807b16 libc/glibc: do not overwrite existing bits/syscall.h
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Rafael C <groups.r2@gmail.com>
Cc: Jérôme BARDON <bardon.pro@gmail.com>
Cc: Daniel Price <daniel.price@gmail.com>
2013-03-03 22:24:40 +01:00
Yann E. MORIN"
75e7c5bc1b libc/glibc: fix installing syscall.h when installing start-files.
Reported-by: Rafael C <groups.r2@gmail.com>
Reported-by: Jérôme BARDON <bardon.pro@gmail.com>
Reported-by: Daniel Price <daniel.price@gmail.com>
[yann.morin.1998@free.fr: use a conditional approach, also suggested by Daniel]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-03-03 22:18:35 +01:00
Yann E. MORIN"
a5491bd775 debug/gdb: a litle bit of trivial code-reordering
Move all options-setting code at the same place.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-03-03 17:17:55 +01:00
Yann E. MORIN"
6fef7d640a debug/gdb: fix possibly broken code
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-03-03 17:15:56 +01:00
Yann E. MORIN"
ea899b6767 debug/gdb: move the ncurses build to a backend
This cleans up the code a bit.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-03-03 16:21:51 +01:00
Yann E. MORIN"
71d2f41cf9 debug/gdb: always enable expat for the cross-gdb
There's no point in not supporting XML in the cross-gdb.
I mean, come on... ;-)

It's still the responsibility of the user to have the necessary
devel expat packages installed for his/her distro.

Reported-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-03-03 16:19:32 +01:00
Yann E. MORIN"
5b41901f99 debug/gdb: fix $need_expat_src usage for native-gdb
For the native-gdb (ie on the target), we unconditionally
need to build expat.

Make it a backend, it makes a litle bit cleaner code.

Reported-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-03-03 15:30:02 +01:00
Yann E. MORIN"
c31652d67d debug/gdb: fix $need_ncurses_src usage
It should be used only to decide whether we need to download/extract
ncurses, not wheter we should build it or not.

Reported-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-03-03 15:25:52 +01:00
Yann E. MORIN"
42b0a64885 debug/gdb: fix the mess do_{gdb,expat,ncurses} have become
Rename those three variables to properly reflect their purpose: decide
whether we need to download/extract gdb/libexpat/libncurses, not whether
we need to build them or not.

This is only a rename for now, subsequent changes will further
fix this mess.

Reported-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-03-03 15:02:32 +01:00
Trevor Woerner
38a4afc266 libc/newlib: update fetch location
The menu system provides an option to allow a user to request newlib
version 2.0.0. newlib-2.0.0, however, is not available at the download
location currently being used. It is, however, available (as are other
supported versions of newlib) at an alternate location.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Message-Id: <75ab5151c7f5dc9086e3.1362334313@suse64>
Patchwork-Id: 224561
2013-03-03 13:10:51 -05:00
Yann E. MORIN"
035fb442ea complibs/ppl: update upstream location
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-02-15 18:54:27 +01:00
Yann E. MORIN"
150f500426 arch: allow adding a suffix to the arch-part of a tuple
For some architectures, it is legit to have an alternate value in the
'architecture' part of the tuple. For example:
    armv5te-*
    armv7a8-*

Besides, some packages expect the tuple to reflect the arch variant
(eg. openMPI) to detect the variant's capabilities (eg. atomic
primitives).

This patch adds an option for the user to specify a suffix to be added
to the arch-part of the tuple.

Signed-off-by: Willy Tarreau <w@1wt.eu>
Message-ID: <20130120225822.GS6838@1wt.eu>
Patch-Id: 213994
[yann.morin.1998@free.fr: make it a suffix, not an override]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-01-20 12:58:22 +00:00
Yann E. MORIN"
ffe80db73c libc: get rid of libc_finish
At long last, we no longer have any libc that requries a libc_finish.
Yeah!

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-01-10 21:01:59 +01:00
Yann E. MORIN"
b8c9fdf4a3 libc/newlib: install AVR32 headers during the start-files-and-headers phase
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-01-10 19:06:46 +01:00
Yann E. MORIN"
c1d673203d arch/arm: add option to use *eabihf tuples
Toolchains that use the hard-float ABI now are to be denoted by a tuple
ending in *eabihf, while the prevbious *eabi is now an indication that
the toolchain uses the softfloat ABI.

This is purely a cosmetic thing, for distros to differentiate their
hardfloat-ABI ports from their softfloat-ABI ports.

(note: softfloat ABI does not mean that it is using softfloats; it can
be using hardfloat instructions, but using the softfloat ABI).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-01-10 00:11:17 +01:00
Yann E. MORIN"
ea77a251e5 libc/glibc: both glibc and eglibc have pkgversion and bugurl
Well, all eglibc version we support do, and latest glibc versions
we support do.

Not all glibc versions do, but older versions simply ignore the
unrecognised ./configure flags.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-12-26 13:30:51 +01:00
Yann E. MORIN"
8ec9dbbc8d libc/glibc: always enable obsolete RPC
Since unrecognised ./configure flags are simply ignored,
we can always pass --enable-obsolete-rpc.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-12-26 13:34:55 +01:00
Yann E. MORIN"
fc4d1bf65f complibs/ppl: fix build with newer gcc
ppl-0.10.x does not build with gcc-4.6+, as it uses constructs that were
warnings with gcc-4.5 and before, but are now errors with gcc-4.6 and
above.

Fix that by passing -fpermissive in CFLAGS for ppl 0.10.

Reported-by: Jeremy Rosen <jeremy.rosen@openwide.fr>
Reported-by: Peter Korsgaard <jacmet@uclibc.org>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-12-10 00:25:48 +01:00
Yann E. MORIN"
4e9c473337 cc/gcc: do not print 'core' or 'final'
In gcc-'s core and final passes, do not print 'core' or 'final' in
log messages. We already print it in step messages.

Also, as we use the core backend to build the bare-metal final gcc,
it can be disturbing to read 'core' while we're in fact in 'final'.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-11-25 18:22:38 +01:00
Yann Diorcet
e9920217e8 cc: add a flag for skipping core passes
It is used for skipping unnecessary compilation steps when the libc
doesn't need to be compiled (eg. when we do not use a C library).

Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com>
Message-Id: <150eadb0117e697d79aa.1353625025@blackmint>
Patchwork-Id: 201222
2012-11-22 23:56:58 +01:00
Yann Diorcet
9705ec34cf binutils: introduce the infrastructure to support binutils alternatives
Rework binutils in order to provide soon binutils alternative.

Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com>
[yann.morin.1998@free.fr: split up original patch for self-contained changes]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <d3d1d51f399e6d2c1163.1353320546@macbook-smorlat.local>
Patchwork-Id: 199971
2012-11-19 11:21:31 +01:00
Yann Diorcet
b43fdf40f1 scripts: add BUILD/HOST extra cflags/ldflags
On some hosts, and for certain toolchains (eg. toolchain targetting
the upcoming Darwin), it may be necessary to pass arbitrary CFLAGS
and/or LDFLAGS when building the components.

And necessary infrastructure:
  - EXTRA_{CFLAGS,LDFLAGS}_FOR_{BUILD,HOST} as config options
  - pass those extra flags to components

Fix-up a slight typo in elf2flt at the same time (misnamed cflags).

Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com>
Message-Id: <d24043276c9243a35421.1353077450@macbook-smorlat.local>
Patchwork-Id: 199645
2012-11-16 15:25:57 +01:00
Daniel Price
1af4a119d2 scripts: unquoted variable reference in glibc-eglibc.sh-common
Signed-off-by: Daniel Price <daniel.price@gmail.com>
Message-Id: <12f092a95a94bcf76912.1353367250@redfish.dssd.com>
Patchwork-Id: 200215
2012-11-19 15:20:13 -08:00
Yann Diorcet
ba31ed29c4 binutils/sstrip: remove
sstrip has been obsoleted for a while now, as it's still broken
for some archs, and there seems to be no incentive to fix it
upstream. Besides, the space gained with sstrip is marginal at
best.

Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com>
Message-Id: <65c8bf534d0647ce52cd.1353320545@macbook-smorlat.local>
Patchwork-Id: 199970
2012-11-19 11:19:54 +01:00
Yann Diorcet (diorcet yann
0be070e5b7 complibs: introduce generic multi-complibs infrastructure
Use the same method as companion tools for providing generic and
extendable companion libs.

Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com>
Message-Id: <515c5c4635d99ebe4877.1353074410@macbook-smorlat.local>
Patchwork-Id: 199613
2012-11-16 14:59:27 +01:00
Yann Diorcet
3d01e9f275 libc/mingw: replace mingw32 with generic mingw
Replace the 32-bit-only mingw32 with mingw-w64 that is capable
of building toolchains for both 32-bit and 64-bit Windows.

kernel/mingw: replace mingw32 with generic Windows
kernel/windows: New windows kernel supporting 32 and 64 bit arch
libc/mingw: Remove old options
patches: Remove old mingw libc options' patches

Signed-off-by: "Yann Diorcet" <diorcet.yann@gmail.com>
[yann.morin.1998@free.fr: array var in libc/mingw.sh, typos]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <b045ac08fc9eac2e5ee3.1352898499@blackmint>
Patchwork-Id: 198901
2012-11-14 14:05:49 +01:00
Johannes Stezenbach
a8318facc4 libc/eglibc: enable rpc in eglibc-2.16+
While eglibc-2.16 recommends to use TI-RPC instead of the old sunrpc, the
old one can be included using a configure option. Since the user can still
use TI-RPC to override the libc implementation, we enable rpc unconditionally.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
Message-Id: <20121102140404.GA7707@sig21.net>
Patchwork-Id: 196564
2012-11-02 04:04:04 +00:00
Yann E. MORIN"
baba086806 libc/uClibc: remove use of snapshots and specific date
We now have the ability to use a custom location, so supporting
snapshots or custom date is no longer needed. Let the user do the
required preparation in this case.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-10-31 23:31:32 +01:00
David Holsgrove
5ed8715c9d libc/uClibc: 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>
[yann.morin.1998@free.fr: fix indentation, don't patch custom dir location]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <712995e3e719fbbe24af.1349931201@localhost.localdomain>
PatchWork-Id: 190794
2012-10-11 14:39:44 +10:00
Yann E. MORIN"
de0ef330c3 libc/newlib: remove getting from CVS
We now have the ability to use a custom local directory/tarball, so
it no longer makes sense to have the ability to use the CVS repository.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-10-30 22:40:48 +01:00
David Holsgrove
66a2b08680 libc/newlib: 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>
[yann.morin.1998@free.fr: fix indentation]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <d02252752d4dc5e68ae3.1349931202@localhost.localdomain>
PatchWork-Id: 190795
2012-10-11 14:39:45 +10:00
Yann E. MORIN"
8bcd5c689c cc/gcc: remove svn source
Since we now have the opportunity to use a custom local directory/tarball
as the source for gcc, it no longer makes sense to retrieve gcc ourselves
from its subversion repository.

Cc: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-10-30 00:30:47 +01:00
Yann E. MORIN"
79243c2f8d debug/gdb: remove ncurses cleanup
That's legacy code that was usefull when ncurses was installed
in the sysroot. Still it's not longer the case (it's installed
in a special dedicated directory), we can remove that piece of
code.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-10-30 00:23:51 +01:00
David Holsgrove
35f55a7495 debug/gdb: 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>
[yann.morin.1998@free.fr: don't patch custom dir location]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <9ea1b5021fc77582867f.1349931197@localhost.localdomain>
PatchWork-Id: 190791
2012-10-11 14:39:42 +10:00
David Holsgrove
33d3919c3e binutils/elf2flt: Add CUSTOM version, CUSTOM_LOCATION config options, GetCustom
CUSTOM_LOCATION config options only presented in menuconfig if component
CUSTOM version selected.

Change elf2flt CT_ELF2FLT_VERSION from 'head' to 'cvs' if cvs selected in config

Also remove hardcoded 'cvs-' from elf2flt component name, used in CT_Extract,
CT_Patch and as the CT_SRC_DIR location for the configure stage.

Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>
[yann.morin.1998@free.fr: fix indentation, don't patch custom dir location]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <288db3721a37844defa5.1349931196@localhost.localdomain>
PatchWork-Id: 190789
2012-10-11 14:39:42 +10:00
David Holsgrove
2ace8ed697 binutils/binutils: 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>
[yann.morin.1998@free.fr: fix indentation, don't patch custom dir location]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <7a604b5df9c84a1e20c3.1349931195@localhost.localdomain>
PatchWork-Id: 190788
2012-10-11 14:39:41 +10:00
David Holsgrove
6b8740dd6d cc/gcc: 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>
[yann.morin.1998@free.fr: don't patch custom directory location]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <f2272ac0f37cedd0bb91.1349931194@localhost.localdomain>
PatchWork-Id: 190787
2012-10-11 14:39:41 +10:00
Johannes Stezenbach
b8baed585d fix eglibc-2.16 manual build
Signed-off-by: Johannes Stezenbach <js@sig21.net>
Message-Id: <20121022133228.GA16536@sig21.net>
Patchwork-Id: 193156
2012-10-22 03:32:28 +00:00
Yann E. MORIN"
8a1008cf4f kernel/linux: fix missing 'then'
Reported-by: David Holsgrove <david.holsgrove@xilinx.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-10-17 21:21:44 +02:00
Yann E. MORIN"
e1806b1d22 kernel/linux: fix using custom location
Currently, extract and patch are skipped as thus:
  - using a custom directory of pre-installed headers
  - a correctly named directory already exists

Otherwise, extract and patch are done.

The current second condition is wrong, because it allows the following
sequence to happen:
  - a non-custom kernel is used
  - a previous build only partially extracted the non-custom sources
  - that p[revious build broke during extraction (eg. incomplete tarball...)
  - a subsequent build will find a properly named directory, and will
    thus skip extract and patch, which is wrong

Fix that by following the conditions in this table:

Type                  | Extract | Patch
----------------------+---------+-------
Pre-installed headers |    N    |   N
custom directory      |    N    |   N
custom tarball        |    Y    |   N
mainstream tarball    |    Y    |   Y

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: David Holsgrove <david.holsgrove@xilinx.com>
2012-10-16 20:57:44 +02:00
David Holsgrove
bdc4ed3df1 kernel/linux: use generic custom infrastructure
Config options remain the same as before, just generalised to be used by other
components also.

Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>
[yann.morin.1998@free.fr: fix indentation, fix comment]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <50674fe47431174aab80.1349931193@localhost.localdomain>
PatchWork-Id: 190786
2012-10-11 14:39:40 +10:00
Yann E. MORIN"
dad17e6e88 cc/gcc: do not print multilib for canadian-cross
Previous import from patchwork missed one hunk (in cset #d8feb93b3e49)
Apply it now.

Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Patchwork-Id: 189053
2012-10-13 18:26:26 +02:00
David Holsgrove
071606c0a0 scripts/gcc: Canadian Cross skip -print-multi-lib log output
Attempting to ${CT_TARGET}-gcc -print-multi-lib will fail

In do_cc_core_backend, for the final compiler in a canadian cross
baremetal, warn that multi-libs cannot be determined

In do_cc_backend, for either final compiler for a canadian cross,
warn that multi-libs cannot be determined

(Plus fixed CT_PREFIX_DIR in do_cc_backend to be ${prefix})

Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>
Message-Id: <CAM=EW8aQDoNx-CkJHjXBoDP4iTDJ8z5hh3=KhO5UTU6rp3Pj=w@mail.gmail.com>
Patchwork-Id: 189053
2012-10-04 15:59:31 +10:00
Zhenqiang Chen
5094e8bc0a debug/gdb: disable nls when CT_TOOLCHAIN_ENABLE_NLS is not selected
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
Message-Id: <CACgzC7Bn+WpbgDruNeZ4s1z0x1deF6n4YyS22Dy7p_d1fFDVCA@mail.gmail.com>
PatchWork-Id: 191042
2012-09-29 14:34:15 +08:00
David Holsgrove
f6eeea1881 scripts/gdb: If not building expat for gdb, disable
--with-expat=yes is unconditionally passed to the gdb configure
stage, instead of respecting the ${do_expat} decision.

Disable if not needed. Prevents error building canadian cross;

configure: error: expat is missing or unusable

Where configure stage fails to find expat on the host compiler.

Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Message-Id: <4c4410a2a8aab24a29c5.1349244128@localhost.localdomain>
PatchWork-Id: 188711
2012-10-03 15:59:22 +10:00
Esben Haabendal
651b79e7ce kernel/linux: change m68k/no-mmu linux arch tuple to use -uclinux
GCC requires m68k arch tuples to be *-*-uclinux-* to support Linux on
no-mmu m68k (ColdFire) cpus.

Blackfin arch tuple must be *-*-linux-uclibc for FD_PIC_ELF toolchains,
so we cannot just switch to uclinux for no-mmu Linux toolchains.

Signed-off-by: "Esben Haabendal" <esben@haabendal.dk>
Message-Id: <876271s1ee.fsf@arh128.prevas.dk>
PatchWork-Id: 186976
2012-09-26 09:09:23 +02:00
Zhenqiang Chen
fd26fc9b1d scripts: Use ${CT_TARGET}-strip to strip gdbserver
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
[yann.morin.1998@free.fr: quote variables]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <CACgzC7BU9CPZ2cE+EYqnMe2WNz-wYby6f4tsmjJi715WmPmbWw@mail.gmail.com>
PatchWork-Id: 185303
2012-09-20 11:20:16 +08:00
Jang, Bongseo
f1be07d210 kernel/linux: symlink custom kernel source dir with '-f'
build fails to symlink to custom kernel dir when the build is not the first time
because of 'ln -s' without '-f' option.

Signed-off-by: "Jang, Bongseo" <graycells@gmail.com>
Message-ID: <543e2981f2b723ecd850.1348370892@localhost.localdomain>
PatchWork-ID: 186178
2012-09-23 11:59:28 +09:00
David Holsgrove
395dca5ea8 arch/microblaze: add new architecture
Add Microblaze architecture support.

This depends on EXPERIMENTAL, as upstream projects do not yet
include full support to build a modern microblaze compiler.
This is in the process of being updated, but is not currently
publicly accessible.

Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com>
Message-Id: <9c93e18b3d68b19303f3.1348113870@localhost.localdomain>
PatchWork-ID: 185305
2012-09-20 14:01:38 +10:00
Zhenqiang Chen
649c04594a scripts: strip gdbserver
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2012-09-12 17:42:38 +08:00
Yann E. MORIN"
8c43cdb436 cc/gcc: Add the ability to build gcc from svn
I took some of the svn functionality from eglibc.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
[yann.morin.1998@free.fr: fix the conditional test in build script]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-22 12:26:10 -07:00
Yann E. MORIN"
3127749581 libc/{,e}glibc: remove rude wordings in commetns
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-22 23:11:03 +02:00
Yann E. MORIN"
a7eb2dea72 cc/gcc: cleanup comments from rude wordings
That comes from way back when nothing would work as expected, and I would
easily get heated as soon as anything would break. Sigh, those were the
old days.

Apologies.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-22 18:08:39 +02:00
Bryan Hundven
0997c18f1e debug/expat: Update expat to 2.1.0
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Message-Id: <c59009fdaf23d82822c6.1345364052@flambe.is-a-geek.org>
2012-08-19 01:11:45 -07:00
Bryan Hundven
6e65a05261 scripts: use generic urls for sourceforge
For expat, duma, and strace, use the generic url and 302 to the mirror
instead of trying to download a file from a downed mirror and
failing.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Message-Id: <b69ebeb72fef93c04c84.1345364051@flambe.is-a-geek.org>
2012-08-19 01:09:40 -07:00
Zhenqiang Chen
270b8ddf64 binutils/binutils: CT_BINUTILS_GOLD_THREADED should be CT_BINUTILS_GOLD_THREADS
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2012-08-07 14:03:03 +08:00
Yann E. MORIN"
fa0ca9dfea cc/gcc: remove duplicate code in core pass-1
Whatever the threading model (NPTL, LT...), we build the same
core pass-1 compiler, so there is no need to have a case-esac
construct.

Remove now mis-leading and incorect comment.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-04 23:15:02 +02:00
Yann E. MORIN"
c74fa76e4d cc/gcc: remove now useless condition-variable
Both core pass-1 and -2 compilers are unconditionally built,
so we no longer require a condition variable.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-01 19:07:37 +02:00
Yann E. MORIN"
9d64a6b29e cc/gcc: always build core pass-1
Up until now, all conditions requiring a core pass-1 was when the
threading implementation used was NPTL. So we only built the core
pass-1 when NPTL was used.

Now, things have changed (what? when? Dunno...), and some bare-metal
canadian toolchains fail to build if a core pass-1 is not present.

OTOH, a core pass-1, although not needed for non-NPTL builds, does
no harm at all if it is present.

So, unconditionally build a core pass-1 (but still pass conditional
options to the core backend).

Reported-by: Per Arnold Blaasmo <Per-Arnold.Blaasmo@atmel.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-01 19:02:06 +02:00
Yann E. MORIN"
52b7a1973e complibs/cloog: create missing m4 dir
Because we now patch configure.in and configure, the Makefile quicks
in a re-build rule as the source files are now more recent than the
bundled generated files, and that fails because the m4 directory
is missing, although on some systems where aclocal is not installed,
the re-build rule does nothing (except a warning).

Always create tht directory.

Reported-by: Per Arnold Blaasmo <per-arnold.blaasmo@atmel.com>
[Also thanks to Thomas De Schampheleire <patrickdepinguin@gmail.com>
 for some digging works on this issue]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-07-31 22:27:29 +02:00
Yann E. MORIN"
f8ffee3dda debug/duma: fix download url
Sourceforge has again changed its mirroring system... :-(

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-06-10 23:51:40 +02:00
Yann E. MORIN"
9d8035bbaf debug/gdb: add option to enable/disable the IPA lib for gdbserver
gdbserver >= 7.2 comes with an optional library to use tracepoints, the
In Process Agent (IPA) library, libinproctrace.so.

Currently, we build gdbserver staticaly, but that breaks the build of
the IPA lib.

Add an option to biuld the IPA lib, but not if statically linking.

Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-05-17 17:56:27 +02:00
Yann E. MORIN"
4e8f04012c cc/gcc: do not build manuals in parallel
Reported-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Reported-by: Johannes Stezenbach <js@sig21.net>
Tested-by: Johannes Stezenbach <js@sig21.net>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-05-09 18:17:17 +02:00
Yann E. MORIN"
27e8b280f9 cc/gcc: add option to enable/disable libquadmath
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-05-06 15:32:56 +02:00
Johannes Stezenbach
2aee11ccf2 libc/uClibc: add additional debug level between "minimal" and "all"
During application development it is desirable to enable malloc
debugging and LD_DEBUG support, but the extensive debug spew from
SUPPORT_LD_DEBUG_EARLY is only useful when working on
uClibc's ld.so.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
2012-02-24 16:08:32 +01:00
Yann E. MORIN"
d776140189 cc/gcc: build core compilers for canadian
Currently, we rely on an existing external cross-compiler targetting
the target, to build the C library.

This can pause quite a few problems if that compiler is different from
the one we are building, because it could introduce some ABI issues.

This patch removes this dependency, by building the core compilers
as we do for standard cross, and also by building the binutils and
gcc, for running on the build machine.

This means we no longer need to offer the cross-sompiler selection in
the menuconfig.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-03 22:57:25 +01:00
Yann E. MORIN"
b485733f26 cc/gcc: add build frontend
Bizarrely enough, the core gcc are not enough to be able to build a
canadian cross, and a real, full cross compiler is required so that
the canadian cross can be properly built... WTF?!? Sigh...

Add a build-frontend, as was done for the binutils and the complibs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-04-02 22:54:30 +02:00
Yann E. MORIN"
6471f1598c cc/gcc: frontends are responsible for selecting the list of languages
Do for the final step the same as for the core step: compute the list
of selected langauages from the frontend, not in the backend.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-04-01 19:07:11 +02:00
Yann E. MORIN"
7b360e7a22 cc/gcc: pass the language list to the core backend
As the core backend can be used to also build the bare-metal compiler,
we have to tel it what languages to build.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-15 22:52:51 +02:00
Yann E. MORIN"
1a7cf0ea9e cc/gcc: add language helper function
Add a function that prepares the language configure option.
It is needed in at least two places, some commonalisation is needed. ;-)

Unfortunately, it is no longer possible to print warnings about experimental
languages any more. Anyway, the experimental status is clearly indicated
in the menuconfig. so it should not be a surprise if the build breaks. :-/

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-15 21:42:28 +02:00
Yann E. MORIN"
2f718dd60c complibs: fixup the host complibs install dir
It's easier to have as much as possible stuff in the same place to
ease backup/restore, and make things easier to follow.

Move the host companion libraries install dir as a sub-dir of the
build-tools install dir (but not directly in it, it would break
for canadian or cross-native).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-25 19:04:17 +02:00
Yann E. MORIN"
4a8daa02e3 cc/gcc: cleanup the frontends
A few noop fix-ups:
 - fix the comments in core pass-1
 - commonalise settings that can be

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-25 19:04:00 +02:00
Yann E. MORIN"
ae3b564fb8 complibs: add frontends for building to run on the build machine
In canadian-cross, we need the companion libraries running on the
build machine, to be able to build the two core gcc.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-24 23:53:14 +02:00
Yann E. MORIN"
518a1ff137 binutils: add frontends for building to run on the build machine
In canadian-cross, we need binutils running on the build machine to be
able to build the target C library.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-24 23:52:28 +02:00
Yann E. MORIN"
2e3cc45633 complibs: split companion libraries to backend/frontend, a-la cc_core
Move the actual complibs codes to backend functions that builds the
required combo of build/host/target as requested by a frontend.

This split is currently a no-op, but is required for the upcoming
canadian-cross rework, where we'll be needing to build the complibs
twice, one for build/build, and one for build/host.

This applies to the six companion libraries:
 - GMP
 - MPFR
 - PPL
 - Cloog/PPL
 - MPC
 - libelf

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 18:56:30 +02:00
Yann E. MORIN"
533e5c128c binutils: split binutils to backend/frontend, a-la cc_core
Move the actual binutils code to a backend function that builds the
required combo of build/host/target as requested by a frontend.

This split is currently a no-op, but is required for the upcoming
canadian-cross rework, where we'll be needing to build two binutils,
one for build/build/target, and one for build/host/target.

This applies to the three binutils:
 - GNU binutils
 - elf2flt
 - sstrip

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 18:29:35 +02:00
Yann E. MORIN"
08161250ed cc/gcc: always build core compilers to run on the build machine
The core compilers are used to build the C library, so they
should always run on the build machine, not on the host.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 18:28:19 +02:00
Yann E. MORIN"
e960f66953 cc/gcc: install the core compilers in the build-tools dir
There really is no good reason to install the core compilers in their
own places, one for each pass. We can install them with the other
build tools.

Also, this implies that:
 - there are fewer directories to save/restore
 - there are fewer symlinks to create for binutils
 - the PATH is shorter

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-01 17:49:44 +01:00
Yann E. MORIN"
ad1aa7079e binutils/binutils: don't install symlinks when in canadian
When building a canadian-cross, the binutils are not executable on
the build machine, so there is no point in installing the symlinks
in the gcc static/shared install dirs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-02 21:38:12 +01:00
Yann E. MORIN"
c427fcce6b debug/strace: fix download URL
strace upstream location has slightly changed.

Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-03-12 21:19:26 +01:00
Yann E. MORIN"
ffee93e4d2 docs: update my e-mail
Since anciens.enib.fr has been dead for two months now, without any
hope of recovery, update my e-mail to point to @free.fr instead.

Reported-by: "Bryan Hundven" <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-03-06 21:36:10 +01:00
Yann E. MORIN"
bf2726cb9f binutils/binutils: rename function that build target libraries
Prepare for the incoming build/host/target frontends.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-03-04 17:31:23 +01:00
Yann E. MORIN"
354914c49a complibs/libelf: rename libelf for target function
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-03 18:39:11 +01:00
Zhenqiang Chen
c6caf866f9 cc/gcc: Update core_prefix_dir to prefix.
core_prefix_dir is not defined. It should be prefix.

Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2012-02-27 15:24:18 +08:00
Yann E. MORIN"
fec8e7b566 cc-gcc: the frontends are responsible for mkdir/chdir
The build dir are created depending on the host (host for that specific
backend, not host for the toolchain). Only the frontends know what host
this is, so only the frontends can create non-ambiguous dirs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-24 19:35:24 +02:00
Yann E. MORIN"
21b1d79706 libc/glibc: use CT_mkdir_pushd helper
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-01 17:35:10 +01:00
Yann E. MORIN"
b990202ced cc/gcc: fix core backend's API doc
Make it more in line with the final backend's doc,
and make it simpler as well.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-24 19:24:02 +02:00
Yann E. MORIN"
58337ba708 cc/gcc: no need to build a static core pass-1 gcc for baremetal
The only user of the static core compiler in pass-1 was the newlib
C library. Now that it is build in a later step, we do no longer
need to build a static core compiler in pass-1.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-24 19:33:04 +02:00
Yann E. MORIN"
70659870b7 libc/newlib: build newlib in the proper step
Currently, newlib is built in the start_file step, which is wrong, but was
needed when the baremetal integration was... well, 'unfinished'.

Now that we build the baremetal compiler from the final cc step, and a
proper core gcc in pass-1 and pass-2, we can move the newlib build to the
step do_libc, where it belongs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 18:01:28 +02:00
Yann E. MORIN"
f6de807fc0 cc/gcc: comonalise the manuals build decision
Let the final frontend decide whether or not to build the manuals.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-02-13 22:18:02 +01:00
Yann E. MORIN"
33cdb19ed5 cc/gcc: do not use the core pass-2 to build the baremetal compiler
In case we build a baremetal compiler, use the standard passes:
 - core_cc is used to build the C library;
 - as such, it is meant to run on build, not host;
 - the final compiler is meant to run on host;

As the current final compiler step can not build a baremetal compiler,
call the core backend from the final step.

NB: Currently, newlib is built during the start_files pass, so we have
to have a core compiler by then... Once we can build the baremetal
compiler from the final cc step, then we can move the newlib build to
the proper step, and then get rid of the core pass-1 static compiler...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 22:43:07 +02:00
Yann E. MORIN"
40dda92f57 cc/gcc: add the backend/frontend infra for final gcc
Currently, we issue the bare-metal compiler from the pass_1 & pass_2
core compilers, because the final gcc breaks while doing so.

This implies we have to build some libces during the start_files step,
instead of the standard libc step. This is the case for newlib.

By adding a backend/frontend infra to the final gcc, we can abstract
what backend to call: the standard backend for non-bare-metal gcc,
and the core backend for bare-metal.

This patch is just an no-op, it just adds the final backend and
frontend without changing the way bare-metal is built, to come in a
subsequent patch.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 22:46:47 +02:00
Yann E. MORIN"
35f50ca6c2 cc/gcc: add 'cflags' paramater to the core backend
As the core backend is used to generate the bare-metal compiler,
we need to pass it the host CFLAGS.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-23 21:11:26 +02:00
Yann E. MORIN"
6a29db1593 cc/gcc: add host parameter to core compiler build process
Tell the core compiler what host it should run on (instead of
hard-coding runing on CT_HOST).

No functional change so far, switching between CT_HOST and CT_BUILD
will come in a following patch.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 18:10:53 +02:00
Yann E. MORIN"
cf7fbfa839 cc/gcc: pass the install prefix to the core passes
Currently, the discrimination on the core compilers prefixes depends on
the type of core compiler to build.

This is not correct, and the caller of the core backend should specify
the prefix.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 17:56:22 +02:00
Yann E. MORIN"
f87a5d6d19 cc/gcc: pass the companion libs prefix to cc_core
In case of canadian-cross, the companion libraries are not the same for
the core cc (they run on 'build') as they are for the final cc (they run
on 'host').

Prepare for this differentiation (coming later), while retaining the
current behavior (to use the same compblibs).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 17:54:21 +02:00
Yann E. MORIN"
02a77ea464 cc/gcc: rename the core backend function
Rename the core backend function to do_cc_core_backend, to
make it explicit it is a backend.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-20 18:08:00 +01:00
Yann E. MORIN"
e837554caa cc/gcc: simplify calls to core backend
The core backend is going to have more parameters in the upcoming
patches, so it will be a bit complex to handle.

Introduce an array-variable that is filled by the different code-paths
with the required values.

This makes the code easier to read and maintain.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 15:48:27 +02:00
Yann E. MORIN"
e9de7fc0af cc/gcc: do not consume parameters when parsing them
The current construct consumes the parameters while we parse them.
Change this to a construct that does not consume the parameters.

This has no impact on gcc, but is done for homogeneity with other
components (eg. glibc).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-02-13 21:51:48 +01:00
Yann E. MORIN"
e1899ce97c libc/glibc: do not consume parameters when parsing them
Currently, there are two constructs used to parse arguments in
glibc backends, one that consumes args as they are parsed, and
one that does not.

Always use the construct that does not eat args as they are parsed.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-02-13 21:47:25 +01:00
Yann E. MORIN"
b02975d5e8 scripts: fix download from sourceforge
It seems sourceforge changed yet again the way to download files.
This time, no longer use their 'mesh' thingy, and hard-code the
server to use in the URL... Sigh... :-(

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-02-05 23:26:55 +01:00
Yann E. MORIN"
145d048e58 debug/gdb: --disable-sim for CT_GDB_CROSS.
sim was already disabled for CT_GDB_NATIVE.

Reviewed-by: Michael Hope
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
[yann.morin.1998@anciens.enib.fr: make it a config option]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-18 16:22:52 +08:00
Benoît Thébaudeau"
f173e77e32 complibs/cloog: fix linking with libm
In Ubuntu 11.04 and 11.10, the default options for ld have changed.
--no-copy-dt-needed-entries and --as-needed are now enabled by default, which
causes errors like:

[EXTRA]    Checking CLooG/ppl
[DEBUG]    ==> Executing: 'make' '-j3' '-s' 'check'
[ALL  ]    Making check in .
[ALL  ]    config.status: creating include/cloog/cloog-config.h
[ALL  ]    config.status: include/cloog/cloog-config.h is unchanged
[ALL  ]    libtool: link: i686-build_pc-linux-gnu-gcc -Wall -fomit-frame-pointer
 -pipe -o cloog cloog.o  -L/<snip>/build/static/lib ./.libs/libcloog.a -lm
 /<snip>/build/static/lib/libppl_c.a /<snip>/build/static/lib/libpwl.a
 /<snip>/build/static/lib/libppl.a /<snip>/build/static/lib/libgmpxx.a
 /<snip>/build/static/lib/libgmp.a -lstdc++
[ALL  ]    /usr/bin/ld: /<snip>/build/static/lib/libppl.a(MIP_Problem.o):
 undefined reference to symbol 'sqrt@@GLIBC_2.0'
[ALL  ]    /usr/bin/ld: note: 'sqrt@@GLIBC_2.0' is defined in DSO
 /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libm.so so try adding
 it to the linker command line
[ALL  ]    /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libm.so:
 could not read symbols: Invalid operation
[ALL  ]    collect2: ld returned 1 exit status
[ERROR]    make[2]: *** [cloog] Error 1
[ERROR]    make[1]: *** [check-recursive] Error 1

See:
https://wiki.ubuntu.com/NattyNarwhal/ToolchainTransition

This patch fixes these errors by placing '-lm' at the right place on the command
line as libppl requires libm when linking cloog.

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
2012-01-27 13:31:16 +01:00
Yann E. MORIN"
fd09c5ab15 cc/gcc: copy file with 'cp -v', it rotates the progress bar
Installing the gcc test-suite can take a bit of time, so the
progress bar is currently not rotating because there is no
output during the copy. For an unsuspecting user, it could
mean the process hung.

With 'cp -v', the progress bar now rotates.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-01 22:54:37 +01:00
Yann E. MORIN"
af32c9331b libc/glibc: cleanup CFLAGS handling
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-12-28 17:05:46 +01:00
Yann E. MORIN"
6c47c0077a libc/glibc: remove multi-dir
Remove the sysroot/${multi_dir} directory after the libc install.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-12-27 16:11:34 +01:00
Yann E. MORIN"
3a31d01b49 libc/glibc: allow to selectively install headers and/or start-files
When doing multilib, we only need the headers from the default variant,
but we need the startfiles for each variants.

Allow the frontend to specify either one, or both.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-12-27 14:45:03 +01:00
Yann E. MORIN"
9d53aa6475 libc/glibc: add multilib-cacpable backend
For mutlilib, the C library must be built once for each variants.
Special care must be taken to put the resulting libraries in
the proper places.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-23 00:11:36 +01:00
Yann E. MORIN"
a5006075b7 libc/glibc: fix code formatting
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-22 00:51:37 +01:00
Yann E. MORIN"
cfb908d2ee libc/glib: pass installation subdir to backend
When building a multilib variant, install in a separate directory, to
avoid clutering the default or any other variant.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-22 00:16:37 +01:00
Yann E. MORIN"
170091aa2a libc/glibc: set the endian option according to extra CFLAGS
When building a multilib, some extra CFLAGS can override the
default config option. This is the case for the endianness
selection.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-22 00:11:51 +01:00
Yann E. MORIN"
a2e7a536e0 libc/glibc: set the float option according to extra CFLAGS
When building a multilib, some extra CFLAGS can override the
default config option. This is the case for the floating point
selection.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-21 23:56:53 +01:00
Yann E. MORIN"
2d5dc881e3 libc/glibc: add extra CFLAGS when building the C library
When building multilib, we need extra CFLAGS that tell the compiler
to use non-default settings (eg. big/little endian, hard/soft float,
-march/cpu/tune flags, and so on...).

We have to pass these flags to the build.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-21 23:33:08 +01:00
Yann E. MORIN"
d6f8cd9b0a libc/glibc: no default mode for backend
The caller SHALL explicitly ask for a nmode, and not rely on a default mode.
That's what actually happens, so we can get rid of the default.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-12-13 11:51:07 +01:00
Yann E. MORIN"
81dc791f83 cc/gcc: print supported multilibs
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-12-30 21:43:10 +01:00
Yann E. MORIN"
61ce016e46 cc/gcc: build multilib
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-23 23:51:07 +01:00
Yann E. MORIN"
c23fe1a32a binutils/binutils: build multilib
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-23 23:27:12 +01:00
Yann E. MORIN"
92744ca68f cc/gcc: add option to use system zlib
In some cases, it might be desirable to use the system zlib

Eg. because latest gcc seem to be totally borked when it comes
to multilib, and tries to build a multilib host zlib, when it
is *absolutely* *not* needed: we want mulitlib on the target,
not on the host! Sigh... :-(

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-12-31 16:23:27 +01:00
Benoît Thébaudeau"
bcc636057f libc/eglibc: fix localedef 2.14 build
The localedef of eglibc 2.14 requires NOT_IN_libc to be defined in order to
compile intl/l10nflist.c.

This is because localedef is built separately from eglibc and uses some parts of
eglibc that don't compile in standalone without this preprocessor definition.

This fixes the following error:

[ALL  ]    gcc  -g -O2 -DNO_SYSCONF -DNO_UNCOMPRESS
 -DLOCALE_PATH='"/usr/lib/locale:/usr/share/i18n"'
 -DLOCALEDIR='"/usr/lib/locale"' -DLOCALE_ALIAS_PATH='"/usr/share/locale"'
 -DCHARMAP_PATH='"/usr/share/i18n/charmaps"'
 -DREPERTOIREMAP_PATH='"/usr/share/i18n/repertoiremaps"'
 -DLOCSRCDIR='"/usr/share/i18n/locales"' -Iglibc/locale/programs -Iglibc/locale
 -I/<snip>/.build/src/eglibc-localedef-2_14/include
 -I/<snip>/.build/src/eglibc-localedef-2_14 -I.
 -include /<snip>/.build/src/eglibc-localedef-2_14/include/always.h -Wall
 -Wno-format -c -o locarchive.o glibc/locale/programs/locarchive.c
[ALL  ]    glibc/locale/programs/locarchive.c: In function 'enlarge_archive':
[ALL  ]    glibc/locale/programs/locarchive.c:303:21: warning: variable
 'oldlocrectab' set but not used [-Wunused-but-set-variable]
[ALL  ]    In file included from glibc/locale/programs/locarchive.c:651:0:
[ALL  ]    glibc/locale/programs/../../intl/l10nflist.c: In function
 '_nl_normalize_codeset':
[ERROR]    glibc/locale/programs/../../intl/l10nflist.c:342:9: error:
 '_nl_C_locobj_ptr' undeclared (first use in this function)
[ALL  ]    glibc/locale/programs/../../intl/l10nflist.c:342:9: note: each
 undeclared identifier is reported only once for each function it appears in
[ALL  ]    glibc/locale/programs/locarchive.c: In function
 'add_locales_to_archive':
[ALL  ]    glibc/locale/programs/locarchive.c:1450:7: warning: passing argument
 1 of '__xpg_basename' discards 'const' qualifier from pointer target type
 [enabled by default]
[ALL  ]    /usr/include/libgen.h:35:14: note: expected 'char *' but argument is
 of type 'const char *'
[ERROR]    make[1]: *** [locarchive.o] Error 1

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
2011-12-14 16:55:22 +01:00
Yann E. MORIN"
d68d3cc408 libc/newlib: build manual for newlib
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
[yann.morin.1998@anciens.enib.fr: copy with a single call to 'cp']
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-12-15 15:20:33 +08:00
Yann E. MORIN"
06daaa7cc4 libc/glibc: document the glibc backend arguments
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-21 23:35:21 +01:00
Yann E. MORIN"
7637254dfe libc/glibc: create build dir using libc_mode
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-21 23:26:18 +01:00
Benoît Thébaudeau"
9c6ce95674 binutils/binutils: fix extra config array variable name
The changeset 2467 #200836977ce6 missed renaming one occurrence of
CT_BINUTILS_EXTRA_CONFIG to CT_BINUTILS_EXTRA_CONFIG_ARRAY, which is fixed by
this patch.

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
2011-12-12 20:24:05 +01:00
Benoît Thébaudeau"
c6c56296dc kernel/linux: fix missing quote
Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
2011-12-12 21:47:08 +01:00
Yann E. MORIN"
9b92f56f2f kernel/linux: add alternate download locations
Some longterm versions are not in the usual directory.
Account for these new locations.

Get rid of the mirror location, now that the main kernel site is
(almost) back to normal operations.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-12-12 00:01:54 +01:00
Zhenqiang Chen
381366c8b6 libc/newlib: remove hard-coded "-O"
With hard-coded "-O", users can not customize CFLAGS_FOR_TARGET
by CT_TARGET_CFLAGS. If "-O" is needed, users can input it in
CT_TARGET_CFLAGS. By default, "-Os" is enabled.

Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2011-11-28 16:05:23 +08:00
Yann E. MORIN"
3980ce9905 debug/gdb: add extra config for gdb cross.
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
[yann.morin.1998@anciens.enib.fr: prompt rewording, as suggested by M. Hope]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-23 13:15:27 +08:00
Zhenqiang Chen
91eb66a629 libc/newlib: add option to optimise for size
Add an option to build with -Os instead of the default -O.

Reviewed-by: Michael Hope
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2011-11-22 14:18:14 +08:00
Zhenqiang Chen
f8d8029026 cc/gcc: Apply CT_CC_GCC_DISABLE_PCH to do_cc_core.
Otherwise, users have to input --disable-libstdcxx-pch option
when building bare-metal CANADIAN C++ compiler.

Reviewed-by: Michael Hope
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2011-11-18 11:32:50 +08:00
Zhenqiang Chen
e714fd6a14 libc/newlib: Add extra config for newlib.
So users can input config like --enable-newlib-register-fini.

Reviewed-by: Michael Hope
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2011-11-18 11:47:30 +08:00
Zhenqiang Chen
e16b3b9e52 cc/gcc: handle NLS option
Add --disable-nls config when option "Enable nls" is not selected.

Reviewed-by: Michael Hope
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2011-11-17 18:00:28 +08:00
Zhenqiang Chen
46d2621f77 binutils/binutils: handle NLS option
Add --disable-nls config when option "Enable nls" is not selected.

Reviewed-by: Michael Hope
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2011-11-17 17:59:44 +08:00
Yann E. MORIN"
1185c9bf05 libc/uClibc: use endian string in tests
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-20 21:08:27 +01:00
Yann E. MORIN"
756d7e704e libc/eglibc: use endian string in tests
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-20 21:06:36 +01:00
Yann E. MORIN"
0056e55e74 arch/sh: use endian string in tests
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-20 21:05:36 +01:00
Yann E. MORIN"
dc5048b6d2 arch/mips: use endian string in tests
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-20 21:04:31 +01:00
Yann E. MORIN"
74d555b2c3 scripts: add support for building manuals
Add support for building the HTML and PDF manuals for the major
components.  Implement for binutils, GCC, GDB, and GLIBC.

Always build all manuals and install a subset.  Be explicit about the
subset to reduce the clutter and to avoid getting copies of common
manuals like bfd from all of the sourceware based components.  Downside of
being explicit is that you need to update it when a new component
comes along.

Build the manuals as part of the last GCC build, namely 'cc' for glibc
based ones and cc_core_pass_2 for baremetal.

An example of the output is at:
 http://people.linaro.org/~michaelh/incoming/crosstool-NG/

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: depends on ! remove docs; gold manual install]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-16 10:06:21 +13:00
Yann E. MORIN"
bc94e564de libc/uClibc: use the floating-point string option in tests
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-14 18:54:37 +01:00
Yann E. MORIN"
da09907c00 arch/sh: use the floating-point string option in tests
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-14 18:51:20 +01:00
Titus von Boxberg
76b0fcc433 arch/x86: prescott is an i686
let CT_ARCH_ARCH=prescott result in a i686 tuple prefix

Signed-off-by: Titus von Boxberg <titus@v9g.de>
2011-11-17 14:18:44 +01:00
Yann E. MORIN"
5bd048be2c complibs/cloog: auto-reconf for 0.15.10 and later
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-16 15:10:29 +02:00
Yann E. MORIN"
fcd48e80f5 complibs/cloog: fix extraction
In the early days, cloog-ppl was bizarrely packaged: the first tarball
did not contain the version in the name of the extracted directory, so
we had to play tricks.

Nowadays, however, the first component of the path are stripped when
extracting a  tarball, which means that the created directory will
always be properly named. So, our old tricks do no longer work, and
worse, they break the build.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-16 14:58:29 +02:00
Yann E. MORIN"
2183a850e2 debug/gdb: fix tic install path, tell ncurses where to find it
ncurses 5.9 wants tic to be either one of:
 - $TIC_PATH
 - /usr/bin/tic

Of course, se do not want the latter, for it can be incompatible if the
ncurses in the build system is too old (eg. RHEL 5.6, Debian Lenny...).
So, force TIC_PATH to the location of our own tic.

Also, install tic alongside the other build tools, not in a sub-dir
of the toolchain installation dir.

Signed-off-by: Willy Tarreau <w@1wt.eu>
[yann.morin.1998@anciens.enib.fr: install in builtools/bin, move TIC_PATH]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-15 19:11:57 +01:00
Yann E. MORIN"
4fc56b1d14 arch: add softfp support
Some architectures support a mixed hard/soft floating point, where
the compiler emits hardware floating point instructions, but passes
the operands in core (aka integer) registers.

For example, ARM supports this mode (to come in the next changeset).

Add support for softfp cross compilers to the GCC and GLIBC
configuration. Needed for Ubuntu and other distros that are softfp.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: split the original patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-19 15:27:32 +13:00
Yann E. MORIN"
28e54116c3 scripts: introduce float type as a string
With the upcoming softfp support, the case..esac test would become
a bit convoluted if it were to test three different booleans.

Introduce a new blind string config option that defaults to the
selected floating point type used.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: split the original patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-19 15:27:32 +13:00
Yann E. MORIN"
c8f54b8ca7 arch/powerpc: fix tuple for uClibc
Changeset #7c288c777455 broke the tuple for uClibc-based
powerpc toolchains, by unconditionally  forcing CT_TARGET_SYS
to "gnu".

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-16 17:52:33 +02:00
Yann E. MORIN"
315b15109f libc/glibc: run ./configure in CONFIG_SHELL
Tremendously helps when running on at least Ubuntu, with dash as
the system shell (ie. /bin/sh points to dash).

Reported by a few people, of which:
  leming, ccct and ccole on IRC

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-11 22:21:48 +02:00
Yann E. MORIN"
f52ab9bddb complibs/cloog: catch autogen.sh's output
Run autogen.sh through CT_DoExecLog to catch its output.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-10 00:00:58 +02:00
Yann E. MORIN"
c7a396f9b7 debug/gdb: new option to enable/disable use of python
Add a new option to enable/disable the Python scripting in gdb.
Hide the option (ie. disable it) when statically linking the cross-gdb.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-08 22:57:21 +02:00
Yann E. MORIN"
8e715ea4ba binutils/binutils: ensure gold is staticaly-linked if needed
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-09 15:34:16 +02:00
Yann E. MORIN"
85a85d3cc7 libc/glibc: add log messages for glibc addons dirs and symlinks
Signed-off-by: "Esben Haabendal" <esben.haabendal@prevas.dk>
[yann.morin.1998@anciens.enib.fr: fix linewrap-carnage]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-07 15:23:47 +02:00
Michael Hope
1215a8fbcc Pass CXXFLAGS to binutils/gold.
The GOLD linker is written in C++.  Pass CT_CFLAGS_FOR_HOST as
CXXFLAGS to configure so that any host specific flags are passed
through.

It feels a bit funny passing CFLAGS as CXXFLAGS, but the PPL and GCC
target rules already do the same.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
2011-10-05 14:15:45 +13:00
Yann E. MORIN"
52c5b06255 kernel/linux: prepare for 3.1 and above
The real upstream location is not in the '3.0' directory, but
in the '3.x' directory.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-09-26 22:59:14 +02:00
Yann E. MORIN"
bcb784e826 kernel/linux: use a custom kernel source directory
Allows using either a tarball or a directory as the custom kernel
source location.

Signed-off-by: Vincent BENOIT <sinseman44@gmail.com>
[yann.morin.1998@anciens.enib.fr: fix space damage, detailed commit message]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-09-22 22:49:38 +02:00
Yann E. MORIN"
e8fc5b3407 kernel/linux: add alternate download locations
Since kernel.org is dead, and there is no announced or known estimated
time or return to normality, it is impossible to download any kernel at
this time.

Add a known-working mirror.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-09-21 22:42:35 +02:00
Yann E. MORIN"
53e8799ece cc/gcc: speed up the build a little bit
Even if the current process is highly parallel, crosstool-NG spends most
of its time in single-job steps on fast machines (with a 12-CPU system,
I approximate the parallel vs. non-parallel time to be in the order os
1 to 3; that is crostool-NG spends two-thirds of its time running
non-parallel jobs).

Some steps to build gcc can be paralleled, gaining a litle bit of time
on the whole compilation.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-09-14 12:59:17 +02:00
Yann E. MORIN"
6fea2cfd09 gcc: add support for the PowerPC EABI
Signed-off-by: Mircea Gherzan <mgherzan@gmail.com>
[yann.morin.1998@anciens.enib.fr: rm trailing space]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-09-17 14:30:52 +02:00
Kévin PETIT
1097bea2e0 libc/newlib: add a config option allowing to disable builtin syscalls
Allows to choose if one wants to keep or not the syscalls that are provided with
newlib. It passes the --disable-newlib-supplied-syscalls or
--enable-newlib-supplied-syscalls to the configure script. If one chooses to
disable the builtin syscalls, he/she will have to write his/her own. This can
be usefull to port newlib to a new platform/board.

Signed-off-by: Kévin PETIT <kpet@free.fr>
2011-08-28 20:12:26 +02:00
Titus von Boxberg"
68cd6e6d26 debug/ltrace: Fix HOST_OS and ar
HOST_OS really is the target OS. Allow setting it for configure
via an environment variable.
libltrace.a should have an index:
Allow ar to be set as an environment variable, and generate
an index in this lib.

Reported-by: "Guylhem Aznar" <crossgcc@guylhem.net>
Signed-off-by: "Titus von Boxberg" <titus@v9g.de>
2011-08-22 09:26:02 +02:00
Titus von Boxberg"
aae55bbcc0 complibs/libelf: use target ranlib
For portability, the right ranlib for the target must be passed to
libelf's configure.

Signed-off-by: "Titus von Boxberg" <titus@v9g.de>
2011-08-21 17:54:12 +02:00
Yann E. MORIN"
307400f4ca debug/gdb: we don't care if the host tic is shared or static
Because we need our own host tic, we have to build it; and we do build
it statically for now.

But as MacOS/Darwin/Whatever-you-call-it does not support static linking
(what a shame!), it fails.

Anyway, we don't really care it being shared, in the end.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-17 23:53:49 +02:00
Yann E. MORIN"
2c98fef576 debug/gdb: use ncurses-5.9
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-18 23:52:47 +02:00
Yann E. MORIN"
340b25b7ad kernel/linux: fix using custom tarball
The custom-tarball symlink was created in CT_SRC_DIR, when it
should be created in CT_TARBALLS_DIR.

Reported-by: Guylhem Aznar <crossgcc@guylhem.net>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-16 22:30:00 +02:00
Yann E. MORIN"
4144a003ab kernel/linux: remove check for lzma tarballs
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-14 16:07:03 +02:00
Yann E. MORIN"
59499a2cda kernel/linux: simplify custom tarball handling
Simplify the way the custom tarball is handled:
- fake version="custom"
- at download, simply link the custom tarball to:
    "linux-custom.${custom_extension}"
- at extract, the above allows to simply extract "linux-${LINUX_VERSION}"
  where LINUX_VERISON is set to the fake version="custom"

Not that much convoluted, in fact... :-/

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-14 19:59:02 +02:00
Yann E. MORIN"
b021021fec libc/uClibc: force use of ctor/dtor
Although ctor/dtor do not seem strictly required, missing them proves
rather inconvenient, as ld can't link binaries.

Reported-by: John Spencer <maillist-uclibc@barfooze.de> (sh4rm4 on IRC)
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-13 00:05:51 +02:00
Benoît THÉBAUDEAU"
5938837633 libc: remove unneeded glibc/eglibc common functions
do_libc_locales_extract() and do_libc_locales() in glibc-eglibc.sh-common have
been overridden for both glibc and eglibc, so they can now be removed, which
this patch does.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-07-29 15:30:58 +02:00
Benoît THÉBAUDEAU"
568251c281 libc/glibc: add partial support for locales
This patch adds partial support for glibc locales.

For now, it only generates the appropriate locales when the host and the target
have the same endianness and uint32_t alignment.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-07-29 15:30:53 +02:00
Benoît THÉBAUDEAU"
a88d3d7e7c libc/eglibc: add support for locales
This patch adds support for eglibc locales.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-07-29 14:42:20 +02:00
Benoît THÉBAUDEAU"
d44205998b libc: create an infrastructure to build and install the libc locales
This patch adds a common glibc/eglibc infrastructure to build and install the
libc locales.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-07-29 13:25:57 +02:00
Yann E. MORIN"
f0b0c6666f libc/mingw: fix mingw source dirs
Someof the mingw32 source tarballs have an appended '-src' after the
version.

Since changeset #6e1412ba8da9 (scripts/functions: force extract folder
to archive basename), it means mingw tarballs get extracted in a directory
ending with '-src'.

Fix that.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-01 00:16:12 +02:00
Yann E. MORIN"
03b1bc0302 libc/uclibc: fix src dir location
Now that we akways extract the tarballs in a sane location (see changeset
#6e1412ba8da9: scripts/functions: force extract folder to archive basename),
the uClibc snapshot dir now has the date (as version) in it, eg.:
  uClibc-20100710

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-31 22:07:08 +02:00
Yann E. MORIN"
32ac6af49f debug/gdb: don;t install sample gdbinit for old versions
Only starting with gdb-7 does installing the gdbinit sample makes senses.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-30 00:05:53 +02:00
Benoît THÉBAUDEAU"
2ea05ecaa7 scripts/libc: do not build add-ons by default
Currently, no --enable-add-ons option is passed to libc configure when
"$(do_libc_add_ons_list ,)" is empty, which makes configure automatically search
for present add-ons. In that case, all present add-ons are built, although
no add-on was selected by the user in the config. Moreover, this can make the
configure fail if some non-standard add-ons like eglibc-localedef are present.

This behavior also leads to an inconsistency from a user point of view between
the following cases:
 - LIBC_ADDONS_LIST="", LIBC_GLIBC_USE_PORTS=n and THREADS="none" in the config,
   which makes "$(do_libc_add_ons_list ,)" return "", so all present add-ons
   are built.
 - LIBC_ADDONS_LIST="", LIBC_GLIBC_USE_PORTS=n and THREADS!="none" in the
   config, which makes "$(do_libc_add_ons_list ,)" return the add-on supporting
   the chosen threading implementation, e.g. "nptl", so only this add-on is
   built.

This patch disables the building of all add-ons in that case.

It is still possible to build all present add-ons by adding --enable-add-ons to
LIBC_GLIBC_EXTRA_CONFIG_ARRAY.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-07-28 22:09:31 +02:00
Yann E. MORIN"
82ba904b90 debug/gdb: install gdbinit sample file
gdb needs to know where to find the libstdc++ helper python script
to do, well, whatever it has to do with it...

We can't install that in the user's ~/.gdbinit, it's too complex to
handle all the cases. Moreover, if the user is using more than one
toolchain, we can't put all that stuff in there...

Just provide a sample config file the user can adapt to his/her
own needs.

Thanks go to Khem RAJ for providing such a hint:
    http://sourceware.org/ml/crossgcc/2011-07/msg00026.html

Reported-by: ANDY KENNEDY <ANDY.KENNEDY@adtran.com>
CC: Khem Raj <raj.khem@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-24 20:30:52 +02:00
Yann E. MORIN"
c4d628f257 kernel/linux: prepare to handle 3.x
The place to get 3.x has changed; the version scheme has changed.

No need to be overkill, just support 3.x; 4.x is not even dreamt of.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-22 21:45:07 +02:00
Yann E. MORIN"
30ad622618 misc: fix typos
Reported-by: "Antony N. Pavlov" <antony@niisi.msk.ru>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 16:54:50 +02:00
Yann E. MORIN"
e6c749113f scripts, cc/gcc: do not fail on existing symlinks or build.log
If the user builds a toolchain over an existing one, so, without removing
CT_PREFIX_DIR, the build fails as the symlinks already exist, as does the
build.log.

This can also happen (for build.log) if the user first ran in download-
or extract-only.

Patch (with no SoB) originally from:
  Phil Wilshire <phil.wilshire@overturenetworks.com>

Modified by me as it did not apply cleanly.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-12 23:52:24 +02:00
Yann E. MORIN"
5e3015a71c cc/gcc: do not build libgomp or libmudflap in the core steps
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-15 00:09:59 +02:00
Yann E. MORIN"
21247bddbf scripts/internals: do not remove lib{32,64}/ symlinks after build
During the build, we create lib{32,64}/ symlinks out of the sysroot.
In some cases (eg. mingw32 target), these symlinks are still required
when running the toolchain. For other combinations, the symlinks are
without incidence, so they can be safely kept after the build.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-15 00:22:42 +02:00
Yann E. MORIN"
96ab98a14b libc/glibc: fix passing args with spaces when calling backend
Spaces in arguments to the glibc backend were not handled.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-09 19:40:24 +02:00
Yann E. MORIN"
b491627228 cc/gcc: fix passing args with spaces when calling core gcc
Spaces in arguments to the core gcc backend were not handled.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-15 00:05:53 +02:00
Yann E. MORIN"
69f9485343 cc/gcc: fix non-MIPS builds
The new MIPS-specific options are not valid for other targets.
Also, move the arch-specific setting lower in the extra_config setting.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-03 22:32:36 +02:00
Yann E. MORIN"
d2d948a4ad cc/gcc: add MIPS spercific configure options
Add the following MIPS specific options when configuring gcc:
  --with(out)-llsc
  --with(out)-synci
  --with(out)-mips-plt
  --with-divide=type

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-27 18:04:50 +02:00
Yann E. MORIN"
71d5c495e9 cc/gcc: add option for linker hash style
Add an option to specify the hash type that gcc will ask the linker to use.
It is a provision for the upcoming 4.7, as no version currently supports it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-27 15:15:00 +02:00
Yann E. MORIN"
9c8bde853c cc/gcc: add build-id option
Add an option to configure gcc with --enable-linker-build-id.

Reported-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-27 13:52:15 +02:00
Yann E. MORIN"
2dfb4412bf libc/eglibc: Add option that allows for getting svn over http://
Instead of getting eglibc over standard svn://svn.eglibc.org
Add an option that allows the user to get source from
http://www.eglibc.org/svn

This is useful if you are behind a firewall or proxy.
If you are behind a proxy, don't forget to configure
${HOME}/.subversion/servers

In the [global] section setup your proxy configuration.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
[yann.morin.1998@anciens.enib.fr: removed useless 'default n']
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-30 18:14:01 +02:00
Yann E. MORIN"
7197a56ae6 cc/gcc: remove --enable-symver option
That option is coming from the original crosstool, and is not entirely
understand here.

Moreover, it breaks with newer gcc-s: 4.6.1 now breaks while configuring
libjava (and probably some other libs as well, untested).

There is an related bug report to the gcc BZ:
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49555

If need be, the old behavior can be restored with:
  CC_CORE_EXTRA_CONFIG_ARRAY="--enable-symver=gnu"
  CC_EXTRA_CONFIG_ARRAY="--enable-symver=gnu"

Reported-by: Bryan Hundven <bryanhundven@gmail.com>
Reviewed-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-28 23:46:04 +02:00
Bryan Hundven
6940a6c0eb glibc: Refactor startfiles/headers into do_libc_backend()
Refactor the contents of 'do_libc_start_files()' and 'do_libc()' into a
parameterized 'do_libc_backend()'. 'do_libc_start_files()' and 'do_libc()'
call 'do_libc_backend()' with either 'libc_mode=startfiles' or
'libc_mode=final' (respectively) so that the startfiles/headers and
the final libc builds are configured and built with the same options.

One example of where this is needed is when building a mips toolchain.
Previously, if you were building an n32 toolchain, you wouldn't have
noticed an issue, because if '-mabi' is not in CFLAGS, n32 is the
default:

http://sourceware.org/git/?p=glibc-ports.git;a=blob;f=sysdeps/mips/preconfigure;hb=HEAD

But when trying to build an o32 or n64 toolchain the build would
have failed. This is because (e)glibc expects "-mabi={o32,n32,n64}" to be
in CFLAGS, but was not previously provided in 'do_libc_start_files()'.
The build failure would happen in the shared-core gcc when it tries to
configure an n64 or o32 gcc with an n32 libc.

A simpler solution would have been to just add TARGET_CFLAGS to configure
in 'do_libc_start_files()', but this way makes configure and make
consistent for both steps.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2011-06-26 03:26:54 -07:00
Yann E. MORIN"
b5225e3ff2 debug/cross-gdb: check host dependencies
Cross-gdb depends on expat and python. If either is missing, cross-gdb will
build successfully, but lacking some features.

Especially, if expat is missing, cross-gdb will be unable to parse the target
description, which may lead to runtime malfunctions and the following GDB
warning:
"Can not parse XML target description; XML support was disabled at compile time"

Hence, expat should be considered mandatory.

On the other hand, the features missing without python are not critical, so
python should not be considered mandatory.

This patch does the following:
 - At configure time, warn the user if either expat or python is missing.
 - In menuconfig, disable the static build options regarding cross-gdb if no
   static version of expat is available, and disable cross-gdb if expat is
   missing.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
[yann.morin.1998@anciens.enib.fr: add comment for impossible static cross-gdb]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-08 15:47:43 +02:00
Yann E. MORIN"
39dedfbcb6 libc/glibc: do not try to download NPTL add-on
The NPTL add-on has always been internal, so there is no
reason to try downloading it, it will never succeed.
Add provision to skip other add-ons as well.

For consistency, do the same test in both glibc and eglibc.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-04 17:15:58 +02:00
Benoît THÉBAUDEAU"
d147fbb201 kconfig: prepend CT-NG's version tag to PKGVERSION
"crosstool-NG-${CT_VERSION}" is currently the default for TOOLCHAIN_PKGVERSION,
and this options is passed as is to --with-pkgversion.

This patch prepends "crosstool-NG ${CT_VERSION}" to TOOLCHAIN_PKGVERSION before
passing it to --with-pkgversion.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-06-03 17:21:56 +02:00
Yann E. MORIN"
93b0db91b4 glibc: properly handle internal addons
Some addons are bundled with glibc/eglibc, so we should not try to
download and extract them.

This is done as thus:
 - at download time:
   - if the add-on download fails, keep going;
 - at extract time:
   - if the addon is present in the source tree, ignore it;
   - if the addon is missing in the source tree:
     - if the archive is present, extract it;
     - if the archive is missing, bail out.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-30 23:05:28 +02:00
Yann E. MORIN"
3d6ce4cd3d libc/eglibc: use generic SVN functions
eglibc is only available from SVN. The script currently calls svn
in its own tortuous and convoluted way.

Use the egeneric SVN extract functions, and sinplify the eglibc
download function.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-31 00:20:44 +02:00
Yann E. MORIN"
b4620c6640 cc/gcc: fix a misleading FIXME
The FIXME about the static libstdc++ is misleading; it only deserves
being an INFO.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-31 01:30:54 +02:00
Benoît THÉBAUDEAU"
500ee00f22 gdb: use the PKGVERSION and BUGURL options
This patch makes gdb benefit from the TOOLCHAIN_PKGVERSION and
TOOLCHAIN_BUGURL options.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 21:03:03 +02:00
Benoît THÉBAUDEAU"
d558bb995d eglibc: use the PKGVERSION and BUGURL options
This patch makes eglibc benefit from the TOOLCHAIN_PKGVERSION and
TOOLCHAIN_BUGURL options.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 20:55:30 +02:00
Benoît THÉBAUDEAU"
493672e977 binutils: use the PKGVERSION and BUGURL options
This patch makes binutils benefit from the TOOLCHAIN_PKGVERSION and
TOOLCHAIN_BUGURL options.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 20:39:42 +02:00
Benoît THÉBAUDEAU"
35fe8a047d gcc: promote PKGVERSION and BUGURL options to toolchain level
This patch promotes the PKGVERSION and BUGURL options to toolchain level so that
all toolchain components supporting them can benefit from them.

These options are passed to configure through --with-pkgversion and
--with-bugurl.

They are supported by binutils 2.18+, gcc 4.3+, eglibc 2.9+ and gdb 7.0+.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 20:12:35 +02:00
Yann E. MORIN"
8f32ebcc88 libc/glibc: commonalise extraction btw glibc and eglibc
glibc and eglibc have a very similar extraction process, so it
makes sense to commonalise it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-29 19:24:41 +02:00
Yann E. MORIN"
82fa824f68 libc/glibc: fix {e,}glibc add-ons with short or long names
Fixes the issue with {e,}glibc addons having short and long names (such as
eglibc-ports-2_13 and ports), which caused configure scripts to run
through them twice and thus configuring incorrectly.

For instance, the mips64el-n32-linux-gnu toolchain would be recognized
correctly first, but then the second pass would change it to mips32,
building a mixed MIPS-III N32 and MIPS-I libc.

Signed-off-by: Nicolás Reynolds <fauno@kiwwwi.com.ar>
[yann.morin.1992@anciens.enib.fr: remove spurious trailing spaces]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-27 22:02:30 -03:00
Benoît THÉBAUDEAU"
911a3d473e debug/gdb: fix runtime sysroot
This patch sets the runtime sysroot to fix the following GDB warning:
"Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code."

The sysroot can later be changed within gdb with the `set sysroot`
command if necessary.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-25 20:23:48 +02:00
Benoît THÉBAUDEAU"
338d4b8b4d scripts: fix broken variable name
This patch fixes a config variable name missing its 'CT_' prefix.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-24 14:15:47 +02:00
Yann E. MORIN"
c4bb88466e config: rename variables that are arrays
Make it explicit that a variable is an array bu the name of the variable.
It will be used later when .config gets munged to allow both multiple
arguments and arguments with spaces at the same time to be passed from the
configuration down to the build scripts.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-18 23:00:46 +02:00
Yann E. MORIN"
b00e501d7c scripts: interpret *_EXTRA_CONFIG config variables arrays
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-15 18:51:40 +02:00
Anthony Foiani
3555e03268 complibs/ppl: build only C and C++ interfaces for PPL
By default, PPL wants to build interfaces for any of a variety of
langauges it finds on the local host (python, java, possibly perl, also
more esoteric languages such as ocaml and prolog).

These extra interfaces can double the compile time for the library. For
single-process builds, I found a savings of more than 40%:

  default    / j1: 716s total, 143.2s avg, 0.52s stdev
  just_c     / j1: 406s total,  81.2s avg, 0.33s stdev
  just_c_cpp / j1: 413s total,  82.6s avg, 0.22s stdev

And for multi-process builds, it approached 50%:

  default    / j4: 625s total, 125.0s avg, 0.57s stdev
  just_c     / j4: 338s total,  67.6s avg, 1.25s stdev
  just_c_cpp / j4: 327s total,  65.4s avg, 0.36s stdev

Since the PPL we build within ct-ng is only used by GCC, we only need to
build the C and C++ interfaces.

Signed-Off-By: Anthony Foiani <anthony.foiani@gmail.com>
2011-05-19 23:06:16 +02:00
Anthony Foiani
bf48824c1c complibs/ppl: remove unnecessary (and confusing) --enable-cxx configure switch.
PPL does not use the "--enable-cxx" configure switch at all; it's
possibly a cut-and-paste leftover from 'gmp.sh'.  (PPL is written in C++
natively, so it doesn't make much sense to have to enable C++; GMP, on
the other hand, is written in C with an optional C++ wrapper.)

Signed-Off-By: Anthony Foiani <anthony.foiani@gmail.com>
2011-05-19 23:05:58 +02:00
Anthony Foiani
26cd54e8fc complibs/ppl: update GMP location configuration argument for PPL v0.11 and later
'configure' for PPL 0.11 (and later) needs "--with-gmp-prefix" to
provide the location of the GMP toolkit; the previous switches were
"--with-libgmp-prefix" and "--with-libgmpxx-prefix".

The upstream log message is:

  commit 08dfb6fea094f8c5a533575a3ea2095edce99a6d
  Author: Roberto Bagnara <bagnara@cs.unipr.it>
  Date:   Sun Jul 12 21:39:46 2009 +0200

     New configure option --with-gmp-prefix supersedes the (now removed)
     options --with-libgmp-prefix and --with-libgmpxx-prefix.

Link: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=08dfb6fea094f8c5a533575a3ea2095edce99a6d

Since PPL's 'configure' ignores unknown switches, we use all three so we
don't have to conditionalize the ppl.sh build script itself.

Signed-Off-By: Anthony Foiani <anthony.foiani@gmail.com>
2011-05-19 23:05:32 +02:00
Yann E. MORIN"
f73891e77c internals: fix stripping yet once again
Fix typo introduced by changeset #055e505f28be.
Also, handle older versions of gcc (typically, all versions
prior to 4.0.0).

Maxime provided a similar patch, missing the case for the
legacy versions of gcc.

Reported-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-02 18:07:13 +02:00
Yann E. MORIN"
3d0844d41e internals: fix stripping canadians
We can't run the newly built gcc when it is a canadian cross.
Thus, we can't get the version number, and thus we can't get
the directory libexec subdirectory to strip.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-30 22:45:27 +02:00
Yann E. MORIN"
3e05fb91f5 libc/uClibc: use MMU settings
Enforce the MMU settings from the crosstool-NG configuration.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-24 18:57:01 +02:00
Yann E. MORIN"
235dc5090e internals/finish: do not remove ${PREFIX}/include
gcc installs the C++ headers in ${PREFIX}/include/ but we trash
that directory at the end of the build.

We previously removed that directory as it contained the companion
libraries header files. But it's been some time now that we isntall
the companion libraries in their own dedicated place, so we do not
need to remove that directory.

Until we have a better fix, just keep that directory for now.

Reported-by: Bob Rossi <bob@brasko.net>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-24 15:39:53 +02:00
Yann E. MORIN"
5e27ad1e5a complibs: disable building shared libs
Managing the shared version of the companion libraries
has become cumbersome.

Also, it will one day be possible to use the companion
libraries from the host distribution, and then we will
be able to easily use either shared or static libs.

As a side note, while working on the canadian-rework
series, it has become quite more complex to properly
handle shared companion libraries, as they need to be
built both for the build and gost systems. That's not
easy to handle. At all.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-06 22:30:57 +02:00
Yann E. MORIN"
942bd0e2a7 binutils/binutils: add blind option to force use of ld.bfd during build
gold is not capable of building glibc/eglibc, so we have to
force using the BFD linker, ld.bfd.

Offer a blind option that affected components can select to
force use of the BFD linker during the build.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-05 01:02:28 +02:00
Yann E. MORIN"
2e7f8019d2 binutils/binutils: also install the wrapper for the internall ld
ld is also installed in PREFIX/TUPLE/bin, so we need to wrap that
as well.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-05 23:34:16 +02:00
Yann E. MORIN"
693cc01f41 arch/sparc: add absic support
Add support for building SPARC targeted toolchain.
With this patch I have built a working sparc V8 (32 toolchain).

Testing shows that not all gcc versions works well:
4.4.1            OK  (kernel builds and the final kernel can boot)
4.4.2            Not tested
4.4.3            Not tested
4.4.4            BAD (Kernel can build but fails during boot)
4.4.5            BAD (Kernel can build but fails during boot)
4.5.1            BAD (Build fails with a spill related ICE - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35664)
4.5.2            OK  (kernel builds and boots)

I have successfully been using the 4.5.2 version for a few months.

This patch does not add support for the LEON variant.
That may come later.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
[yann.morin.1998@anciens.enib.fr: for 32-bit, default CT_TARGET_ARCH is OK]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-03 18:22:00 +02:00
Yann E. MORIN"
784d534d28 cc/gcc: fix linking with static PPL 0.11+
PPL 0.11+ installs three libs: lippl, libppl_c and libpwl.
libppl_c has a dependency on libpwl (at least for watchdog stuff).

While gcc correctly links with libppl and libppl_c, it does not
pull libpwl in. In case of shared libs, this is not a problem, as
libppl_c has a NEEDED dependency on libpwl. But for static libs,
that does not work. Although libppl_c.la exists and has a correct
dependency on lipwl, somehow gcc misses it. So we have to force
pulling libpwl when needed.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-28 01:07:31 +02:00
Yann E. MORIN"
5476675c12 complibs/ppl: build watchdog library
gcc-4.6+ requires the Parma Watchdog Library (libpwl).
Build it and use it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-27 00:07:59 +01:00
Yann E. MORIN"
951a749ffb cc/gcc: fix building core when building statically
There was a mishap when cut-n-pasting code from the final
step into the core step: a variable was not renamed.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-27 00:09:42 +01:00
Yann E. MORIN"
1432e05c3b scripts/internals: fix stripping once more
Some scripts have 'very long lines', so the output of 'file'
will have that mentioned, such as:
  POSIX shell script, ASCII text executable, with very long lines

Reported-by: Kyle Grieb <grieb.kyle@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-22 18:10:00 +01:00
Yann E. MORIN"
babb494db3 cc/gcc: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:17:27 +01:00
Yann E. MORIN"
b81864b4c1 libc/mingw: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:16:34 +01:00
Yann E. MORIN"
f033ade4f8 libc/glibc-common: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:15:34 +01:00
Yann E. MORIN"
699de4c20c libc/newlib: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:13:05 +01:00
Yann E. MORIN"
cde7865716 complibs/libelf: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:08:22 +01:00
Yann E. MORIN"
7151e68b0d complibs/mpc: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:07:31 +01:00
Yann E. MORIN"
85c67d1ae3 complibs/cloog: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:07:06 +01:00
Yann E. MORIN"
7ea68f2049 complibs/ppl: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:06:26 +01:00
Yann E. MORIN"
51fac814d1 complibs/mpfr: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:05:15 +01:00
Yann E. MORIN"
293d580d51 complibs/gmp: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:04:22 +01:00
Yann E. MORIN"
b18efc38b7 debug/trace: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 01:03:26 +01:00
Yann E. MORIN"
2431da8122 debug/gdb: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 00:55:07 +01:00
Yann E. MORIN"
327dcfc8be debug/dmalloc: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 00:53:41 +01:00
Yann E. MORIN"
457a67cd3e binutils/elf2flt: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 00:45:44 +01:00
Yann E. MORIN"
221e49129d binutils/binutils: log even more
Also log variable assignement for single commands.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-20 00:45:05 +01:00
Yann E. MORIN"
876d9a6259 scripts: fix stripping in finalisation step
The heuristic to find shell script is deficient. Fix it.

Reported-by: Kyle Grieb <grieb.kyle@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-19 21:43:26 +01:00
Yann E. MORIN"
5473fb7bf2 binutils/binutils: use log level CFG for ./configure
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 23:29:07 +01:00
Yann E. MORIN"
55b57a8230 complibs/libelf: use log level CFG for ./configure
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 23:26:59 +01:00
Yann E. MORIN"
55052c0d84 comptools/libtool: chmod files to u+w
The libtool-2.2.6b tarball contains RO files.
We have to chmod them u+w.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 19:32:05 +01:00
Yann E. MORIN"
eb5cebe144 comptools/autoconf: chmod files to u+w
The autoconf-2.65 tarball contains RO files.
We have to chmod them u+w.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 19:30:22 +01:00
Yann E. MORIN"
3ed184a1f2 comptools/make: chmod files to u+w
The make-3.81 tarball contains RO files.
We have to chmod them u+w.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 19:28:16 +01:00
Yann E. MORIN"
897abbe362 comptools/automake: chmod files to u+w
The automake-1.11.1 tarball contains RO files.
We have to chmod them u+w.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 19:28:40 +01:00
Yann E. MORIN"
30e16a4dff debug/gdb: chmod ncurses files to u+w
The ncurses-5.7 tarball contains only RO files.
We have to chmod them u+w.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-03-03 19:26:08 +01:00
Yann E. MORIN"
ae2ca9a8d8 binutils/sstrip: build statically for static toolchains
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-27 15:34:30 +01:00
Yann E. MORIN"
b37efbd994 binutils/elf2flt: remove trailing spaces
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-27 16:20:47 +01:00
Yann E. MORIN"
ae126c295b libc/glibc: fix dubious construct when installing headers
This is dubious because if the copy fails, then we'll miss the error.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-21 19:27:28 +01:00
Yann E. MORIN"
43e89c8ddd libc/glibc: only install start files for NPTL
Building the start files requires a shared-capable compiler, which we do
not have when the threading implementation is LinuxThreads.

So, only build the start files when the threading implementations is NPTL.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-21 19:20:19 +01:00
Yann E. MORIN"
b93e67f07c libc/glibc: add fortify option
By default, recent versions of glibc and eglibc will build some
functions that take format strings (eg. printf, syslog...) with
run-time checks against some format string attacks. This is
called a fortified build.

Unfortunately, this fails somehow while building the instrumented
version of syslog, with some kind of circular dependency...

Disable fortified builds by default, and hide the enabling option
behind EXPERIMENTAL for daring users...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-21 23:39:46 +01:00
Yann E. MORIN"
6635f8cd2e internals: don't remove lib64 symlinks in sysroot
The lib64 symlinks are needed for the linker to find the libraries.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-21 14:39:24 +01:00
Yann E. MORIN"
3f0d43382c comptools: install them side-to-side with build tools
As companion tools might or might not be used to build each
toolchain, they do belong to that toolchain's build tools,
not to the generic override tools.

Fix a typo in the autoconf URL.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-18 22:55:56 +01:00
Yann E. MORIN"
a59b794f9c debug/gdb: add versions from Linaro
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-17 23:05:34 +01:00
Yann E. MORIN"
83a004e2c4 cc/gcc: add versions from Linaro
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-17 22:29:33 +01:00
Yann E. MORIN"
1339801661 internals: fix stripping host binaries
The gcc used by linaro has a version number specific to Linaro, but
identifies itself with its upstream version numbering scheme.

This breaks the strip in the finish step, because the actual gcc version
is not the same as the configured one (eg. 4.5.2 vs. linaro-4.5-2011.02-0).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-02-17 21:54:07 +01:00
Yann E. MORIN"
1838bb1f15 libc/glibc: add option to force unwind
We make it an option, as not all combinations of architectures
vs. compiler vs. glibc/eglibc exhibit the issue. Mostly visible
on old glibc versions, it seems...

This is a missing part from the glibc/eglibc merger... :-/

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-31 19:52:18 +01:00
Yann E. MORIN"
adbf0ff180 cc/gcc: enable plugins if needed
Enabling plugins in binutils is not enough, and gcc also
needs to be ./configured with --enable-plugins, although
this is not documented anywhere... :-/

Reported-by: karthik duraisami <kdconstant@hotmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-28 18:53:37 +01:00
Yann E. MORIN"
15da72b273 comptools: add make-3.81
Since the advent of make-3.82, some packages now break due to changes
in make-3.82, being stricter than 3.81 when interpreting the Makefiles.

This has bugged us a bit too much so far, and I believe fixing all
of them is a long road, while simply building make-3.81 is the easiest
route for now.

Of course, in the long term, packages will get fixed upstream, and we
should back-port the fixes to old versions, and get rid of building
make-3.81. In the meantime...

Reported several times on the mailing list.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-29 00:57:02 +01:00
Yann E. MORIN"
2014041480 libc/mingw: do not remove support symlink
Under mingw, it seems that there is a mix between the traditional /usr
directory, and a similar-purposed /mingw directory (both in the sysroot).

Currently, we create /mingw as a symlink to /usr, and we removed it in
the libc-finish step.

Unfortunately, this prevents the pre-processor to find the headers.
Keeping the symlink makes it magically work...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-26 00:04:41 +01:00
Yann E. MORIN"
94be1f470c config: add an option to name the sysroot directory
Depending on local policies, some users have expressed a need to
have the sysroot be named differently than the hard-coded name.

Add an option for that.
Default to 'sysroot' to match the existing literature.

While at it, replace 'sys-root' with 'sysroot' everywhere we
reference the sysroot.

Reported-by: Alexey Kuznetsov <Alexey.KUZNETSOV@youtransactor.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-25 20:31:16 +01:00
Yann E. MORIN"
15a1cc2491 libc: remove now unneeded do_libc_headers
do_libc_headers is now a noop, and is no longer used, so remove that step.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:36:20 +01:00
Yann E. MORIN"
0b773f5823 libc/glibc-eglibc: misc janitorial cleanups.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-20 00:27:36 +01:00
Yann E. MORIN"
129bf2fa66 libc/glibc: add glibc specifics to the shared code, and use it
Final step at sharing code between glibc and eglibc.
Fall, wall of shame, fall!... :-)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:35:58 +01:00
Yann E. MORIN"
49ab32ffe2 scripts: PARALLELMFLAGS is evil, rename
The reunification of the glibc/eglibc code paths exposed a nasty
bug in the glibc build: use of PARALLELMFLAGS breaks the build.

See the explanations in that bug report against FC6:
    https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=212111

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:35:43 +01:00
Yann E. MORIN"
b343b0216b libc/glibc: commonalise assembling the list of addons
glibc and eglibc each have two very similar ways of building this list.
This can, and should definitetly, be shared.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:35:18 +01:00
Yann E. MORIN"
a150a97e44 libc/glibc: commonalise setting of the minimum supported kernel version
It will be possible to use that also with eglibc, so this hunk belongs to
the common code.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:35:02 +01:00
Yann E. MORIN"
b560936e09 libc/glibc: use the common start_files procedure
Use the common procedure, shared between glibc and eglibc. This requires
that glibc-specific bits be included in the shared procedure.

But still build the full libc with the glibc-specific procedure. This will
be commonalised in a future commit.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:37:25 +01:00
Yann E. MORIN"
b43ff236bb libc/eglibc: cleanup common code for sharing with glibc
Some stuff is eglibc-specific, so needs to be conditonal.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-17 23:04:57 +01:00
Yann E. MORIN"
cc0894e731 libc/eglibc: move generic code to a common file
The build procedure for eglibc is generic enough to
be shared between glibc and eglibc. This includes:
 - headers install (empty!)
 - start files build
 - complete libc build
 - libc finish (empty!)
 - add-ons list

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-17 23:04:37 +01:00
Yann E. MORIN"
2dd949cd7f libc/mingw: move content of do_libc_headers into do_libc_start_files
It is unnecessary to split C library preparation into two steps, as only
one really makes sense. So, do_libc_headers is bound to be withdrawn
short-term, in favor of do_libc_start_files.

mingw already had all its start files installation in do_libc_headers, and
do_libc_start_files was empty, just migrate the content of the former into
the latter.


Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:32:44 +01:00
Yann E. MORIN"
7b003fde97 libc/uClibc: move content of do_libc_headers into do_libc_start_files
It is unnecessary to split C library preparation into two steps, as only
one really makes sense. So, do_libc_headers is bound to be withdrawn
short-term, in favor of do_libc_start_files.

uClibc already had all its start files installation in do_libc_headers, and
do_libc_start_files was empty, just migrate the content of the former into
the latter.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-22 22:32:25 +01:00
Yann E. MORIN"
6568c1a39a libc-glibc: remove 2.3.6
This is an obsolete version which is no longer used by any sample (the only
user, the ia64 sample, has been removed).

It also makes the code path a bit complex, with twists just to accomodate
that version. Removing the version will make those twists go away, and
will ease commonalisation of glibc and eglibc in the future (hopefully!).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-03 23:40:22 +01:00
Yann E. MORIN"
a28b593548 arch: remove ia64
ia64 is broken in every gcc/glibc combinations I tested (except for the
existing sample that used very old versions).

Nobody complained on the list about not being able to build recent versions.

So the only way forward I can see is to remove the architecture altogether.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-03 22:02:06 +01:00
Yann E. MORIN"
1ce0dba9d7 kernel/linux: simplify the download URL
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-14 18:36:07 +01:00
Yann E. MORIN"
3de7ced945 kernel/linux: longterm kernel location changed
The location of the longterm Linux kernels on FTP has changed.
Here is a simple (but not very versatile) fix.

Signed-off-by: "Björn A. Herwig" <herwig@gdsys.de>
[yann.morin.1998@anciens.enib.fr: make it generic/versatile]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-14 18:32:38 +01:00
Yann E. MORIN"
23d449366d complibs/cloog: regenerate autostuff files
Latest version of CLooG does not have properly generated autoconf files,
so they need to be regenerated before the call to ./configure

Signed-off-by: "Ilya A. Volynets-Evenbakh" <ilya@total-knowlege.com>
[yann.morin.1998@anciens.enib.fr: make it conditional on 0.15.10 only]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-13 23:20:39 +01:00
Yann E. MORIN"
ba27d02036 debug/ltrace: fix building for mips
ltrace 0.5.3 currently fails to build for target mips because MY_TARGET
(introduced by patches/ltrace/0.5.3/150-allow-configurable-arch.patch)
is set to 'mips' via CT_ARCH, while the mips specific stuff in ltrace
(0.5.3) is stored under sysdeps/linux-gnu/mipsel:

  result: *** No rule to make target `mips/arch.h', needed by `sysdep.h'.
  Stop.

The following patch fixes this issue

Signed-off-by: "Horst Kronstorfer" <horst.kronstorfer@aon.at>
[yann.morin.1998@anciens.enib.fr: reformat commit log]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-08 18:07:02 +01:00
Yann E. MORIN"
e5ded6e946 cc/gcc: build lto-plugin if binutils' gold is built
To properly enable LTO with gold, gcc has to install a plugin that gold
uses to handle the LTO information.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-29 17:58:35 +01:00
Yann E. MORIN"
2841bb7a35 binutils/binutils: add wrapper to gold and ld
When both gold and ld are installed, add a wrapper that calls
to either gold or ld.

In case the wrapper is installed, we also need to symlink ld.bfd
and ld.gold for the core_cc steps.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-29 18:19:40 +01:00
Yann E. MORIN"
8a952d18e0 binutils/binutils: add support for threaded gold
When configured with support for threads, gold can link in
parallel, possibly cooperating with a make jobserver.

Add an option enabling threads.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-02 13:52:16 +01:00
Yann E. MORIN"
e4d610f905 binutils/binutils: add support for plugins
Add an option to enable plugins support in binutils.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-01-02 13:56:05 +01:00
Yann E. MORIN"
a0d9851dd0 binutils/binutils: add option to enable gold
gold is a new, optimised, multi-threaded linker with support
for plugins.

Add support for gold starting with binutils 2.21. Although 2.20
also had gold, the configure flags have changed, and supporting
2.20 would be a mess in the code.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-28 00:11:33 +01:00
Yann E. MORIN"
b0c69b3cdc complibs/libelf: build with -fPIC
libelf is used by gcc to build the lto-plugin used
by binutils' gold to perform LTO.

This requires that files in libelf be compiled with
-fPIC to generate a proper .so.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-29 02:34:18 +01:00
Bryan Hundven
6bd24a2c73 libc/uClibc: normalize uclibc hidden version names
Hidden version names for uClibc conflicted:

LIBC_UCLIBC_V_0_9_30_2
LIBC_V_0_9_30_1

name them constantly as:
LIBC_UCLIBC_V_<version>

Also update the build script where we use snapshots by version or snapshots by date.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2011-01-03 01:15:30 +01:00
Yann E. MORIN"
88c8168763 internals: properly remove all docs
Part of the installed doc was not removed (if configured to).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-29 19:41:17 +01:00
Bryan Hundven
889eb6df62 libc/eglibc: fix installed scripts
Like rev 2002, eglibc installs some bash scripts, but use the path to the
buildtool bash as the interpreter (on the shebang line). This is only a
symlink to the real bash, and thus is not available at runtime.

Fix that by assuming that shell on the target *will* be /bin/bash.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2010-12-22 22:42:11 +01:00
Yann E. MORIN"
908f4aeab9 kernel/linux: Cleanup unneeded files from 'headers_check' and 'headers_install'
headers_install makes  .install and ..install.cmd files.
headers_check makes    .check   and ..check.cmd   files.
Remove these files uncoditionaly after installing (and checking) header files
into the sys-root.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
[Yann E. MORIN: reformat the patch, move hunk out of headers_check conditional]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-22 22:41:51 +01:00
Kalle Kankare
461ca92d5d complibs/libelf: use host compiler
It appears, that the configure scripts of libelf versions 0.8.13 and
0.8.12 do not honour the --host option. The compiler must be given as an
environment variable or the process will use the command "gcc" as the
compiler.

It seems that this is already done in the function do_libelf_target in
scripts/build/companion_libs/libelf.sh, but not in function do_libelf.
2010-12-03 12:36:44 +01:00
Yann E. MORIN"
a9966d1e1c internals: fix stripping
Do not try to strip any script.

Previously, only shell scripts were ignored, but when the Java frontend
is installed, it also installs a Python script. So we have to ignore
any "script text executable", and not restrict it to "shell script text
executable".

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-12 20:47:40 +01:00
Yann E. MORIN"
2bf2991ebd scripts/internals: strip all executables
Using a list of files to strip misses a few of them.
Now, scan appropriate directories, and strip all ELF
executables and shared objects.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-05 16:27:06 +01:00
Bryan Hundven"
1ad4399072 cc/gcc: build bare-metal gcc statically
- add a new parameter to do_cc_core: build_statically=[yes|no]
- pass build_statically=yes in core_pass_2 when doing bare_metal
- fix handling the static / static libstdc++ / static complibs stuff
- add a commment to keep both blocks (in core and final) in sync

Signed-off-by: "Bryan Hundven" <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-09 18:55:59 +01:00
Bryan Hundven"
118a6a5f98 cc/gcc: build final gcc statically
If the global static option is set, then build the final gcc statically.

Signed-off-by: "Bryan Hundven" <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-09 18:55:42 +01:00
Bryan Hundven"
bf3c89ebb5 binutils/binutils: build statically
If the global static option is set, then build binutils statically.

Signed-off-by: "Bryan Hundven" <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-12-09 18:55:33 +01:00
Yann E. MORIN"
63750f8841 complibs/cloog: fix linking with libstdc++
This rules out 0.15.5 and previous versions, that did not
have this option, so remove them from the list. Anyway,
they were marked 'OBSOLETE', so it's not a big loss...

[Yann E. MORIN: remove obsolete versions]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-11-29 00:50:21 +01:00
Yann E. MORIN"
9dbbc8e5f6 scripts: remove aria2c as downloader, retain only curl and wget
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-11-16 10:00:27 +01:00
Yann E. MORIN"
f1c391e1d9 complibs/CLooG: only install the libraries
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-18 16:51:01 +02:00
Yann E. MORIN"
70309ce671 scripts/xldd: report appropriate load address for 32- or 64-bit
For 32-bit target systems, report 4-byte (8-xdigit) wide adresses,
and for 64-bit, report 8-byte (16-xdigit) wide adresses.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-11-23 21:35:15 +01:00
Yann E. MORIN"
dc4498ca35 scripts/xldd: fix space-damage
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-11-23 21:35:01 +01:00
Yann E. MORIN"
b36267c6a6 scripts/xldd: fix version string
The version string was hard-coded.
Now, the version string follows the crosstool-NG version.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-11-23 21:34:56 +01:00
Yann E. MORIN"
de81a59714 libc/*glibc: enable selection of the oldest supported ABI
[Yann E. MORIN: split the original patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-11-11 01:11:17 +01:00
Yann E. MORIN"
da6b834eef libc/*glibc: add option to disable symbols versioning
[Yann E. MORIN: split the original patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-11-11 00:29:53 +01:00
Bob Dunlop
fcfc3a27f8 libc/eglibc: fix downloading
Since Subversion 1.6.13 was released, it is no longer possible
to checkout/export to the current working directory using '.'
(eg. "svn co bla://blabla/foo/bar ." no longer extracts the content
of bar into ./ but into ./bar).

Fix this by luring Subversion to extract into "$(pwd)", which has
the advantage of working both with all known versions so far.

At the same time, remove the useless redirection.
2010-11-09 10:44:29 +01:00
Yann E. MORIN"
9b87613c37 libc/newlib: add option to compile support for IOs on C99 formats
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-23 01:21:20 +02:00
Yann E. MORIN"
1a0ab9ad55 libc/newlib: add option to compile support for long long IOs
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-23 00:53:41 +02:00
Yann E. MORIN"
d7e88461e6 libc/newlib: add option to compile support for float IOs
Adds support to enable/disable IOs of floating point values
(float, double, and long double).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-23 00:54:46 +02:00
Yann E. MORIN"
ae27f71102 scripts: do not provide to-sysroot include symlink
Do not provide the PREFIX/TUPLE/include -> SYSROOT/usr/include symlink,
and let gcc install its dependable C++ headers were it sees fit to
install them.

See the test by Anthony (by the end of the messages):
  http://sourceware.org/ml/crossgcc/2010-10/msg00129.html
  http://sourceware.org/ml/crossgcc/2010-10/msg00134.html

See also the comment by Arnaud:
  http://sourceware.org/ml/crossgcc/2010-10/msg00157.html

Reported-by: Anthony Foiani <anthony.foiani@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-31 16:50:07 +01:00
Yann E. MORIN"
5ddca154bb Merge. 2010-10-24 22:03:53 +02:00
Yann E. MORIN"
8b275095e0 Revert #a09246191120: cc/gcc: fix C++ headers location
This was intended as a fix for g++ not finding its headers,
but it breaks in othe horrible ways. So just revert it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-24 22:03:47 +02:00
Anthony Foiani
92898249bd scripts: add "FILE" and "CFG" debug levels.
I ran into some minor difficulties looking through the build log for a
particular file: I wasn't interested in seeing it unpacked, but only
when it is built or installed.  Adding these two levels allows me to
differentiate between those cases.

[Yann E. MORIN: Those are blind log levels, and are used only to search
 in the build-log afterward.]

Signed-off-by: Anthony Foiani <anthony.foiani@gmail.com>
2010-10-22 22:02:57 +02:00
Yann E. MORIN"
2b912ba840 cc/gcc: fix 128-bit long doubles option
Spotted by Arnaud LACOMBE:
  http://sourceware.org/ml/crossgcc/2010-10/msg00122.html

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-20 15:25:38 +02:00
Yann E. MORIN"
cbd352f9ac cc/gcc: fix C++ headers location
In case we build the C++ compiler, we have to tell gcc where to put the C++
headers, or else it will try to # put it in prefix/tuple/include, which we
make a symlink to sysroot/usr/include during the build, and that we delete
(the symlink!) after the build, but gcc will not look in sysroot/usr/inlcude
for C++ headers by default.

Implements a fix suggested by: Bryan Hundven <bryanhundven@gmail.com>

Reported-by: Anthony Foiani <anthony.foiani@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-08 23:37:12 +02:00
Yann E. MORIN"
b17f8707c1 cc/gcc: add an option to enable/disable build of libssp
libssp is the run-time Stack-Smashing Protection library.
It can be usefull to have or miss, depends...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-09 11:38:04 +02:00
Yann E. MORIN"
8922def6b4 cc/gcc: add an option to enable/disable build of libgomp
libgomp is the GNU implementation of the OpenMP API.
It can be usefull to have or miss, depends...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-08 23:58:58 +02:00
Yann E. MORIN"
416eb29198 cc/gcc: add option to enable 128-bit long doubles
Needed by some PPC targets, at least.
Requires gcc 4.2+ (noticed by Arnaud LACOMBE).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-09 22:49:28 +02:00
Yann E. MORIN"
8b0af28c69 cc/gcc: fix enabling/disabling LTO
There is a ./configure option for that.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-10-08 23:51:38 +02:00
Yann E. MORIN"
9176074aec cc/gcc: disable complibs if not selected
Force gcc to not link with some companion libraries when
there are not needed (because selected-out).

There is no option to tell gcc *not* to build the Graphite and/or
LTO stuff. They *will* be built if gcc finds the suitable companion
libraries. If we do not provide them, but the host has them, then
gcc *will* find them, and link with them.

Consider the following:
- host has suitable PPL and CLooG (eg. Debian Squeeze)
- user wants to build gcc>=4.4
- user de-selects GRAPHITE
- gcc will find the hosts PPL and CLooG, and will use them
- the user moves the toolchain to an older host that does
  not have them (eg. Debian Lenny)
- the toolchain fails, when it was properly setup not to

So, explicitly tell gcc *not* to use unneeded companion libs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-09-12 23:51:25 +02:00
Yann E. MORIN"
d34a5ec7d8 cc/gcc: do not force use of non-vital companion libraries
While GMP and MPFR are required by gcc>=4.3 (to build the frontends),
and MPC is required by gcc>=4.5, the other libs are not. If they are
present then gcc will enable advanced features; if they are missing,
then gcc will (should) simply disable those features.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-09-12 20:54:54 +02:00
Yann E. MORIN"
6f5d910d1f libc/uClibc: use the MIPS ABI selection
Use the MIPS ABI selection to properly munge the uClibc config file.

This has the side effect to force the ISA:
- n32 ABI -> MIPS-III ISA
- n64 ABI -> MIPS64 ISA

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-09-12 22:15:12 +02:00
Yann E. MORIN"
b92668a211 arch/mips: add option for MIPS ABIs
This adds selection for one of the o32, n32 and n64 ABIs.
Later, we can easily use those boolean options, rather than
relying on a user-supplied string option.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-09-12 22:14:04 +02:00
Yann E. MORIN"
dae205737f scripts/internal: cleanup build symlinks
The symlinks are needed only during the build process.
The final gcc will still search those dirs, but will also search
the standard lib/ dirs, so we can get rid of the symlinks.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-09-11 17:55:54 +02:00
Yann E. MORIN"
3fcdd28e04 libc/uClibc: change munging code based on target arch
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-09-10 13:23:58 +02:00
Yann E. MORIN"
0622671d26 debug/gdb: use libexpat
gdb can use libexpat to parse target memory descriptions,
among other things. See:
  http://sourceware.org/ml/crossgcc/2010-08/msg00168.html

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-08-23 10:47:00 +02:00
Yann E. MORIN"
7a70e935c6 debug/gdb: install dependable libs in a generic target static libs dir
For now, ncurses is the only dependable target library built for gdb.
But expat is coming, and there's no reason to install each library in
its own place.

So, install ncurses in a generic directory, where other dependable
libraries can be installed as well.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-08-23 14:32:16 +02:00
Yann E. MORIN"
1504a1ef10 complibs: noone is using companion libs on the target; nuke them
As there's no longer any user of the companion libraries on the
target, nuke the build for the target.

Well, at least, there's libelf that's still needed by ltrace, so
we keep it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-08-23 23:18:49 +02:00
Yann E. MORIN"
e81fe2c778 debug/gdb: companion libs are not used
Although the gdb ./configure advertises for GMP and MPFR, those libraries
are not used by gdb (the ./configure is used across different packages,
hence the check for GMP/MPFR). See:
  http://sourceware.org/ml/crossgcc/2010-08/msg00168.html

The same applies to MPC.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-08-23 10:38:15 +02:00
Yann E. MORIN"
9736a99ee9 binutils/binutils: companion libraries are not used
GNU binutils does not use the companion libraries, although
./configure advertises switches for them. This is because the
configure file is shared between different packages, and is
a bit 'lax' about what it checks. See:
  http://sourceware.org/ml/crossgcc/2010-08/msg00160.html
  http://sourceware.org/ml/crossgcc/2010-08/msg00161.html

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-08-23 20:21:43 +02:00
Titus von Boxberg
f6634c28cc internals: call strip in a portable way
strip on CT_HOST darwin does not want --strip-all or -v
2010-08-21 16:45:50 +02:00
Yann E. MORIN"
d53f1d71f6 libc/mingw: fix space-damage
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-08-17 23:50:03 +02:00
Esben Haabendal
150789c22b mingw32: enable sysrooted toolchains
When targeting mingw32, gcc expects to find its include files
in "mingw/include" instead of the traditional "usr/include".

[Yann E. MORIN: split the original patch]
2010-08-15 00:00:51 +02:00
Esben Haabendal
386b4fed76 libc/mingw: use pre-set headers dir
There is a variable that contains the headers directory,
so there's no need to re-compute it again.

[Yann E. MORIN: split the original patch]
2010-08-14 23:21:06 +02:00
Esben Haabendal
1c81b216c8 kernel/mingw32: use pre-set headers dir
There is a variable that contains the headers directory,
so there's no need to re-compute it again.

[Yann E. MORIN: split the original patch]
2010-08-14 23:14:27 +02:00
Yann E. MORIN"
2e7698ed02 libc/uClibc: fix downloading pregen locales
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-08-11 20:05:05 +02:00
Yann E. MORIN"
46d72f5450 complibs/cloog: with static ppl, correctly link with libm
On some Fedora boxen (at least FC13), it is also required
to link with libm when static ppl is used.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-08-06 00:00:26 +02:00
Darcy Watkins
f30a7df9c9 cc/gcc: with static ppl, correctly link with libm
On some Fedora boxen (at least FC13), it is also required
to link with libm when static ppl is used.
2010-08-05 18:19:07 +02:00
Remy Bohmer
b1ac0964f4 scripts: add option to strip all toolchain executables
To reduce filesizes of the toolchain and even improve build times
of projects to be build with this toolchain it is usefull to strip
the delivered toolchain executables. Since it is not likely that we
will debug the toolchain executables itself we do not need the
debug information inside the executables itself.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
2010-05-27 23:18:19 +02:00
Johannes Stezenbach
143f02e0ce cc/gcc: add option to compile against static libstdc++, for gcc-4.4 and newer
Idea and know-how taken from CodeSourcery build script.

Normal build:
  $ ldd arm-unknown-linux-uclibcgnueabi-gcc
	linux-gate.so.1 =>  (0xb77f3000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb76e8000)
	libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75a1000)
	libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb757a000)
	/lib/ld-linux.so.2 (0xb77f4000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb755c000)

CC_STATIC_LIBSTDCXX=y:
  $ ldd arm-unknown-linux-uclibcgnueabi-gcc
	linux-gate.so.1 =>  (0xb7843000)
	libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb76e6000)
	/lib/ld-linux.so.2 (0xb7844000)

I made CC_STATIC_LIBSTDCXX default=y since I think
it is always desirable.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
2010-07-29 19:47:16 +02:00
Yann E. MORIN"
8bb436dad1 cc/gcc: add option to enable/disable libmudflap
For some scenarii, libmudflap is not very usefull
or can break the build. Make in an optioon that
defaults to 'N' to be on the safe side.

For the core gcc-s, there is absolutely no need
to build libmidflap.

Idea from: Bernhard Pfund <bernhard@chapter7.ch>
2010-07-28 23:55:10 +02:00
Yann E. MORIN"
61ebaa97ca cc/gcc: make sjlj config option a tristate
A tristate fits better here than a choice.
2010-07-28 23:53:09 +02:00
Yann E. MORIN"
b2d9366b56 libc/uClibc: fix space damage 2010-07-28 01:39:52 +02:00
Yann E. MORIN"
bb6a9e3e64 libc/uClibc: fix using pre-generated locale data
Some time, someone updated the locale Makefile to use
newer pre-generated locales data, but did not upload
those.

So we just force using the existing, ageing archive,
dating back 20030818. Sigh...
2010-07-28 01:38:15 +02:00
Yann E. MORIN"
d0ed3f0fe0 libc/uClibc: do not systematically use pre-generated locale data
It seems that using pre-generated locale data can be more problematic
than usefull in some circumstances.

Offer a config knob to enable/disable use of the pregen locale data.
Also, do not extract pregen locales data ourselves, it's broken.
2010-07-28 01:03:07 +02:00
Yann E. MORIN"
c03ac58aca scripts: add a cross-ldd-like
Add a cross-ldd that mimicks a native ldd.
2010-07-22 23:26:08 +02:00
Yann E. MORIN"
d7287c9b5f libc/uClibc: do not install cross-ldd
I was unable to make the cross-ldd from uClibc to work, and
it is not possible to build it on non-POSIX system.

Besides, we have a generic script that is in the starting-blocks
to replace it, that will work for any C library, and also will
work on non-POSIX systems. Bonus!
2010-07-22 20:06:27 +02:00
Bart vdr. Meulen
25bb99693a complibs: fix using static companion libraries
When building a cross-compiler for a target which uses a file extension for
binaries the symbolic link to cc is not created correctly because the lookup
of the gcc binary is done in a incorrect path

Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
2010-07-19 23:16:02 +02:00
Yann E. MORIN"
8258ad7bcf debug/gdb: properly remove build tic
tic is isntalled in buildtools, not in the toolchain's bin dir.
Plus, it may have an extension...
2010-07-11 22:26:29 +02:00
Yann E. MORIN"
eec696451e debug/gdb: Fix compilation for Mingw hosts
GDB requires PDcurses instead of ncurses while running on Windows.
So, do not always compile ncurses in case GDB needs to build.

PDcurses is provided by an earlier build step and is not described in
this file.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
[yann.morin.1998@anciense.nib.fr: we already have a way to detect ncurses usage]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-07-11 22:23:34 +02:00
Yann E. MORIN"
d54963f0e3 kernel/mingw: add target libraries
Add several development libraries to the build of the mingw cross-compiler
to be used on target

Libraries:
PDCurses (port of the ncurses library)
GnuRX (the regex library)
DirectX
OpenGL

Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
[yann.morin.1998@anciens.enib.fr: don't show DX and RX versions if disabled]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-07-11 21:36:55 +02:00
Yann E. MORIN"
b81d232a9b kernel: add mingw
Add the option to build a cross-compiler for kernel type 'mingw'.
The resulting cross-compiler can be used to build applications on a Linux host
that can be run on a Windows target.

Compiler is build using the mingwrt and w32-api packages aviable from the
MinGW project (http://sourceforge.net/projects/mingw).

The windows headers (w32-api package) are extracting with the kernel_headers
step The libraries and other headers from both packages are build and
installed in the various steps of libc

Signed-off-by: Bart vdr Meulen <bartvdrmeulen@gmail.com>
[yann.morin.1998@anciens.enib.fr: fix kernel headers comment, don't "return 0"]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-07-11 21:36:20 +02:00
Yann E. MORIN"
4144845579 cc/gcc: gcc-4.4 does not use MPC
As reported by Johannes Stezenbach, see thread at:
  http://sourceware.org/ml/crossgcc/2010-07/msg00017.html
2010-07-10 15:25:10 +02:00
Yann E. MORIN"
42a7dc1946 libc/uClibc: enable NPTL for snapshots
Recently, NPTL has matured a lot in uClibc, and more and more
people are interested to at least give it a try. So enable it.
2010-07-03 01:15:28 +02:00
Yann E. MORIN"
974f60e98a libc/uClibc: fix snapshots
Snapshots are in a subdir named uClibc, not uClibc-snapshot
(or uClibc-YYYYMMDD either).
2010-07-03 00:17:54 +02:00
Yann E. MORIN"
3fafacd093 libc/uClibc: fix munging .config for LT old/new 2010-07-02 22:11:45 +02:00
Yann E. MORIN"
58ade1d7aa scripts/finish: do not try to symlink if sed expr is a no-op
If the sed expression does not transform the
tuple, do not try to create the symlink.
2010-07-07 22:33:49 +02:00
Yann E. MORIN"
e8a36ea13c debug/gdb: fix incorrect path
Fix discrepancy between the directory we create,
and the directory into which we install tic.
2010-07-01 01:17:01 +02:00
Yann E. MORIN"
82766493f5 libc/glibc: fix installed scripts
glibc installs some bash-scripts, but uses the path to the buildtool
bash as interpreter (on the shebang line). This is only a symlink to
the real bash, and thus is not available at runtime.

Fix that by assuming that bash on the target *will* be /bin/bash.
2010-07-01 00:24:04 +02:00
Yann E. MORIN"
8b8f2c17ba cc/gcc: add option do disable PCH
In some cases, using Pre-Compiled Headers breaks the build.
Ass an option to disable building the PCH, as suggested by:
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
2010-06-17 21:26:23 +02:00
Yann E. MORIN"
c4933a400c kernel/linux: allow headers from full custom source tree
Accept a local tarball name as the source of the Linux kernel headers,
rather than forcing the user to use either an upstream tarball, or a
local pre-installed headers tree.
2010-06-17 18:30:09 +02:00
Yann E. MORIN"
f99f3208af kernel/linux: reorder upstream/custom-tree handling 2010-06-15 20:04:01 +02:00
Yann E. MORIN"
656dae57eb cc/gcc: baremetal requires a two-pass process
Here, we implement a highly ugly hack. I'm not proud of that one...

To build the libstdc++ library, the compiler requires the C library. In
case we build for non-baremetal, this is normally handled by the final
step, later.

But in the case of bare-metal, we never go through the final step (because
it does not work, and it seems complex enough to make it work), so the
baremetal compilers are issued out of the core step.
2010-06-13 23:38:37 +02:00
Yann E. MORIN"
b00d3ef516 libc/newlib: build in the 'start files' pass
A few facts:
- building the C library requires a proper core compiler
- core compiler is issued from one of the core passes
- the C library is required to build libstdc++
- newlib is only built for baremetal
- in bare metal, the final compiler is issued from one of the core passes

So we need to build the C library between core pass 1 and core pass 2.
The only place is eithe libc_headers() or libc_start_files(). The most
pertinent seems to be libc_start_files().

So we build newlib from libc_start_files(), and leave libc() empty.
2010-06-13 23:45:29 +02:00
Yann E. MORIN"
399e7f8f8a cc/gcc: store core build rules in an array
Using an array makes it easier to add new rules.
Besides, it is easy to expand from build rules to install rules
2010-06-13 20:43:02 +02:00
Yann E. MORIN"
3983fe1184 cc/gcc: implement default for core options 2010-06-13 20:31:42 +02:00
Yann E. MORIN"
7b3c12d9a3 cc/gcc: fix headers copy for core static 2010-06-13 20:25:00 +02:00
Yann E. MORIN"
13b5487575 libc/uClibc: apply the threading model to the configuration
The threading model shall be be set in the .config file.
Also, offer the choice between 'old/stable' and 'new' linuxthreads.
2010-06-09 00:41:25 +02:00
Titus von Boxberg
d2d3c15c14 cc/gcc: Make usage of --enable-target-optspace configurable
Optionally configure to compile gcc-internal libs with -Os.

yann.morin.1998@anciens.enib.fr:
Rename the config options, it is in the GCC /namespace/.
2010-05-24 16:34:55 +02:00
Titus von Boxberg
b0c3365d15 scripts/build/internals.sh: compile wrapper with portable options.
static linking is not possible on MacOS, and unnessecary on other systems.
The old optimization and warning flags crash the gcc on MacOS
and (imho) are a bit overdone for this software.
2010-05-22 22:01:18 +02:00
Yann E. MORIN"
dbd5e50583 test-suite: apply cleanup pass
Remove all non-modifiable items (target tuple, gcc version, toolchain path...)
Makefile syntax ( use $(...) instead of ${...} )
Update doc
Space-damage cleanups
2010-05-22 22:04:31 +02:00
Martin Lund
1779c82ad2 test-suite: Added new test suite feature (experimental)
This patch adds support for installing the gcc test suite. A helper
Makefile is provided for building and running the gcc tests.

The default configuration runs all gcc tests and requires automatic
ssh/scp login access to a networked target board. See README for
more details.

Note: Current feature is tested with the powerpc-unknown-linux-gnu
sample but it should work with others as well.

Signed-off-by: Martin Lund <mgl@doredevelopment.dk>
2010-05-19 17:53:04 +02:00
Titus von Boxberg
afa2b0aa0d scripts/build/internals.sh: Always use binary wrapper under BSD/MacOS
The shell wrapper script uses a nonportable call to readlink.
Thus, always use the binary wrapper under BSD/MacOS.

yann.morin.1998@anciens.enib.fr:
  Use 'case' instead of 'if'.
2010-05-22 17:30:44 +02:00
Titus von Boxberg
91381251a0 build/internals.sh: Replace nonportable call to stat
The call to stat to find out if a file is a symlink works only on GNU systems,
and the replacing portable call to readlink is also shorter and more concise code.

yann.morin.1998@anciens.enib.fr:
Apply simpler test, after discussion with author and Arnaud LACOMBE on the ML.
2010-05-19 18:08:23 +02:00
Yann E. MORIN"
c4e987288e debug/gdb: install tic in the buildtools directory
'tic' is a build tool, its place is in the buildtools
directory, not in the toolchain's bin directory.
2010-04-29 22:14:31 +02:00
Yann E. MORIN"
3fda8a4876 debug/gdb: be less verbose during the ncurses build 2010-04-29 22:12:27 +02:00
Yann E. MORIN"
572a4e4bd7 arch/sh: fix type in variant handling 2010-04-25 18:27:23 +02:00
Yann E. MORIN"
8743f16f65 libc/newlib: don't do // downloads
The newlib FTP site does not like // downloads, and quickly
blocks the IP from the downloader.

Override the number of chunks when downloading newlib.
2010-04-21 19:06:29 +02:00
Yann E. MORIN"
49f0895649 libc/glibc: fix kernel version check
Since we log the test strings, it is no longer possible to call
the CT_Test* functions from sub-functions that print results to
their stdout.
2010-04-21 18:54:58 +02:00
Remy Bohmer
9c6c090d7b cc/gcc: use proper host compiler for canadian bare-metal
While compiling a canadian toolchain for host=mingw32, build=linux,
target=m68k-elf the build fails because in this step of the gcc build
the Host compiler is used in this stage with the build-flags for the
build system. This results in an error where the header <sys/wait.h>
cannot be found.
This problem happens at least in the GCC-4.3.x and GCC-4.4.x range.

This is solved by passing the proper compilers on the Make cmd-line

Signed-off-by: Remy Bohmer <linux@bohmer.net>
2010-04-09 21:04:37 +02:00
Bart vdr. Meulen
76ae48462a cc/gcc: allow building a canadian bare-metal compiler
Previous addition of the canadian cross compiler did not allow
to build a baremetal only variant, no reason why this is not
allowed

Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
2010-04-20 10:06:04 +02:00
Yann E. MORIN"
a6da1aa63a cc/gcc: fix cc symlink when executables have an extension
When building a cross-compiler for a host which depends
on file extensions the symlink for cc was not installed correctly

Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
[Yann E. MORIN: style fixes, enhancements, code prettying]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-04-20 11:39:13 +02:00
Yann E. MORIN"
3c160b2205 cc/gcc: add support for 4.5.0 or later versions
starting with 4.5.0, gcc requires libelf.
2010-04-15 22:35:18 +02:00
Yann E. MORIN"
eed8d50d02 complibs/libelf: enable the host build
Host libelf is required by gcc-4.5.0
2010-04-15 22:42:06 +02:00
Yann E. MORIN"
9962be4d9c complibs/libelf: build target libelf in its own directory 2010-04-15 22:35:04 +02:00
Yann E. MORIN"
3ad58b9c50 debug/gdb: remove insight
Insight seems to be very slow to follow up on mainstreram gdb.
Latest snapshots are more than 6 months old.

Moreover, I don't have time to maintain insight support in crosstool-NG;
and, because I don't use it, I am unable to find any breakage.
2010-04-15 20:00:23 +02:00
Thomas Petazzoni
24e4d092a5 Add basic support for the Blackfin architecture
For uClibc, the name of the Blackfin architecture is 'bfin'. Actually,
the naming of the architecture is quite messy: for toolchain tuples
and uClibc, it's bfin, but for the kernel, it's blackfin. We've
arbitraly choosen to name it "blackfin" in Crosstool-NG.

Add Blackfin-related uClibc patch to fix a build failure related to
fork() being used in unistd/daemon.c.

Yann E. MORIN:
Apply the patch to the kernel/linux build script to use 'linux'
in the noMMU tuples. See:
  http://sourceware.org/ml/crossgcc/2010-04/msg00010.html
2010-04-07 09:18:20 +02:00
Yann E. MORIN"
80e7118b1f Merge. 2010-04-13 00:43:22 +02:00
Yann E. MORIN"
2d446d21bc Revert 3ea4e6f7b85f: Force autoreconf for mpfr
It breaks on my machine. Revert until we find the exact cause leading to
the initial patch, and we come up with a patch that properly fixes it.
2010-04-13 00:43:09 +02:00
Yann E. MORIN"
bf86627982 scripts/functions: make CT_Patch dumber
It is the responsibility of the caller to split the package name from
its version. It already knows that.
2010-04-11 23:18:10 +02:00
Yann E. MORIN"
d2ea451ee1 libc/newlib: only compute version string, not full filename 2010-04-11 23:17:25 +02:00
Yann E. MORIN"
2a6e9ce59a debug/gdb: remove snapshot version 2010-04-11 23:05:48 +02:00
Remy Bohmer
9ccad74f02 cc/gcc: add bugurl and compiler version to core gcc compiler
When building for bare-metal the core-gcc compiler is delivered
as final compiler, so the version info and bugurl is useful
in the core compiler as well.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
2010-04-09 21:04:33 +02:00
Bart vdr. Meulen
1ef028c7e6 [CT-NG:patch 05/19] Force autoreconf for mpfr
In some exotic case the autoreconf step of mpfr is not executed (correctly)
leaving an incorrect version number for libtool in the configure script.

After extracting the sources files, force autoreconf to be executed.

Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
2010-04-09 21:04:24 +02:00
Yann E. MORIN"
a01284b0e2 complibs: don't install in toolchain dir when built as static 2010-04-11 11:10:06 +02:00
Yann E. MORIN"
5b27e8de52 complibs: allow either static or shared build 2010-04-11 00:47:23 +02:00
Yann E. MORIN"
5b663e2aae complibs: build static libraries 2010-04-10 23:43:08 +02:00
Yann E. MORIN"
31fa64bc60 config: replace COMP_LIBS with COMPLIBS 2010-04-10 23:42:28 +02:00
Yann E. MORIN"
538d596113 complibs/mpfr: fix extract
With MPFR 2.4.2, autoreconf needs to be run as well.
2010-04-10 22:45:36 +02:00
Arnaud Lacombe
93042972a8 cc/gcc: fix thread-less final gcc build
If threads are disabled in libc, we don't want to enable them in the
final compiler. Doing so pass the configure stage, but fails latter on
a missing <pthread.h>.

Moreover, we don't want to build libgomp if threads are disabled; its
configure script would fails anyway.

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
2010-04-07 18:35:22 +02:00
Arnaud Lacombe
2059d43d86 cc/gcc: fix recent gcc build
This fix missed conversion of CT_GCC_USE_* to CT_CC_GCC_USE_*.

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
2010-04-07 18:35:21 +02:00
Yann E. MORIN"
a8979d911f binutils/sstrip: fix when sstrip is disabled 2010-03-24 22:21:52 +01:00
Yann E. MORIN"
5b8dcf755b binutils/sstrip: get rid of ELFkickers
ELFkickers are looong dead and unmaintained, and the sstrip
from buildroot is working fine *and* is maintained.
2010-03-17 00:28:14 +01:00
Yann E. MORIN"
b0fece4689 tools: move sstrip to the binary utilities menu
sstrip is now alone in its 'tools' menu, and we will probably never gain
any other 'tool'. Besides, sstrip is just strip, but a little bit more
agressive, so it deserves going to the 'binary utilities' menu.
2010-03-17 00:21:57 +01:00
Yann E. MORIN"
2244007325 debug/gdb: gdb>=7.0 can use MPC, enable for cross-gdb 2010-03-15 22:02:02 +01:00
Yann E. MORIN"
2583337c7c debug/gdb: add option to use GMP and MPFR
GMP and MPFR are optional for gdb, so offer a config option.
2010-03-15 21:51:20 +01:00
Yann E. MORIN"
8e47201cf2 cc/gcc: fix use of companion libraries 2010-03-05 18:55:25 +01:00
Yann E. MORIN"
b2c9b2d48f debug/gdb: fix building the native tic
The native 'tic' will _always_ be run on the build
machine, so no need to handle canadian/native/...

Reported by: Trevor Woerner
http://sourceware.org/ml/crossgcc/2010-03/msg00055.html
(transplanted from 26e89d367ea11660fd3a0bf0bcad8763e4fa21cf)
2010-03-16 23:10:46 +01:00
Yann E. MORIN"
8bc58e651d debug/ltrace: properly fix building for powerpc
ltrace uses ppc, whereas crosstool-NG use powerpc.
Fix that by passing the correct value to HOST when calling configure.
2010-03-07 12:30:01 +01:00
Yann E. MORIN"
ecfc6d2e2d debug/ltrace: fix building on x86
ltrace uses i386 and x86_64, whereas crosstool-NG use x86 for both cases.
Fix that by detecting what bitness we're building for, and pass appropriate
i386 or x86_64 to ltrace's configure.
2010-03-06 16:05:20 +01:00
Yann E. MORIN"
d380a84b52 complibs: remove headers after build
After the toolchain is built, we do no longer need the headers.
Reported-by: Enrico Weigelt <weigelt@metux.de>
2010-02-28 10:19:13 +01:00
Zhuang Yuyao
f8ba6cb7e6 arch: add mips64
This adds initial mips64 config option and build script.
2010-02-20 07:35:02 +01:00
Yann E. MORIN"
991b90f242 comp-libs: make libelf a companion library
When gcc-4.5 is out, it will require libelf. So better make it a
companion library now rather than postponing the ineluctable.
2010-02-17 23:41:17 +01:00
Yann E. MORIN"
2949150cbe complibs: hide companion libraries for target entry
The companion libraries on the target are required only for internal use by
binutils and gdb. The user should not have to know about this, so hide the
option.
2010-02-17 23:50:49 +01:00
Yann E. MORIN"
77a605d48e complibs: simplify config file
Although currently the wrapper is directly dependent on
companion libraries, let's still decorelate those two.
2010-02-18 20:43:31 +01:00
Yann E. MORIN"
3eaa187de5 complibs: split-up selection for individual libs 2010-02-17 23:47:47 +01:00
Yann E. MORIN"
c6689215d1 binutils/binutils: fix using GMP and MPFR 2010-02-09 22:50:53 +01:00
Titus von Boxberg
e6f4c47c21 comp-libs/mpfr: fix build on Darwin 2010-02-03 00:24:24 +01:00
Richard Strand
22fca0106e libc/eglibc: Add option to optimize for size
Add an option to eglibc to optimize for size using -Os.

Signed-off-by: Richard Strand <richard.strand@icomera.com>
2010-02-01 12:56:28 +00:00
Yann E. MORIN"
e46e74546d libc/glibc: fix retrieving version string 2010-01-30 16:19:50 +01:00
Yann E. MORIN"
958138fff1 libc/glibc: get the version string from version.h
We can not rely on the user-provided version string (be it via the
choice, or manually entered), so fallback to reading version.h,
which is both reliable and always present.
2010-01-12 19:37:18 +01:00
Yann E. MORIN"
e3a4063ac6 scripts/functions: change handling of nochdir
- 'nochdir' must be the first option
- have systematic pushd/popd, even if nochdir
2010-01-12 19:24:03 +01:00
Yann E. MORIN"
c5462c814f libc/glibc: get rid of the now obsolete CVS stuff
It's now been a while that glibc switched to git from cvs.
Get rid of cvs to download glibc; this will make for a good
cleanup before we add git support! :-)
2010-01-11 22:47:58 +01:00
Yann E. MORIN"
8577bc52c1 kernel/linux: remove legacy check
Now, we only support building with Linux >=2.6.27.
Get rid of the code that depended on <2.6.18.
2010-01-29 22:55:35 +01:00
Yann E. MORIN"
9e595444f4 binutils/elf2flt: activate elf2flt build
The code has been lying around inactivated for some time.
Let's enable it at last, and see if any one needs it.
2010-01-29 22:43:28 +01:00
Yann E. MORIN
6d70a576da arch: add basic m68k support
Signed-off-by: Remy Bohmer <linux@bohmer.net>
[yann.morin.1998@anciens.enib.fr: use defaults for CT_TARGET_ARCH]
Signed-off-by: "Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
2010-01-29 23:23:59 +01:00
Yann E. MORIN"
3a71b208b3 Merge. 2010-01-23 22:15:17 +01:00
Yann E. MORIN"
542419d6a0 libc/uClibc: fix the breakage for x86 and Super-H, after the 32/64 merge 2010-01-23 22:06:11 +01:00
Yann E. MORIN"
849713aa43 libc/uclibc: use CT_ARCH, in place of CT_KERNEL_ARCH
Since we merged the 32/64-bit archs, and we explicitly used
the Linux kernel arch name, we can get rid of CT_KERNEL_ARCH.
2010-01-23 18:41:59 +01:00
Yann E. MORIN"
ac46ac3dd5 libc/glibc: use CT_ARCH, in place of CT_KERNEL_ARCH
Since we merged the 32/64-bit archs, and we explicitly used
the Linux kernel arch name, we can get rid of CT_KERNEL_ARCH.
2010-01-23 18:40:38 +01:00
Yann E. MORIN"
6b73ea68c5 kernel/linux: use CT_ARCH, in place of CT_KERNEL_ARCH
Since we merged the 32/64-bit archs, and we explicitly used
the Linux kernel arch name, we can get rid of CT_KERNEL_ARCH.
2010-01-23 18:39:28 +01:00
Yann E. MORIN"
ed71d902c9 debug/gdb: fix the space-damage 2010-01-21 22:45:09 +01:00
Yann E. MORIN"
64aae637f8 debug/gdb: do not expose the ncurses version in the menuconfig 2010-01-21 22:33:54 +01:00
Yann E. MORIN"
8f41039a3c debug/gdb: install ncurses in a temporary place
We only build the static ncurses, to be used to build the native gdb,
and it needs not be available for anyone but us. So install it into
a temporary place, and get rid of it once gdb is built.
2010-01-13 22:30:10 +01:00
Yann E. MORIN"
ad943c1a37 debug/gdb: staticaly link to ncurses for the native gdb
Staticaly link the native gdb (the one that runs on the target,
not the cross one that runs on the host) to ncurses.
2010-01-13 20:46:01 +01:00
Richard Strand
b6cf64a802 companion_tools/libtool: Add libtool tool
Add version 2.2.6b of libtool as a companion tool

Signed-off-by: Richard Strand <richard.strand@icomera.com>
2010-01-12 21:47:57 +00:00
Richard Strand
c782756cd3 companion_tools/automake: Add automake tool
Add version 1.11.1 of automake as a companion tool

Signed-off-by: Richard Strand <richard.strand@icomera.com>
2010-01-12 21:47:36 +00:00
Richard Strand
e3a8a01025 companion_tools/m4: Add m4 tool
Add version 1.4.13 of m4 as a companion tool

Signed-off-by: Richard Strand <richard.strand@icomera.com>
2010-01-12 21:47:14 +00:00
Yann E. MORIN"
df2e088c8f companion_tools/autoconf: add autoconf tool
Initial version of adding autoconf as a companion tool.

Signed-off-by: Richard Strand <richard.strand@icomera.com>
[yann.morin.1998@anciens.enib.fr: use generic overide tools dir]
[yann.morin.1998@anciens.enib.fr: update menu entries]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-01-12 21:09:30 +01:00
Yann E. MORIN"
261709c8d4 libc/glibc: correctly handle dual-bitness archs
If the selected ARCH is dual-bitness (eg. supports 32- and 64-bit),
then we need to know the correct place where to fetch some headers.
Currently, this applies only to x86 variants: i386 and x86_64.
2010-01-09 16:05:01 +01:00
Yann E. MORIN"
fbd2a88e6e arch/alpha: cleanup Alpha code 2010-01-09 15:57:07 +01:00
Yann E. MORIN"
27199362d5 debug/ltrace: fix for a latent bug 2010-01-05 23:27:19 +01:00
Yann E. MORIN"
e950bbfeb2 debug/ltrace: chop long lines 2010-01-05 18:56:44 +01:00
Joachim Nilsson
ac08d4a45e debug/ltrace: set the ltrace extension to .tar.gz
Trying to download every extension in turn does not work.
The Debian server returns a friendly 404-page that is
saved as the orig.tar.bz2 file.  Help the helper by giving
it the extension to retrieve.
2010-01-05 11:43:31 +01:00
Joachim Nilsson
c704137fd6 debug/ltrace: Add support for ltrace-0.5.3
From this version of ltrace the maintainer has removed support for
GNU Autotools, so the patch sets needed to be reworked.

Included is the latest Debian patch, by the Debian ltrace maintainer
Juan Cespedes <cespedes@debian.org>, the OpenEmbedded patches for cross
compiling, by Khem Raj <raj.khem@gmail.com> and a further set of patches
by Joachim Nilsson <jocke@vmlinux.org> for crosstool-NG.
2010-01-03 16:46:58 +01:00
Yann E. MORIN"
8908eb3037 misc: do not use "tar cf - |tar xf -"
Using this: tar cf - -C "/some/place" |tar xf - -C "/some/other/place"
to copy a directory to another place does not properly fail (when it does).

Using this instead: cp -av "/some/place" "/some/other/place"
makes it easy to see why and how it failed.

Impacted:
    libc/uClibc
    debug/ltrace
    tools/sstrip
    scripts/populate
2010-01-02 18:00:54 +01:00
Yann E. MORIN"
5ae9b7faf9 libc/uClibc: do not mangle ARM {E,O}ABI when ARCH != ARM 2010-01-01 16:52:55 +01:00
Yann E. MORIN"
d744220447 libc/uClibc: beautify the munge function 2010-01-01 18:47:20 +01:00
Yann E. MORIN"
da84e43df4 debug/tools: set the ncurses extension to .tar.gz
TRying to download every extension in turn takes ages, so
help the helper by telling what extension to retrieve.
2009-12-30 15:38:03 +01:00
Yann E. MORIN"
15627cbf8c libc/glibc: configure libc headers with support for 128-bit long double
At the headers install pass, there's no compiler to test for the size
of long double. Help it: we know that the compiler does support 128-bit
long double, in the IBM extended precision.

Kindly pointed out, and explained, by Mike FRYSINGER:
  http://sourceware.org/ml/crossgcc/2009-11/msg00040.html
  http://sourceware.org/ml/crossgcc/2009-11/msg00057.html
2009-11-17 23:41:49 +01:00
Simon Pasch
a4980248f3 libc/uClibc: add wchar support 2009-11-06 20:17:30 +01:00
Yann E. MORIN"
cb52ec6051 arch/s390: commonalise the 32- and 64-bit s390 arch 2009-11-17 11:54:44 +01:00
Yann E. MORIN"
7ea82181db arch/x86: commonalise the 32- and 64-bit x86 arch 2009-11-17 11:51:57 +01:00
Yann E. MORIN"
28b38f9222 arch/ppc: commonalise the 32- and 64-bit PowerPC arch 2009-11-17 11:33:59 +01:00
Yann E. MORIN"
07dfc06659 Merge. 2009-11-16 22:37:39 +01:00
Yann E. MORIN"
bd8e670d5e libc/glibc: allow more than one line in configparms 2009-11-16 20:24:03 +01:00
Yann E. MORIN"
385a616b10 arch/s390: cleanups
Don't select unneeded config knobs. Don't select non-existing config knobs.
Use the "no patch" config knob, instead of pointing to an non-exiting local
patch dir. Simplify the tuple-related scripts. Update the samples.
2009-11-16 20:18:09 +01:00
harold
2cde67ddc4 arch: add s390 and s390x architectures and samples 2009-11-14 15:03:01 -06:00
Yann E. MORIN"
c916a69abf arch/arm: add THUMB interworking support
Add config option to build wtarget code with THUMB interworking.
This is used to build the C library as well as all other code
that runs on the target.
2009-10-26 23:11:10 +01:00
Yann E. MORIN"
d2324af8c7 arch/arm: add THUMB mode config option 2009-10-26 09:10:38 +01:00
Yann E. MORIN"
da0ff22e6c arch/arm: no need to check for the ABI option
The ABI option can not be set if EABI was selected,
so no need to check for it.
2009-10-21 23:20:30 +02:00
Yann E. MORIN"
49e5b08739 libc/newlib: allow using CVS snapshots
The newlib "team" rolls new releases about once a year (december).
This is quite a long time between releases, in case code was fixed.
So, allow user to use a CVS snapshot to benefit early from fixes
and enhancements to newlib.
2009-10-26 22:00:30 +01:00
Yann E. MORIN"
68b9b30f6b libc/newlib: allow using newlib with archs other than avr32 2009-10-21 22:51:39 +02:00
Yann E. MORIN"
e8bd152863 libc/newlib: cleanup the build and finish steps
build step:
- ./configure
  - remove glibc-specific options
  - pass the target CFLAGS in the correct variable
- make:
  - build in //

finish step:
- print proper message in finish step
2009-10-26 23:20:33 +01:00
Yann E. MORIN"
88c997020f libc/newlib: fix host/target confusion
newlib handles the build/host/target a bit differently as one would expect:
  build  : not used
  host   : the nachine that builds newlib
  target : the machine on which newlib will run
2009-10-25 23:35:55 +01:00