Commit Graph

63 Commits

Author SHA1 Message Date
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
Thomas Petazzoni
218497de42 Move BR2_SPARC_TYPE to an uClibc specific place
BR2_SPARC_TYPE is a hidden configuration option that is only used for
the configuration of uClibc, therefore, we move it from
target/Config.arch.in to toolchain/uClibc/Config.in.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-09-20 22:24:16 +02:00
Thomas Petazzoni
ff67685ed9 Move BR2_ARM_TYPE to an uClibc specific place
BR2_ARM_TYPE is a hidden configuration option that is only used for
the configuration of uClibc, therefore, we move it from
target/Config.arch.in to toolchain/uClibc/Config.in.

We also add a comment that explains that this stuff is only useful for
uClibc <= 0.9.32. Starting from 0.9.33, uClibc build process simply
uses the compiler flags to find the ARM processor that should be
used. So, someday, we'll be able to remove this.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-09-20 22:24:13 +02:00
Thomas Petazzoni
8e55f03a54 Clarify MIPS ABIs support
Practically speaking, MIPS has three useful ABIs:

 * o32 is for 32-bits CPUs, or 64-bit CPUs running only a 32-bit subset
   of the instruction set.
 * n32 is for 64-bits CPUs only. It has 32-bits pointers and long
   integers.
 * n64 is for 64-bits CPUs only. It has 64-bits pointers and long
   integers.

See http://www.linux-mips.org/wiki/MIPS_ABI_History and
http://www.linux-mips.org/wiki/WhatsWrongWithO32N32N64 for more
details.

So, this commit reworks the Buildroot MIPS support by:

 * Add separate mips64/mips64el top-level architectures.

 * Renaming the n32 ABI option to BR2_MIPS_NABI32, for consistency
   with BR2_MIPS_OABI32.

 * Renaming the n64 ABI option to BR2_MIPS_NABI64, for consistency
   with BR2_MIPS_OABI32.

 * Make the n32 and n64 ABI selections select the BR2_ARCH_IS_64,
   since those ABIs are valid on 64-bits CPUs only.

 * Removing the o64 ABI, which is practicaly never used.

 * Removing the "none" ABI, which really doesn't make sense.

 * Introduce the mips64 and mips64el architecture names when a 64-bits
   MIPS ABI is choosen. This will fix build issue like
   http://autobuild.buildroot.org/results/9b8c5ea86c953a89e85e7b67e9221de41773f652/build-end.log
   where gmp was confused by the fact of having a 32 bits architecture
   (detected by the mips- architecture part of the tuple) but 64 bits
   integer size when compiling.

 * Adjust the uclibc.mk logic to support the new mips64/mips64el
   architecture names, and take into account the renaming of the ABI
   options.

This has been build tested by generating Buildroot toolchains and
compiling a few packages for MIPS o32, MIPS n32 and MIPS n64.

This work is originally based on prior work done by Gustavo Zacarias.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-09-04 22:03:55 +02:00
Thomas Petazzoni
2ff012b3c7 Simplify x86 target architecture variant handling
Instead of having two separate list of choices for select the target
architecture variant for i386 and x86_64, with many CPU choices
duplicated (because all modern x86 CPUs can be both used as i386 or
x86_64), merge them into a single list. In the x86_64 case, all the
x86 CPUs that do not support the 64 bits instruction set are hidden.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-07-31 00:00:29 +02:00
Thomas Petazzoni
fd08153b9d Remove unused TARGET_ABI values
The BR2_mmix and BR2_arm_dunno configuration options do not exist, so
there is no chance for these values to be useful in any way.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-07-25 20:27:58 +02:00
Samuel Martin
ff2ee34086 cleanup trailing white space
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-07-22 19:18:51 +02:00
Samuel Martin
7fed07d3a4 target: add symbols for i386/x86_64 cpu features
Selecting the target subarchitecture variant automatically selects the
appropriated set of features.

[thomas.petazzoni@free-electrons.com:
  removed depends on inside hidden options, not needed.
  removed SSE41/SSE42 options, not used.]

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-07-17 09:54:24 +02:00
Gustavo Zacarias
b6ebb7fd1b toolchain/mips: kill EABI and fix N32
MIPS EABI is a bare-metal ABI so remove it.
Also fix uClibc to really work with N32 ABI, which used the EABI knob
previously.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-07-15 00:57:42 +02:00
Gustavo Zacarias
37aa01f2cf toolchain/powerpc: SPE ABI is not available for e500mc
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-07-04 14:54:19 +02:00
Gustavo Zacarias
3137928f7c toolchain/gcc: block unsupported CPUs according to version
Block unsupported processors according to gcc version.
Also remove the comments since we now hide them according to this.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-05-19 23:11:11 +02:00
Gustavo Zacarias
67202463b0 target/arch: x86/prescott doesn't define BR2_ARCH, fix it
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-05-09 22:16:58 +02:00
Thomas Petazzoni
43e77cf53f blackfin: adjust available ABIs
The FLAT (Separate Data) and FLAT Shared ABIs are rarely used, and the
FLAT Shared ABI requires the user to manually assign an unique ID to
each shared library, which we will never support in
Buildroot. Therefore, restrict ourselves to FLAT and FDPIC.

In addition to this, ensure that when FLAT is selected, only static
libraries are produced, because this is what FLAT supports. It will
fix problems such as
http://autobuild.buildroot.org/results/2d756d75162e8737e99df8189bde93ed1a09feef/build-end.log.

Moreover, we make FDPIC the default ABI, since if someone is using
Buildroot, it's most likely to generate a fairly elaborate embedded
Linux system, on which shared libraries are probably useful.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-05-09 00:27:40 +02:00
Kevin Cernekee
2b66816c71 buildroot: fix BR2_GCC_TARGET_ABI for MIPS n64
gcc 4.3/4.4/4.5 accept the following arguments for --with-abi=

"" | 32 | o64 | n32 | 64 | eabi)

So, the "n64" argument coming from buildroot should be changed to "64"
so that gcc's ./configure step does not error out.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-05-03 21:00:27 +02:00
Peter Korsgaard
555c2585bf target/: mark Xtensa architecture support as deprecated
Hasn't been updated since it was added in 2009, and requires quite
some special handling in BR.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-04-25 10:45:30 +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
579e74b150 Config.in.arch: add help and less cryptic names to architecture menu
[Peter: fixup s/big-endian/big endian/ as pointed out by Thomas]
Signed-off-by: Alvaro G. M <alvaro.gamez@hazent.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-20 14:29:31 +01:00
Peter Korsgaard
9bf3dc764f Config.in.arch: Fix microblaze-be double quote issue
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-03-18 23:16:49 +01:00
Alvaro G. M
a6f2a787ab Microblaze: added architecture support for both big endian and low endian
Signed-off-by: Alvaro G. M <alvaro.gamez@hazent.com>
Tested-by: Stephan Hoffmann <sho@relinux.de>
Tested Microblaze LE 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:51:19 +01:00
Thomas Petazzoni
b5bebeaebd Add the Atom processor in the list of supported x86/x86_64 processors
This allows to easily select the corresponding Atom multilib variant
in the Sourcery CodeBench toolchain.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:36 +01:00
Thomas Petazzoni
f3a01cb087 Add x86_64 variants to BR2_GCC_TARGET_ARCH
With the Sourcery CodeBench IA32/AMD64 toolchain, the proper -march=
switch must be passed. So, on x86_64, we make sure that
BR2_GCC_TARGET_ARCH gets defined to the correct value, just as we do
on x86.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2012-03-01 20:26:36 +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
Phil Edworthy
d5247aa842 sh: Fix Buildroot sh targets to match gnuconfig targets
sh2eb and sh2a_nofpueb gnuconfig targets are no longer supported
in Buildroot. This patch replaces these Buildroot targets with sh2
and sh2a respectively, and adds sh4a targets as these are widely
used.

To build for devices without an fpu, the relevant toolchain flags
will have to be specified.

Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-07-18 23:26:12 +02:00
Arnout Vandecappelle (Essensium - Mind)
f4889573af BR2_ARCH definition was missing for 32-bit AMD architecture variants.
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>
2011-07-07 21:40:37 +02:00
Peter Korsgaard
1fa6b1c276 target: default to i586 for x86
The i586 was introduced almost 20 years ago, and some software
(NPTL, libstdc++, ..) doesn't work nicely with i386 anymore, so
it is time to move on.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-07-05 09:23:46 +02:00
Mike Frysinger
871db074b1 initial support for Blackfin processors
[Peter: don't allow MMU on bfin]
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-02-07 14:29:19 +01:00
Gustavo Zacarias
273c2accca toolchain targets: fix up c3 and winchip i386 variants, add c3-2
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-29 20:11:33 +01:00
Gustavo Zacarias
8de0337f24 toolchain: LEON SPARC only works with gcc-4.4.x
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-25 09:17:48 +01:00
Konrad Eisele
fe629f97d8 Cconfig: Add sparc-leon processors, remove deprecated v9 Sparc type.
Add the Sparc processor variants hfleon (fpu,v9), hfleonv8 (fpu,v8),
sfleon (softfpu,v7) sfleonv8 (softfpu,v8) and tweak the existing ones.

Signed-off-by: Konrad Eisele <konrad@gaisler.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-11-25 00:30:44 +01:00
Peter Korsgaard
c4eb25ff3d Merge branch 'for-2010.11/remove-deprecated-arch' of git://git.busybox.net/~tpetazzoni/git/buildroot 2010-09-30 14:41:38 +02:00
Peter Korsgaard
92870a7a7c Config.in.arch: ARM cortex A9 support
Based on patch by falls huang.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-09-12 19:36:57 +02:00
Thomas Petazzoni
343f480fe2 Remove architectures marked as deprecated
The Alpha, CRIS, IA64 and Sparc64 architectures have been marked as
deprecated during the previous release cycle. They are not widely used
in embedded systems and/or no longer supported by their manufacturers
and/or not properly supported in Buildroot.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-08-31 20:28:21 +02:00
Thomas Petazzoni
e5621b427c Mark CRIS architecture as deprecated
The CRIS architecture support in Buildroot hasn't been updated since a
long time. Even a toolchain with recent kernel headers does not build
due to missing patches.

Moreover, the CRIS architecture has been discontinued by Axis, as
visible at http://www.axis.com/products/dev/index.htm. We will remove
it from Buildroot at the next release cycle.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-08-11 15:31:33 +02:00
Thomas Petazzoni
a563a66347 Deprecate the Alpha, IA64 and Sparc64 support
Those architectures don't exist anymore (Alpha, IA64) or aren't widely
used for embedded systems running Linux. Moreover, no clear Buildroot
maintainer has stepped in to maintain these architectures, so it's
better to not pretend that we support them.

The goal is to mark them as deprecated in 2010.08 and remove them in
2010.11.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-07-27 23:23:42 +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
Julien Boibessot
133a3f90ba Set correct GCC tune option for ARM926T(==ARM926EJ-S) core
Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-06-08 23:32:40 +02:00
Gustavo Zacarias
633049d800 Enable e300c2, e300c3 and e500mc powerpc optimizations
Closes #1513

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-04-08 13:16:13 +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
Laine Walker-Avina
83182dd28e Add support for the Cortex-A8 ARM target
Signed-off-by: Laine Walker-Avina <lwalkera@ieee.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-11-18 09:55:07 +01:00
Bernhard Reutner-Fischer
15a85fce2a default to EABI on arm
Use of OABI is strongly discouraged since years now.

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-10-06 22:43:06 +02:00
Maxim Grigoriev
5ddb904a86 target/; xtensa support
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 02:17:22 +02:00
Pwalters
c239c1944b target/Config.in.arch: fix BR2_ARCH for i386 geode variant
Signed-off-by: PWalters <pwalters21@cox.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-15 20:33:11 +02:00
Alex Dobrynin
e9bf6aac83 target/Config.in.arch: fix BR2_GCC_TARGET_ARCH for arm926t
Closes #367.

arm926t was wrongly listed as armv4t, and not armv5te - leading to
the following error while compiling the kernel (2.6.28):

  CC      arch/arm/kernel/traps.o
{standard input}: Assembler messages:
{standard input}:1094: Error: selected processor does not support `pld [r6,#0]'

Signed-off-by: Alex Dobrynin <alex_dobrynin@hotmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-01 10:45:02 +02:00
austinf
a1e086da09 unmark the sparc targets as broken, they build if you disable shared libgcc 2009-04-15 09:13:21 +00:00
Peter Korsgaard
265f8bb959 target/Config.in.arch: really provide correct --with-arch= for ARM targets
The ARM arch names are armVx, not armX
2009-03-30 10:00:48 +00:00
Peter Korsgaard
b5b921e185 target/Config.in.arch: provide correct gcc --with-arch= for ARM targets
Updated to match gcc-4.3.3/gcc/config/arm/arm-cores.def.
Should fix EABI issues as recently reported to the list.
2009-03-30 08:42:08 +00:00
Peter Korsgaard
acc182cea2 target/Config.in.arch: fix ARM abi setting
Reported by Sven Neumann and based on 7f7aac5d3 in Bernhard's tree.
2009-01-30 11:35:04 +00:00
Peter Korsgaard
a81367744f buildroot: mark alpha as broken
It still doesn't build with threading + shared libs disabled
2009-01-13 15:14:21 +00:00
Peter Korsgaard
8161c45b89 buildroot: mark ia64, m68k, nios2, sparc and sparc64 as broken
No sense in showing the architecture options when they cannot even build
the toolchain.
2009-01-12 20:58:54 +00:00
Peter Korsgaard
b24c3215c1 buildroot: get rid of s390 support
As discussed on the list. It isn't supported by uclibc, so I strongly doubt
anyone has been using it.
2009-01-12 14:36:14 +00:00