Commit Graph

154 Commits

Author SHA1 Message Date
Maxime Ripard
cccb01bf59 toolchain/gcc: Enable --with-float for powerpc
Commit 8d929f4b ("toolchain/gcc: Only enable --with-float when it makes
sense") restricted the --with-float use to only MIPS, ARM and SPARC,
while it seems that powerpc needs it as well.

Fixes the qemu_ppc_virtex_ml507_defconfig build.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-05-06 12:29:34 +02:00
Sonic Zhang
66d41890ec arch: toolchain: Introduce target CPU revision.
Adds the possibility to have a free-form CPU revision string and append it
to the target CPU. Only Blackfin actually uses this option.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-05-05 22:49:50 +02:00
Mischa Jonker
8d929f4bb4 toolchain/gcc: Only enable --with-float when it makes sense
According to gcc/config.gcc, only ARM, MIPS and SPARC have the
"--with-float" option when configuring gcc.

[Peter: sort list]
Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-05-04 23:21:31 +02:00
Mischa Jonker
1ef17030d0 arc: add gcc for ARC
ARC needs a specific GCC for now, while we wait for ARC support to get
upstreamed.

Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-05-04 23:10:30 +02:00
Shawn J. Goff
1cbffbd015 eliminate double slashes caused by FOO_SITE ending in a slash
When a FOO_SITE variable ends in a slash and gets joined with a
FOO_SOURCE variable like $(FOO_SITE)/$(FOO_SOURCE), the resulting URI
has a double slash. While double-slashes are fine in unix paths, they
are reserved in URIs - the part following '//' must be an authority.

Signed-off-by: Shawn J. Goff <shawn7400@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-04-15 20:33:52 +02:00
Gustavo Zacarias
62322acb2c toolchain/gcc: disable makeinfo
Newer versions of texinfo (>=5) break the gcc makeinfo routine, so just
disable it.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Tested-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-03-24 14:28:32 +01:00
Thomas Petazzoni
46f37dabc5 gcc: add missing $(Q)
Add a missing $(Q) in front of a MESSAGE call, which leads to the
message being displayed but also the command that shows the message.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-03-24 13:41:15 +01:00
Thomas Petazzoni
d37d99b588 gcc: introduce BR2_GCC_NEEDS_MPC to reduce code duplication
For each version of gcc, we need to check whether it requires mpc as a
dependency. Since this is true for 4.5, 4.6, 4.7, snapshots and now
4.8, let's factorize this code a bit by using a Kconfig symbol that
tells us whether we are using a gcc version that requires mpc.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-03-24 13:40:07 +01:00
Thomas Petazzoni
b8103112ea gcc: add support for gcc 4.8
This commit adds support for the recently released gcc 4.8. We re-add
the same patch series as the one used for 4.7.x, after refreshing the
patches.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-03-24 12:46:08 +01:00
Thomas Petazzoni
e30c5bc58e gcc: fix location of snapshots
The gcc snapshots are now located at
ftp://gcc.gnu.org/pub/gcc/snapshots/. This has been tested with a
recent 4.8.0-RC snapshot.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-03-24 12:45:21 +01:00
Yann E. MORIN
ff5c89861b toolchain/gcc: sprinkle with some calls to MESSAGE
Thus, the failing step can be easily extracted by autobuilders,
to ease with post-mortem analysis.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Reviewed-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-01-20 22:12:01 +01:00
Peter Korsgaard
7ce93438c1 toolchain/gcc: also disable largefile for pass 1/2 if needed
Fixes issue with !BR2_LARGEFILE builds on Ubuntu 12.04 and GCC 4.6+

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-12-12 21:22:29 +01:00
Chris Zankel
fdd5bc948e xtensa: use uppercase for configurations and modified overlay structure
Except for architecture and processor names, buildroot uses capitalized
configuration names, so change the macro names for xtensa to follow that
standard.
Change the overlay file to have a subdirectory for each component
(gdb, binutils, gcc, etc.) to make it more future-prove.

Signed-off-by: Chris Zankel <chris@zankel.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-11-21 11:08:50 +01:00
Chris Zankel
d8792a04ca xtensa: support configurable processor configurations
Xtensa is a configurable processor architecture, which allows to define
additional instructions and registers. The required variant specific
information for the toolchain is delivered in an 'overlay' file, which
needs to be 'untarred' to the corresponding directories after the
source is installed and patched.
This patch provides support for binutils, gcc, and gdb with a very
limited changes to the build scripts. These additions are only executed
for the Xtensa architecture and have no effect on other architectures.

[Thomas: rebased on top of the 'arch: improve definition of gcc mtune,
mcpu, etc.' patch, and changed 'Target ABI' to 'Target Architecture
Variant'].

Signed-off-by: Chris Zankel <chris@zankel.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-11-15 16:39:48 +01:00
Thomas Petazzoni
669d07bdd4 Remove the Xtensa architecture
As stated in commit 555c2585bf, the
Xtensa architecture has been introduced in 2009 and never changed
since its initial introduction. It requires some special handling that
is a bit annoying, and despite our call to the initial developers, and
the announcement of the deprecation of the architecture during the
2012.05, nothing has happened. Therefore, drop support for this
architecture.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: me
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-09-20 22:31:08 +02:00
Peter Korsgaard
3f487ef728 toolchain: reinstate host/usr/bin/$arch-linux-* symlinks for gcc/gdb binaries
As people might be using them.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-06-23 21:33:17 +02:00
Richard Braun
b7b640d812 Remove REAL_GNU_TARGET_NAME
Instead of providing two variables, make GNU_TARGET_NAME give the real
target name, and remove REAL_GNU_TARGET_NAME altogether.

Signed-off-by: Richard Braun <rbraun@sceen.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-06-23 15:14:51 +02:00
Gustavo Zacarias
fcafc95756 toolchain/gcc: remove duplicate QUIET entries
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-25 13:03:33 +02:00
Thomas Petazzoni
792976053f gcc: remove unused EXTRA_GCC1_CONFIG_OPTIONS
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-25 09:47:40 +02:00
Thomas Petazzoni
ce1acfb5ea toolchain: remove toolchain/Makefile.in and toolchain/gcc/Makefile.in
Re-integrate in gcc-uclibc-4.x.mk things from
toolchain/gcc/Makefile.in that were completely gcc-specific. There was
no reason to pull that when building with other backends than the
internal one.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-25 09:00:51 +02:00
Thomas Petazzoni
2b563d481f gcc: move version/snap variables to gcc-uclibc-4.x.mk
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-25 09:00:42 +02:00
Thomas Petazzoni
3cf29186f8 gcc: remove unused EXTRA_GCC4_CONFIG_OPTIONS
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-25 08:59:17 +02:00
Thomas Petazzoni
eee81a286e gcc: remove unused EXTRA_GCC2_CONFIG_OPTIONS
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-25 08:58:19 +02:00
Thomas Petazzoni
acde0d8c52 toolchain: remove useless indirect variables
The BR2_CONFIGURE_DEVEL_SYSROOT, BR2_CONFIGURE_STAGING_SYSROOT and
BR2_CONFIGURE_BUILD_TOOLS were used only in a few places, and it is in
fact clearer to just use their value in the various places they are
used.

The ultimate goal is to get rid of the toolchain/Makefile.in file.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-25 08:55:56 +02:00
Gustavo Zacarias
b4a8ae3e8c toolchain/gcc: add 4.7.x series
Add gcc 4.7.0 to the toolchain options.

[Peter: drop 0001-toolchain-gcc-add-4.7.x-series.txt]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-15 11:13:27 +02: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
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
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
Thomas Petazzoni
102a93bdca support: move package/gnuconfig to support/gnuconfig
The CONFIG_UPDATE macro is no longer defined in
package/gnuconfig/gnuconfig.mk, but instead in
package/Makefile.autotools.in. It it also changed a little bit to take
the directory of the package sources as argument, and the AUTOTARGETS
infrastructure is updated to use this macro.

[Peter: drop echo in CONFIG_UPDATE]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-09-17 08:22:12 +02:00
Thomas Petazzoni
59a326b934 support: move patch-kernel.sh and rename it
The name "patch-kernel.sh" is a bit stupid, since this script is used
to patch everything in Buildroot, not only kernel trees.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-09-17 08:15:32 +02:00
Thomas Petazzoni
7c46868238 gcc: remove references to arm-softfloat.patch.conditional
The arm-softfloat.patch.conditional patches are no longer in Buildroot
since 9af188d883 (October 2009), which
removed support for gcc 3.x and 4.0.x.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2011-05-15 21:58:50 +02:00
Gustavo Zacarias
1db3939ad9 toolchain: update gcc snapshot version
* Make mpc mandatory since we are probably building bleeding-edge
* Change snapshot naming convention to match the source

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-02 23:12:30 +02:00
Gustavo Zacarias
0073143087 toolchain/gcc: add openmp support option
Add OpenMP support in gcc as an option instead of dynamically enabling
it when threads are present.
Also fix it up since we never installed libgomp to the target or staging
thus it was never really functional.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-02 21:15:50 +02:00
Gustavo Zacarias
0a2af382bb toolchain: bump gcc 4.5 series to verion 4.5.3
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-05-02 21:14:44 +02:00
Gustavo Zacarias
f8fe67e12e toolchain: add gcc 4.6.0
Add gcc 4.6.0 to the toolchain repertoire:

Target gcc is known to be broken in some scenarios.

This version is considered experimental so things may break.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-26 22:46:59 +02:00
Gustavo Zacarias
243e4edc74 toolchain: make target gcc a working option
Make target gcc a more usable option.

* Nuke duplicate libgcc_s*.so* in /usr/lib since it confuses target gcc
* Copy *crt*.o files to the target system to unbreak gcc

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-04-26 22:43:44 +02:00
Gustavo Zacarias
2a161016d7 target gcc: fix recompilation issue
gcc_target wants uclibc_target which is now first stage uclibc (not
real, from the NPTL build stage addition).
This triggers gcc-final to be rebuilt (albeit cached) and reinstalled,
thus touching all the stamps around and triggering a rebuild of
gcc_target.
Switch to $(STAMP_DIR)/gcc_libs_target_installed instead so that we only
depend on the last stage of cross gcc being installed to rebuild.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-10 20:15:16 +01:00
Gustavo Zacarias
9bc58a42af toolchain: only fetch gcc/gmp/mpfr/mpc when using a buildroot toolchain
Closes #3103

gcc/gmp/mpfr/mpc are only needed when using an internal buildroot toolchain,
so only add them to HOST_SOURCE then.

Otherwise we get some nasty fetch error when doing "make source"

[Peter: add gmpc/mpfr/mpc and reword commit text]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-19 17:19:42 +01:00
Gustavo Zacarias
81f1f99dc5 target gcc: cleanup
WITH_TARGET_{GMP/MPC/MPFR} is unneeded since we are providing a sysroot.

It also breaks build-gcc under certain conditions.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-02 22:55:37 +01:00
Gustavo Zacarias
5bd272eb6b gcc: install copies of libgcc, libstdc++ and libgcj to the sysroot
We want to keep a copy around for the future SDK functionality.

Also it's a better fix for bug #1051.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-02 22:55:36 +01:00
Gustavo Zacarias
009407e6be binutils: make it a proper package
* Convert binutils to a proper autotargets package

* Add version 2.21 and drop version 2.17

* Hook up packaged binutils for target gcc

* Build tools are on HOST_DIR now so change it

* Move cross/host gcc to HOST_DIR

* Drop kludge from commit 3c77bab2ee
  This is fixed in the next commit "gcc: install copies of libgcc,
  libstdc++ and libgcj to the sysroot" - tested for arm & x86_64
  targets.

* TARGET_CROSS now pointed to HOST_DIR too

[Peter: Config.in tweaks]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-01-02 22:55:16 +01:00
Gustavo Zacarias
7aa2e0c3d5 mpc: make it a proper package
* Convert mpc to a proper autotargets package
* Hook it up for binutils/gcc to use

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-27 22:01:00 +01:00
Gustavo Zacarias
a6337a4dc8 mpfr: make it a proper package and bump to version 3.0.0-p8
* Convert mpfr to a proper autotargets package
* Bump to version 3.0.0-p8
* Hook it up for binutils/gcc to use

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-27 22:00:59 +01:00
Gustavo Zacarias
21f7b8bcce gmp: make it a proper package and bump to version 5.0.1
* Convert gmp to a proper autotargets package
* Bump to version 5.0.1
* Hook it up for binutils/gcc to use

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-27 22:00:59 +01:00
Thomas Petazzoni
227b5d2e26 gcc: disable libgomp when thread support is disabled
libgomp needs thread support on the target to build properly.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-13 22:26:51 +01:00
Thomas Petazzoni
9eaad202f1 toolchain: rework thread options
The selection of linuxthreads, linuxthreads old or NPTL doesn't make a
lot of sense for external toolchains. So, instead, we :

 * Introduce an hidden BR2_TOOLCHAIN_HAS_THREADS option, which must be
   selected by toolchain specific options when thread support is
   available. Package needing to test thread support should use this
   option.

 * Move the none/linuxthreads/linuxthreads old/NPTL selection to
   Buildroot internal toolchain configuration.

 * Add an option in external toolchain to tell if thread support is
   available or not in the external toolchain. We assume that glibc
   without threads is not possible, as Ulrich Drepper said in
   http://sourceware.org/ml/libc-alpha/2005-08/msg00091.html

ffmpeg, dmalloc and openvpn are fixed to use the new
BR2_TOOLCHAIN_HAS_THREADS option. For openvpn, --enable-threads=posix
is no longer used, as the configure script doesn't even understand
this option.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-13 22:26:41 +01:00
Thomas Petazzoni
6b578c8d73 toolchain: rework C++ options
Instead of having BR2_GCC_CROSS_CXX and BR2_INSTALL_LIBSTDCPP, with
BR2_GCC_CROSS_CXX not being visible (and therefore being useless),
let's just keep BR2_INSTALL_LIBSTDCPP to enable C++ in the toolchain
and install C++ libraries on the target.

We also take that opportunity to make BR2_INSTALL_LIBSTDCPP an hidden
option, which is selected by an option in Buildroot toolchain support
or an option in External toolchain support, just as we did for other
toolchain features.

Some work definitely remains to be done :

 - The name BR2_INSTALL_LIBSTDCPP is ugly, but we keep it for the
   moment in order to avoid changing all packages.

 - We should clarify the other language-related options (Fortran,
   Java, Objective-C, etc.).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-12-13 22:04:35 +01:00
Konrad Eisele
c9f1651ea0 toolchain: Add support for --with-cpu
Add support for gcc configuration switch --with-cpu. Uses newly added
BR2_GCC_TARGET_CPU from the target config.

Signed-off-by: Konrad Eisele <konrad@gaisler.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-25 09:15:11 +01:00
Gustavo Zacarias
aa3e75ecd1 gcc 4.5.x powerpc: fix softfloat and gcc pr#43810
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-04 20:16:28 +01:00
Martin Banky
4af6496eac Add gcc 4.5.1 to buildroot
Signed-off-by: Martin.Banky@gmail.com <Martin.Banky@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-04 20:16:28 +01:00