Commit Graph

1549 Commits

Author SHA1 Message Date
Simon Dawson
a3daa6f785 Fix problem with undefined umode_t type in 3.3 kernel headers
The 3.3 kernel headers define the umode_t type within a __KERNEL__
preprocessor ifdef region. This results in a broken kernel header in the
buildroot toolchain.

[Peter: This is discussed upstream here:
https://bugzilla.kernel.org/show_bug.cgi?id=42986
Long term socat/syslinux should stop using this header, but this hasn't
been fixed upstream yet]
Signed-off-by: Simon Dawson <spdawson@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-29 10:42:24 +02:00
Gustavo Zacarias
d10dddf473 kernel-headers: bump 3.0.x and 3.2.x stable versions
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-20 14:15:02 +01:00
Peter Korsgaard
ea33b9b832 uClibc: enable utmpx support in defconfigs
It adds very little size overhead as the functions are just wrappers
around utmp, and E.G. systemd needs it.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-20 09:20:26 +01:00
Peter Korsgaard
c433c5ad7c uClibc: default to 0.9.33
This is the current stable version, and E.G. systemd doesn't build with
earlier versions.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-20 09:20:23 +01:00
Gustavo Zacarias
9c71810367 kernel-headers: bump 3.2.x stable version and add 3.3
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-19 11:48:15 +01:00
Peter Korsgaard
4a7462b34d toolchain: disallow internal/ctng toolchains for microblaze
While there's some microblaze support in mainline gcc from 4.6.x,
there still seems to be something missing with the uClibc support, so
disable these for now.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-19 00:26:01 +01:00
Alvaro G. M
bb7788fd86 Microblaze: added external toolchain from Xilinx
Signed-off-by: Alvaro G. M <alvaro.gamez@hazent.com>
Tested-by: Stephan Hoffmann <sho@relinux.de>
Downloading Microblaze LE toolchain works on a clean install
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-18 22:53:24 +01:00
Alvaro G. M
0a4856ce27 DOWNLOAD: change $1=DIRECTORY_URL, $2=FILE_NAME to $1=FULL_FILE_URL, $2=FILE_NAME
This modifies the definition of DOWNLOAD to receive two arguments:
the first one is the full URL of the file to download, whereas the second
(and optional) is the name the file will have once downloaded.

Same thing with the SOURCE_CHECK_WGET and SCP functions.

All calls to these functions have been changed to the shortest form of
the new API, except for toolchains acquisition. Since there is quite a
number of different toolchains this call to DOWNLOAD is better set to the
generic one.

Signed-off-by: Alvaro G. M <alvaro.gamez@hazent.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Stephan Hoffmann <sho@relinux.de>
Downloading Microblaze LE toolchain works on a clean install
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-18 22:21:16 +01:00
Arnout Vandecappelle (Essensium/Mind)
277bd1ff42 elf2flt: fix after conversion of binutils to package infrastructure
When binutils was converted to the package infrastructure (commit
009407e6b), the variable that elf2flt uses to find the binutils
libraries disappeared.  So use HOST_BINUTILS_DIR instead of
BINUTILS_DIR1.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-18 20:47:46 +01:00
Thomas Petazzoni
c56b58b4b7 debug: provide an option to copy the gdbserver to the target
When an external toolchain is used, it is very likely that it contains
a pre-built version of a gdbserver that has the same version as the
cross-gdb included in the external toolchain. So, we now provide an
option that allows to copy this pre-built gdbserver to the target.

As the location of the gdbserver in the external toolchain is not
standardized, we only support the CodeSourcery and Crosstool-NG
layouts for the moment. Other locations can be added later.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-15 23:04:39 +01:00
Arnout Vandecappelle (Essensium/Mind)
a22dc0f230 ext-toolchain: Automatically set -m64 if the architecture is x86_64
Without the -m64, choosing the x86_64 architecture with a Sourcery external
toolchain will result in a 32-bit rootfs.

Also simplified the help text to reflect this change.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-15 00:00:57 +01:00
Peter Korsgaard
e687bb71a0 gcc: bump 4.4.x version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-13 16:27:25 +01:00
Peter Korsgaard
8429c5873f kernel-headers: bump 3.0.x / 3.2.x stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-13 08:38:00 +01:00
Peter Korsgaard
6131e47af0 toolchain-external: add linaro 2012.02
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-06 23:38:39 +01:00
Peter Korsgaard
21561bd27c Merge branch 'for-2012.05/ext-toolchain-updates' of git://git.free-electrons.com/users/thomas-petazzoni/buildroot 2012-03-06 23:09:56 +01:00
Peter Korsgaard
3fc84ed292 gcc: bump 4.6.x version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-04 09:09:52 +01:00
Thomas Petazzoni
e6e60becb0 external-toolchain: add support for Linaro 2012.01
Linaro has just released a new pre-built toolchain, available as a
tarball, which is a pure toolchain (only the C library is
included). This makes this new Linaro 2012.01 toolchain usable in
Buildroot, so let's integrate the support for it.

In addition to simply adding the new external toolchain at the usual
locations, this patch allows need to adapt a few things to support
Linaro toolchains. Most toolchains store their libraries in the "lib/"
or "usr/lib" directories relative to the toolchain. Buildroot
toolchains on the other hand, store the libraries in the
"usr/<target-name>/lib" directory. And the Linaro toolchain has
choosen to use the "lib/<target-name>" directory. Therefore, this
patch adjust:

 * The logic to search a particular library when that library needs to
   be copied to the target directory

 * The logic to deduce the sysroot directory from the libc.a file
   location in the toolchain: removing "(usr/?)lib(64?)" is no longer
   sufficient, we need to take into account the "lib/<target-name>/"
   case.

Since the Linaro toolchain generates code for Cortex-A processors
only, the selection of this toolchain is limited to Cortex-A8 and
Cortex-A9.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:38 +01:00
Thomas Petazzoni
2ec3e6db46 external-toolchain: fix description of PowerPC 2010.09 from Mentor Graphics
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:38 +01:00
Thomas Petazzoni
090d486441 external-toolchain: adjust check for uClibc static toolchains
The current check for uClibc toolchain was verifying that a
ld-uClibc.so dynamic loader was present. However, with static-only
uClibc toolchains, this does not work. Instead, we check for an
uClibc-specific header file in the sysroot.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:38 +01:00
Thomas Petazzoni
3367d5ce77 external-toolchain: run checks even on extracted toolchains
When the mechanism that allows Buildroot to download external
toolchains automatically was added, all the sanity checks on the
external toolchains were not performed. This commit re-enables those
checks that we already do on external toolchains that are not
downloaded/extracted by Buildroot. This makes the toolchain checks
more consistent accross various configurations.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:38 +01:00
Thomas Petazzoni
c5c1064e49 external-toolchain: details on selecting the multilib variants
Each multilib variant need to be selected using a special combination
of flags, requiring specific choices of the Buildroot options. This
commit documents those configuration choices to make it easier to use
the various multilib variants.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:38 +01:00
Thomas Petazzoni
91d4336cbc external-toolchain: Blackfin.uclinux.org 2011R1-RC4
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:38 +01:00
Thomas Petazzoni
d00bd2a1f7 external-toolchain: add Sourcery CodeBench x86/x86_64 2011.09
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:38 +01:00
Thomas Petazzoni
22e0698eb8 external-toolchain: add Sourcery CodeBench PowerPC 2011.03
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:37 +01:00
Thomas Petazzoni
851508dedd external-toolchain: bump MIPS 2011.03 from -93 to -110
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:37 +01:00
Thomas Petazzoni
102c6b5fa1 external-toolchain: add Sourcery CodeBench ARM 2011.09
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:37 +01:00
Thomas Petazzoni
17b8cc930c external-toolchain: remove 2009q1 ARM Sourcery toolchain
We are going to add one more ARM Sourcery toolchain version, so it's
time to remove the oldest version.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:37 +01:00
Thomas Petazzoni
b95e436ee0 Expand external toolchain wrapper to custom flags
The BR2_TARGET_OPTIMIZATION flags were not used by the external
toolchain wrapper, which broke the multilib selection logic of
multilib external toolchains. It also simplifies the compilation of
external programs since all flags are properly passed automatically by
the toolchain wrapper.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:37 +01:00
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