Commit Graph

1521 Commits

Author SHA1 Message Date
Thomas Petazzoni
50ac5f9a57 Support multilib variants in sub-subdirectories
When an external toolchain has multiple variants organized in
sub-directories, Buildroot only copies the selected sysroot and not
all sysroots. In order to make this work, Buildroot creates a symbolic
link of the name of the original selected sysroot to the main sysroot
to trick the compiler so that it finds its libraries at the expected
location.

I.e, if the toolchain as the following organization (example take on
the ARM CodeSourcery toolchain) :

     .	    	for ARMv5T
     armv4  	for ARMv4T
     thumb2 	for ARMv7-A/Thumb

and ARMv4T is selected, then Buildroot will copy the contents of
armv4t/ from the toolchain into its $(STAGING_DIR) and then create a
$(STAGING_DIR)/armv4t symbolic link to $(STAGING_DIR).

However, our logic to do so only works when there was one directory
level for multilib sysroots. But in the MIPS CodeSourcery toolchain
there are multiple levels. For example, the MIPS16 soft-float
little-endian sysroot variant is in mips16/soft-float/el/ compared to
the main sysroot.

This patch improves our logic to support this case. The logic is a bit
more complicated as we don't want to create a symbolic link to an
absolute path, but a symbolic link to a relative path, because we want
the host/ directory to be relocatable.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:36 +01:00
Thomas Petazzoni
0729b544b3 Improve external toolchain logic to support IA32 Sourcery CodeBench toolchain
The IA32 Sourcery CodeBench toolchain has a relatively special
structure, with the following multilib variants:

 * Intel Pentium 4, 32 bits, the multilib variant is in ./ relative to
   the main sysroot, with the libraries in the lib/ directory.

 * Intel Xeon Nocona, 64 bits, the multilib variant is in ./ relative
   to the main sysroot, with the libraries in the lib64/ directory.

 * Intel Atom 32 bits, the multilib variant is in atom/ relative to
   the main sysroot, with the libraries in the lib/ directory.

 * Intel Core 2 64 bits, the multilib variant is in core2/ relative to
   the main sysroot, with the libraries in lib64/ directory.

So the first two variants are in the same sysroot, only the name of
the directory for the libraries is different.

Therefore, we introduce a new ARCH_LIB_DIR variable, which contains
either 'lib' or 'lib64'. This variable is defined according to the
location of the libc.a file for the selected multilib variant, and is
then used when copying the libraries to the target and to the staging
directory.

In addition to this, we no longer use the -print-multi-directory to
get the ARCH_SUBDIR, since in the case of the 64 bits variants of this
toolchain, it returns just '64' and not a real path. Instead, we
simply compute the difference between the arch-specific sysroot and
the main sysroot.

We also take that opportunity to expand the documentation on the
meaning of the different variables.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:36 +01:00
Peter Korsgaard
dca6e03eac kernel-headers: bump 3.0.x / 3.2.x stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-01 14:07:29 +01:00
Peter Korsgaard
4280c15039 uClibc: rename 0.9.33 syscall_ncs patch
No need for double dashes - Purely cosmetical.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-27 10:48:56 +01:00
Peter Korsgaard
bba4bdfc53 kernel-headers: bump 3.0.x / 3.2.x stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-24 14:36:49 +01:00
Peter Korsgaard
7553f043ad uClibc: add upstream 0.9.33 fixes
Fixes build on E.G. powerpc.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-16 12:20:01 +01:00
Peter Korsgaard
74c7b15a90 kernel-headers: bump 3.0.x / 3.2.x stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-14 00:13:09 +01:00
Thomas De Schampheleire
a792668b58 dependencies: move from toolchain/ to support/
As suggested by Arnout Vandecappelle, move toolchain/dependencies to
support/dependencies, as it really is not toolchain-specific anymore.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-09 21:45:59 +01:00
Peter Korsgaard
2987a6fef5 kernel-headers: bump 3.2.x stable version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-09 08:51:36 +01:00
Peter Korsgaard
7100a2cc33 dependencies.sh: fix host g++ check when ccache is used
Similar to how we do it for gcc.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-08 23:40:20 +01:00
Peter Korsgaard
436ceeafbc kernel-headers: bump 3.0.x / 3.2.x stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-06 17:24:19 +01:00
Peter Korsgaard
4a49379571 uClibc: tweak 0.9.33 / snapshot configs
With default values so it doesn't stop build and ask user. Also disable
2.4 modules support by default like upstream does.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-02 10:06:44 +01:00
Peter Korsgaard
8ed392f3d6 toolchain-buildroot: enable / default to NPTL fr uClibc 0.9.33 as well
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-02 09:07:23 +01:00
Peter Korsgaard
aea3ac7a9f uClibc: add 0.9.33
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-02-02 00:34:12 +01:00
Peter Korsgaard
e157720be3 kernel-headers: bump 3.0.x / 3.2.x stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-26 09:03:05 +01:00
Peter Korsgaard
21f39f524f gdb: add 7.4, mark 7.1 as deprecated
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-24 22:28:47 +01:00
Peter Korsgaard
afb6e3ed52 gdb: also force ELF support for gdbhost
Similar to how we do for target (ee39d53ce3ee (Fix GDB BFD test linking)).

Gdb comes with an embedded copy of libiberty, but binutils also installs
libiberty.a into HOST_DIR. The gdb configure script tries to link against
this one rather than the gdb version when it checks for ELF support.
This may fail if those versions are not compatible, leading to obscure
error messages from gdb at runtime such as:

I'm sorry, Dave, I can't do that. Symbol format `elf32-$ARCH' unknown.

Fix it by forcing ELF support.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-24 12:46:37 +01:00
Peter Korsgaard
5c8747d2c4 ctng: use gcc 4.4.6
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-22 22:54:58 +01:00
Peter Korsgaard
5fd3015c7e ctng: use 3.0.4 kernel headers
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-22 22:53:19 +01:00
Peter Korsgaard
95375f81f7 ctng: use internal toolchain uClibc config, build uClibc 0.9.32
So the uClibc configurations are kept in sync between the two toolchain
methods.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-22 22:46:35 +01:00
Peter Korsgaard
2e913392df kernel-headers: bump 3.1.x stable version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-18 19:15:13 +01:00
Peter Korsgaard
d0880f70fa gcc-uclibc-4.x.mk: get rid of BR2_DEPENDS_DIR
Now that we have dropped the make-write-deps patch.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-15 20:59:37 +01:00
Thomas De Schampheleire
8f8d414b61 Fix typo buiding -> building
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-15 20:47:58 +01:00
Gustavo Zacarias
b4c493d376 kernel-headers: bump 3.0.x, 3.1.x and 3.2.x series
Bump 3.0.x series to 3.0.17, 3.1.x series to 3.1.9 and 3.2.x series to
3.2.1

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-13 11:45:52 +01:00
Peter Korsgaard
b0bcafc6a0 Remove java support
Has been marked as broken since July 2010 (39e6ba1b), and nobody has
stepped up to support it, so now finally remove it completely.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-12 22:08:56 +01:00
Gustavo Zacarias
f7950dbfe5 kernel-headers: bump 3.1.x series to version 3.1.8
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-09 22:55:04 +01:00
Gustavo Zacarias
5a6087d62e toolchain: add powerpc SPE ABI support
Add the ability for buildroot to build an SPE ABI enabled toolchain.

This is mandatory for e500v1/v2 cores since they don't support classic
FPU mode as the e500mc does.

Useful for Freescale's PowerQUICC III and single/dual-core QorIQ
line of processors.

The new TARGET_ABI variable is used rather than TARGET_CFLAGS for
uclibc's UCLIBC_EXTRA_CFLAGS to avoid breakish CFLAGS leaking in, a
good example being -mthumb for ARM.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-07 20:46:11 +01:00
Gustavo Zacarias
e082ababc9 kernel-headers: bump 3.0 & 3.1 stable versions, add 3.2
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-06 10:28:35 +01:00
Gustavo Zacarias
9fd4c35058 uClibc: bump 0.9.32.x version to 0.9.32.1
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-01-02 15:09:31 +01:00
Peter Korsgaard
808bfd0731 kernel-headers: bump 3.0.x / 3.1.x stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-12-21 23:57:41 +01:00
Sven Neumann
267e167216 kernel-headers: bump 3.0.x / 3.1.x stable versions
[Peter: rename headers_install patch so it gets applied]
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-12-11 22:22:29 +01:00
Peter Korsgaard
7cfa3acbbe gcc: remove old 4.2.4 version
We unfortunately cannot remove the avr32 variant yet.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-12-08 23:39:57 +01:00
Peter Korsgaard
c1ae7cdd69 gcc: default to 4.5.x
The 4.3.x series is getting quite old, so let's use 4.5 instead.

There were reports of problems in the past, which is why this is done
early in the cycle.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-12-08 23:37:15 +01:00
Gustavo Zacarias
713bb00aa2 uclibc: update internal toolchain build
Update the uClibc build procedure to accomodate for the new build
system, otherwise it breaks with snapshot versions.
As pointed by linuxjacques on IRC.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-12-07 22:42:48 +01:00
Gustavo Zacarias
7dc413255b uClibc: add unshare() syscall support
Add unshare() syscall support for uClibc 0.9.31 and 0.9.32 series.
This is required by newer versions of iproute2.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-12-07 21:53:28 +01:00
Gustavo Zacarias
eb9e933292 uClibc: remove deprecated 0.9.30 series
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-12-07 21:48:57 +01:00
Peter Korsgaard
2c6390a5d0 dependencies: check for extract tools as well
Most of the extract tools (gzip/bzip/..) we already check for explicitly
in dependencies.sh (as they are used outside GENTARGETS), but not for
xzcat.
The .xz format is used fairly rarely, and it is likely to not be available
on build hosts, so an explicit (hardcoded) check for it isn't optimal.
Instead, add the inflate tools used to DL_TOOLS_DEPENDENCIES, similar to
how we do it for svn/git/bzr/...

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-12-04 20:27:21 +01:00
Peter Korsgaard
effecb4a01 kernel-headers: bump 3.0.x / 3.1.x stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-29 09:17:20 +01:00
Sven Neumann
c71833418e kernel-headers: update to 3.1.3 and 3.0.11
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-27 22:41:09 +01:00
Peter Korsgaard
1db649c6fe uClibc: remove trailer from linuxthreads-errno patches confusing modern patch
Modern versions of patch (2.6.1.81 / 85 tested) gets confused by the empty
git trailer referencing uClibc_errno.h (from when patch was forward ported
from 0.9.31), so drop it.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-24 22:29:46 +01:00
Peter Korsgaard
5931db0de9 gdb: fix kconfig dependency handling with !BR_TOOLCHAIN_BUILDROOT
Newer versions of GDB need pthread debugging support if threads are
enabled, which is always the case for glibc but is a configure option
for uClibc.

We have solved this for internal toolchains by selecting the
BR2_PTHREAD_DEBUG option from the GDB selection if needed, but as this
option isn't available when ctng/external toolchains are used, mconf
prints ugly warnings and the build may fail if an external uClibc
toolchain without pthread debugging support is used.

Fix it by introducing 2 more hidden config options:
 - BR2_TOOLCHAIN_HAS_THREADS_DEBUG
 - BR2_TOOLCHAIN_HAS_THREADS_DEBUG_IF_NEEDED

The first tells us if the toolchain HAS pthreads debugging support,
and is checked by check_uclibc_feature in helper.mk for external uClibc
based toolchains.

The second tells us if the toolchain is ABLE TO provide pthreads debugging
support if threads are enabled, either because it's an internal toolchain
where we can force enable it or an external glibc/eglibc toolchain or
uClibc with the option enabled.

Crosstool-ng forcibly enables this support, so those will always work.
The preconfigured uClibc-based toolchains we have also all enable it.

Finally, show a comment if this isn't the case so the (external toolchain)
user knows why. This is placed outside the choice option, as menuconfig
has a bug where it doesn't show choice selections which only contain
comments.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-24 14:26:52 +01:00
Peter Korsgaard
e9985f5d5f gdb: fix version logic for bfin
GDB should default to 6.6 on bfin, not on !bfin.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-23 23:32:00 +01:00
Gustavo Zacarias
66bdd2a27b kernel-headers: update to 3.1.2 and 3.0.10
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-22 10:15:29 +01:00
Thomas De Schampheleire
8810f5a195 dependencies: remove unused lzma checking scripts
Files package/lzma/lzmacheck.sh and toolchain/dependencies/check-host-lzma.sh
are present since the very beginning of buildroot, but do not appear to be
used (anymore). Let's remove them.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-17 23:19:37 +01:00
Thomas De Schampheleire
4932c8a7cc dependencies: check core dependencies before anything else
Currently, the dependencies target (that runs dependencies.sh) depends on
DEPENDENCIES_HOST_PREREQ. This means that the dependencies listed in
DEPENDENCIES_HOST_PREREQ (currently host-sstrip if sstrip is selected) are
built *before* the dependencies.sh script is run.

As a result, if e.g. there is no gcc compiler present on the build system, the
dependencies in DEPENDENCIES_HOST_PREREQ will fail to build, and buildroot
will fail non-gracefully.

This patch makes sure that the DEPENDENCIES_HOST_PREREQ are checked *after* the
dependencies.sh script, so that any problem in the build system is reported in
a clean way by dependencies.sh.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-17 23:18:50 +01:00
Gustavo Zacarias
8c38a0a44b uClibc: fix sparc build breakage
Closes #4021

Fix build breakage for sparc as reported in bug #4021
Patches from Konrad Eisele <konrad@gaisler.com>
Submitted in the uclibc mailing list.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-17 06:57:19 +01:00
Peter Korsgaard
e9668efcd2 kernel-headers: bump 3.0.x stable version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-14 13:14:46 +01:00
Sven Neumann
da9ab19c4a kernel-headers: update stable kernel version to 3.1.1
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-14 13:13:10 +01:00
Thomas Petazzoni
096c185c19 target gdb: depend on thread support
Compiling gdb for the target requires thread support in the C library,
otherwise:

/home/test/outputs/test-888/toolchain/gdb-7.3.1/gdb/gdb_thread_db.h:37:21: fatal error: pthread.h: No such file or directory

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-13 21:32:57 +01:00
Thomas Petazzoni
33b8c556af gdb: do not allow native gdb on SuperH architecture
The gdb debugger does not have support for running as the native
debugger on the SuperH architecture:

 configure: error: "*** Gdb does not support native target sh4-unknown-linux-gnu"

See also http://lists.debian.org/debian-superh/2010/04/msg00000.html.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-11-13 21:31:39 +01:00