Commit Graph

399 Commits

Author SHA1 Message Date
Peter Korsgaard
fb67a2dc3a gcc: remove deprecated gcc 4.2.[1-3] versions and unused patches
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-08-30 11:08:41 +02:00
Thomas Petazzoni
d6d6ff6a9c Add the patch fixing gcc 4.2.4 to gcc 4.2.2
The patch introduced by commit
1ed2e4fffd must also be added to gcc
4.2.2 to let the AVR32 toolchain build properly.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-08-30 11:07:39 +02:00
Khem Raj
1ed2e4fffd toolchain/gcc: fix 4.2.4 build after uClibc NTPL support got added
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-08-25 17:28:19 +02:00
Thomas Petazzoni
0fa2a04417 Add the traditional powerpc-link-with-math-lib patch to gcc 4.4.4
Patch taken from Crosstool-NG patchset.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-08-11 13:25:50 +02:00
Peter Korsgaard
18abd4aa94 gcc: move <tuple>/lib* symlink handling up to gcc-intermediate
The <tuple>/lib* symlinking added by 3c77bab2ee needs to
be moved up to the gcc-intermediate step now the NPTL stuff is merged,
otherwise 64bit builds fails (lib64 already created).

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-30 10:02:23 +02:00
Peter Korsgaard
8d4f9ba707 toolchain: enforce --disable-multilib
Since 5575d205c (toolchain: remove multilib) we were no longer passing
--disable-multilib, which broke builds for multilib-capable archs (like
x86-64, ppc, ..).

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-30 09:31:39 +02:00
Khem Raj
c6c7b99733 gcc-4.2.4: Add patch to accept --with-abi=aapcs-linux
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-29 16:57:10 +02:00
Khem Raj
cfbf8abc33 Add support for uclibc NPTL toolchain.
This patch modifies current toolchain build sequence so that
NPTL enabled toolchain can be built. The new sequence works
well with linuxthreads as well.

It introduces a new pass for gcc cross compilation. The new
sequence is binutils->gcc-initial->linux-headers -> uclibc-configured
(some cheats to generate phony shared libc.so and libm.o)
-> gcc-intermediate(with shared lib support) -> uclibc -> gcc-final

I also added a new sample config arm_nptl_toolchain_defconfig which
builds the toolchain and busybox.

I have only tried it on arm. However it should work for other
architectures which support NPTL on uclibc e.g. mips, sh, x86, ppc, x86_64

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-29 16:57:00 +02:00
Thomas Petazzoni
5575d205c3 toolchain: remove multilib
Supporting multilib is much more than just passing --enable-multilib
to gcc. You have to actually build the C library several times (once
for each multilib variant you want to support in your toolchain), and
to pass MULTILIB_OPTIONS/MULTILIB_EXCEPTIONS values to gcc to let it
know the set of multilib variants you're interested in.

Since we'll probably never support multilib toolchains in Buildroot,
just get rid of this BR2_ENABLE_MULTILIB option.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-28 23:21:45 +02:00
Thomas Petazzoni
6d4a992e2b gcc: remove option on SJLJ exceptions
This is a very advanced option, and it seems, according to
http://choices.cs.uiuc.edu/exceptions.pdf that SJLJ exceptions aren't
really interesting.

Users really interested by this can always use the
BR2_EXTRA_GCC_CONFIG_OPTIONS is they want.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-28 17:38:31 +02:00
Peter Korsgaard
91f8edad3e Merge branch 'avr32-toolchain-fix' of git://git.busybox.net/~tpetazzoni/git/buildroot 2010-07-27 23:06:16 +02:00
Thomas Petazzoni
460ba963ac toolchain: remove redundant and incorrect --with-build-time-tools option
This option is already part of the gcc configure options through the
BR2_CONFIGURE_BUILD_TOOLS variable (in toolchain/Makefile.in).

Additionnally, the value that was passed in the AVR32 specific case
was incorrect: it was $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin
instead of $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-27 22:58:05 +02:00
Thomas Petazzoni
2ae84ac85f binutils,gcc: use correct --prefix
The cross binutils and cross gcc are actually going to be executed
from $(STAGING_DIR)/usr, so the correct prefix is $(STAGING_DIR)/usr
and not /usr.

This also fixes what is known as the "AVR32 toolchain build failure",
which was due to the fact that the prefix directory wasn't writable
(since it was /usr).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-27 22:56:36 +02:00
Peter Korsgaard
3fdf280568 Merge branch 'various-bumps' of git://git.busybox.net/~tpetazzoni/git/buildroot 2010-07-27 22:52:19 +02:00
Thomas Petazzoni
3c77bab2ee Create <tuple>/lib -> <sysroot>/lib symlink before installing cross gcc
This commit solves bug #1051. The problem in this bug in that WebKit
compiles a sample C program, which uses WebKit. As WebKit is written
in C++, even though the program it built with CROSS-gcc, it must be
linked with libstdc++. However, CROSS-gcc can't find the libstdc++ has
it's hidden inside <sysroot>/<tuple>/lib.

Therefore, this commit creates a symbolic link <sysroot>/<tuple>/lib
-> <sysroot>/lib before running the CROSS-gcc installation. While this
may look like a hack, this is the solution used by both Crosstool-NG
and OpenWRT.

Moreover, with this symbolic link in place, I think bug #1741 may also
be solved. The problem in this bug is that the linker tries to link
against /lib/libc.so.0. This is due to the fact that the linker finds
a libc.so script file in the original toolchain location and not
inside the copy of the toolchain sysroot in $(STAGING_DIR). As the
script file is found outside of the current toolchain sysroot, ld
considers the script has non-sysrooted, and therefore doesn't prefix
all paths found in the script file (such as /lib/libc.so.0) with the
sysroot path, leading to the failure.

So, in details, this commit :

 * Adds a BR2_ARCH_IS_64 invisible config knob that is used to know if
   the arch is a 64 bits architecture or not.

 * Creates the <sysroot>/<tuple>/lib -> <sysroot>/lib symbolic link,
   and the <sysroot>/<tuple>/lib64 -> <sysroot>/lib64 symbolic link if
   needed.

 * Fixes the external toolchain sysroot detection code so that the
   'sed' replacement is done *after* the readlink -f evaluation.

I have tested this by building ARM, x86 and x86_64 toolchains with
Buildroot, and then use these toolchains as external toolchains to
build a full X.org/Gtk/WebKit/Midori stack. I have also done a
complete ARM Buildroot internal toolchain build with the same full
X.org/Gtk/WebKit/Midori stack.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-27 22:49:36 +02:00
Thomas Petazzoni
454b70d03a target-g++: fix build
Just as we did to fix target-gcc, pass CXX_FOR_TARGET when building
target g++, and remove useless copies of g++ and c++.

Tested on ARM by compiling a simple C++ program using <iostream> on
the target and running it.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-27 22:32:02 +02:00
Thomas Petazzoni
fed6a2a6ea target-gcc: remove useless copies of gcc
When doing the "make install" of target, three identical copies of gcc
are installed in $(TARGET_DIR)/usr/bin:

  039adcc582c365f12ba6fc5f96098128  arm-unknown-linux-uclibcgnueabi-gcc
  039adcc582c365f12ba6fc5f96098128  arm-unknown-linux-uclibcgnueabi-gcc-4.3.5
  039adcc582c365f12ba6fc5f96098128  gcc

This patch removes the first two copies and keeps only the common "gcc" one.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-27 18:23:32 +02:00
Thomas Petazzoni
4e62eeed19 target-gcc: no need to strip binaries, remove .la files and doc
This is done in a global way by the target-finalize target of the main
Makefile.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-27 18:23:32 +02:00
Thomas Petazzoni
f43054d841 target-gcc: fix build
Now that $(STAGING_DIR)/usr/bin is no longer in the PATH, we need to
pass the absolute paths to $(TARGET_CC) when building the target gcc
compiler.

This commit fixes the target gcc build problem reported on the list. I
have successfully been able to build a target gcc for ARM, use it to
compile a hello world application on the target and run this
application.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-27 18:23:16 +02:00
Thomas Petazzoni
5e8e1cdb60 target-gcc: Get rid of TARGET_GCC_FLAGS
This variable is used only once, so let's just hardcode its value at
its call site.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-27 18:22:44 +02:00
Peter Korsgaard
39e6ba1b39 java: mark as broken
We haven't had any updates to the java packages in a long time,
gcj in 4.3.x doesn't build, and 4.4.x is missing ecj1, so it cannot
have many users.

Mark it as broken and remove during the 2010.11 cycle, unless someone
steps up to maintain it.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-26 22:25:19 +02:00
Peter Korsgaard
0ac8553664 toolchain/gcc: cleanup softfloat selection
We don't have a BR2_SOFT_FLOAT_FP option, and -mfloat-abi should also
be used for big endian ARM.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-09 09:20:58 +02:00
Peter Korsgaard
52b8d0478a toolchain: remove unused special detection of old toolchains
We only support gcc >= 4.2.x for the internal toolchain.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-02 09:13:30 +02:00
Peter Korsgaard
5fd095b374 toolchain: remove gcc 4.1.2 and non-sysroot support
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-15 23:16:55 +02:00
Peter Korsgaard
144e4ed085 toolchain/gcc: Use 4.3.x like for 4.4, get rid of older 4.3.x versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-15 22:58:17 +02:00
Gustavo Zacarias
947a9b8586 toolchain: bump gcc 4.3.x series to 4.3.5
Closes #2065

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-15 22:54:44 +02:00
Peter Korsgaard
4439d38890 toolchain/gcc: bump 4.4.x version to 4.4.4
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-05-02 23:22:26 +02:00
Thomas Petazzoni
02bc426214 Get rid of all usages of BR2_RECENT
Since BR2_RECENT was enabled by default, we do not want entries marked
BR2_RECENT (and thus appearing by default in Buildroot) to disappear.

Therefore, all the entries marked BR2_RECENT are converted as
non-deprecated. We can later decide, on a per-entry basis, to add
BR2_DEPRECATED to some of them. But at least, this commit doesn't
change the default current behaviour of Buildroot.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-04-12 15:26:37 +02:00
Thomas Petazzoni
7a0263525f Remove BR2_PREFER_IMA
This option is barely used, no-one is maintaining it or extending
it. So let's remove it.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-04-11 05:59:59 +02:00
Peter Korsgaard
6cdcc4d7d8 gcc: hide shared libgcc option if BR2_PREFER_STATIC_LIB is enabled
Shared libgcc without shared libs doesn't make much sense.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-04-05 13:48:10 +02:00
Peter Korsgaard
f220498f4b get rid of broken nios2 support
Has been marked as broken for more than 1 year, with no indication
that anyone cares, and it needs a bunch of special handling.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-03-30 17:19:59 +02:00
Peter Korsgaard
f561763e91 gmp/mpfr: make sure host builds add source targets to HOST_SOURCE
Closes #1183.

When gmp/mpfr is needed for the host (E.G. when using an internal toolchain),
the host-lib{gmp,mpfr}-source targets weren't added to HOST_SOURCE, so
make source / external-deps didn't handle them.

Notice that we have the same issue with the new host package support,
there we should probably use HOST_<package>_DEPENDENCIES for -source
dependencies.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-02-25 17:27:50 +01:00
Thomas Petazzoni
a35d48f984 gcc on target: add missing definitions for gcc 4.4
Depending on the gcc version, the gcc include and lib directories have
changed. We include support for gcc 4.4 by copy/pasting the support
for gcc 4.3. Locations don't seem to have changed between 4.3 and
4.4. This allows the syslimits.h fixup to succeed.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-02-25 09:47:01 +01:00
Peter Korsgaard
6c26a600d0 toolchain/gcc: bump 4.4.x version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-01-23 23:07:50 +01:00
Thomas Petazzoni
962ea5b29b gcc: do not pass --with-pkgversion to gcc < 4.3
Commit 09c181f289 added new options
passed to gcc configure to set --with-pkgversion and --with-bugurl, to
gcc >= gcc 4.3. To check this, it was checking that the GCC_VERSION
string does not contain 4.2.

Unfortunately, the test is bogus. It does a findstring on x4.2. (with
a final dot) but compares the result with x4.2 (without the final
dot).

The result is that even with 4.2 versions, the test was true, leading
--with-pkgversion and --with-bugurl being passed to gcc's configure
script.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-15 12:03:05 +01:00
Peter Korsgaard
29a9d99b18 Merge branch 'remove-external-toolchain' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-12-15 00:19:17 +01:00
Thomas Petazzoni
ebf4f67a8d gcc: remove external sources patches
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-14 23:54:47 +01:00
Thomas Petazzoni
bc994c533c Use BR2_TOOLCHAIN_BUILDROOT instead of BR2_TOOLCHAIN_SOURCE
The BR2_TOOLCHAIN_SOURCE option is removed in a future commit.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-14 23:54:47 +01:00
Thomas Petazzoni
495e5bdca3 gcc: remove GCC_OFFICIAL_VERSION and just use GCC_VERSION instead
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-14 23:54:45 +01:00
Thomas Petazzoni
3f90a29baf gcc: remove support for external source toolchains
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-14 23:54:44 +01:00
Thomas Petazzoni
636afc4664 gcc: improve configuration for snapshot versions
Make the selection of a snapshot version a normal gcc version choice,
and make sure BR2_GCC_VERSION is properly defined.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-14 23:54:44 +01:00
Thomas Petazzoni
5c6ccd9f20 gcc: on avr32, only allow avr32 gcc versions
Remove references to BR2_EXT_GCC_VERSION_* configuration options, and
only allows special avr32 gcc versions on the AVR32 architecture.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-14 23:54:43 +01:00
Thomas Petazzoni
9e172b3f91 gcc: add 4.2.2-avr32-2.1.5 patches
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-14 23:54:42 +01:00
Thomas Petazzoni
d3f383b1ee gcc: add avr32 special version
* Add new gcc version 4.2.2-avr32-2.1.5 in Config.in

 * Select the Atmel mirror to download gcc with avr32 in their version
   name, in gcc-uclibc-*.mk

 * Do not apply patches if the patch directory is empty, in
   gcc-uclibc-*.mk

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-14 23:54:42 +01:00
Thomas Petazzoni
48fbdaaea6 gcc: remove hurd specific details
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-12-14 23:45:59 +01:00
Peter Korsgaard
b06c9cb16c gcc: native toolchain needs BR2_HAVE_DEVFILES
Native toolchain doesn't make much sense without include / .a files.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-12-11 23:55:17 +01:00
Gustavo Zacarias
09c181f289 Add pkgversion to gcc >= 4.3
Closes #765.

[Peter: change to check for !4.2.x instead]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-12-06 18:41:15 +01:00
Peter Korsgaard
acc75665e5 toolchain: get rid of unused gcc 3.x legacy handling
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-12-04 20:34:03 +01:00
Peter Korsgaard
9af188d883 toolchain/gcc: get rid of ancient 3.4.6 / 4.0.4 versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-10-29 21:11:28 +01:00
Peter Korsgaard
1eb391c500 toolchain/gcc: simplify BR2_GCC_SUPPORTS_* logic
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-10-29 15:44:52 +01:00