Commit Graph

52 Commits

Author SHA1 Message Date
Yann E. MORIN"
150f500426 arch: allow adding a suffix to the arch-part of a tuple
For some architectures, it is legit to have an alternate value in the
'architecture' part of the tuple. For example:
    armv5te-*
    armv7a8-*

Besides, some packages expect the tuple to reflect the arch variant
(eg. openMPI) to detect the variant's capabilities (eg. atomic
primitives).

This patch adds an option for the user to specify a suffix to be added
to the arch-part of the tuple.

Signed-off-by: Willy Tarreau <w@1wt.eu>
Message-ID: <20130120225822.GS6838@1wt.eu>
Patch-Id: 213994
[yann.morin.1998@free.fr: make it a suffix, not an override]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-01-20 12:58:22 +00:00
Yann E. MORIN"
db5b6a4915 all: unmark experimental features
It's been some time now we've had those features, so unmark them
being experimental.

It does not mean everything is perfect, but may gather some more
testing of those features.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-12-26 20:05:19 +01:00
Yann E. MORIN"
114e6eb147 arch: re-order the entries in the float choice
Re-order the three entries in the float choice, in a more sensible
order, ie:
  - all hard-float options come first, then soft-float
  - options that use the FPU are marked so: hard and softfp
  - options that do not use the FPU are marked so: software

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-12-23 14:32:20 +01:00
Yann E. MORIN"
4bc4d99b8d config: add option to build multilib
Add a toolchain-wide option to enable multilib.

This is currently a noop, and will be implemented
in subsequent patches for each impacted components.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-23 23:25:43 +01:00
Yann E. MORIN"
67d2ab4fb6 config/target: enforce floating point support
Do not prompt for the type of floating-point support, if the
architecture did not explicitly stated that it did support it.

Reported-by: Morten Thunberg Svendsen <mts@doredevelopment.dk>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-25 23:59:29 +01:00
Yann E. MORIN"
5235cc4215 config/target: add float support selection
Changeset #149c33923f47 broke the architectures that do not
support the --with-float=X ./configure flag (in gcc). For example,
x86_64 does not support it.

Add a new blind config option that architectures can set to tell
they support floating point selection.

Reported-by: Morten Thunberg Svendsen <mts@doredevelopment.dk>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-25 23:57:55 +01:00
Yann E. MORIN"
88d01dd861 arch: rename the SUPPORT_XXX options
First, 'SUPPORT' should be spelled 'SUPPORTS'.

Second, 'SUPPORT_XXX' really means 'supports --with-xxx', so rename the
affected options accordingly. Update the affected archs to match the new
namings.

Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-30 00:25:22 +01:00
Yann E. MORIN"
2df9653787 config: introduce endianness as a string
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-14 19:13:00 +01:00
Yann E. MORIN"
4fc56b1d14 arch: add softfp support
Some architectures support a mixed hard/soft floating point, where
the compiler emits hardware floating point instructions, but passes
the operands in core (aka integer) registers.

For example, ARM supports this mode (to come in the next changeset).

Add support for softfp cross compilers to the GCC and GLIBC
configuration. Needed for Ubuntu and other distros that are softfp.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: split the original patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-19 15:27:32 +13:00
Yann E. MORIN"
28e54116c3 scripts: introduce float type as a string
With the upcoming softfp support, the case..esac test would become
a bit convoluted if it were to test three different booleans.

Introduce a new blind string config option that defaults to the
selected floating point type used.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: split the original patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-19 15:27:32 +13:00
Yann E. MORIN"
c009897aee misc: fix more typos here and there...
Reported-by: "Antony N. Pavlov" <antony@niisi.msk.ru>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 16:53:40 +02:00
Benoît THÉBAUDEAU"
96245813d8 kconfig: remove useless 'default n'
kconfig bools are disabled by default, so specifying 'default n' is useless and
noisy. This patch removes all occurrences of 'default n'.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-05-31 16:27:39 +02:00
Yann E. MORIN"
2ba42cb171 config: reorder the architectures sub-menu
Re-organise the sub-menu so that:
 - the archs list comes first,
 - followed by archs generic options
 - followed by archs specific options

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-04-27 22:18:07 +02:00
Yann E. MORIN"
abab3f15b5 config/arch: re-organise architecture-specific options
Move the arch-specific options to the second-part of
the generated files, so they appear after the generic
options, but before the optimisations.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-09-11 12:38:12 +02:00
Yann E. MORIN"
43ca5b4095 config: add support for a second part of the generated choices
Some components have configuration options that can depend on
generic options, so they should go below those.

uClibc for example:
- has its own options (wchar...)
- uses the generic options (threads...)
- if linuxthreads chosen, offers two impls

So we need to be able to split the components options in 2,
one part that is above the generic options, and one part that
ends up below the generic options.
2010-06-08 23:26:54 +02:00
Yann E. MORIN"
d276ce2a4f config: fix style issues when source-ing files
Always enclose the sourced file between double-quotes (purely for
consistency; enclosing or not are both allowed by the kconfig language).
2010-03-29 20:24:50 +02:00
Yann E. MORIN"
4d4fbdcc61 config/arch: also export bitness as a string 2010-01-09 15:40:08 +01:00
Yann E. MORIN"
d5eb1f0dcf arch: cleanup the 32- and 64-bit selection 2009-11-17 22:29:50 +01:00
Yann E. MORIN"
1f18636343 arch: add hidden config knobs for 32- and 64-bit support and select
Add new hidden config knobs that architectures can select to
say whether they support 32- or 64-bit variants, and which
they default to.
2009-11-17 09:27:38 +01:00
Yann E. MORIN"
f7991ce0a8 config: add help for the MMU/noMMU entry 2009-10-21 23:45:55 +02:00
Yann E. MORIN"
45747a6453 Merge the uClinux/noMMU stuff back to /trunk:
- merge Linux and uClinux back to a single kernel
- add ARCH_USE_MMU and acquainted config options that
  architectures can auto-select
- make binutils and elf2flt two "Binary utilities" that
  go in a single common sub-{menu,directory} structure

 -------- diffstat follows --------
 /trunk/scripts/build/kernel/uclinux.sh      |    2     0     2     0 -
 /trunk/scripts/build/kernel/linux.sh        |  206   204     2     0 +++++++++++++++++++++++++++++
 /trunk/scripts/build/kernel/linux-common.sh |  198     0   198     0 ----------------------------
 /trunk/scripts/build/binutils.sh            |  232     0   232     0 --------------------------------
 /trunk/scripts/build/elf2flt.sh             |  150     0   150     0 ---------------------
 /trunk/scripts/crosstool-NG.sh.in           |    6     4     2     0 +
 /trunk/config/kernel/linux.in               |  249   249     0     0 +++++++++++++++++++++++++++++++++++
 /trunk/config/kernel/linux.in-common        |  252     0   252     0 -----------------------------------
 /trunk/config/kernel/uclinux.in             |   21     0    21     0 ---
 /trunk/config/target.in                     |   23    22     1     0 +++
 /trunk/config/elf2flt.in                    |   49     0    49     0 -------
 /trunk/config/libc/glibc.in                 |    2     1     1     0
 /trunk/config/libc/eglibc.in                |    2     1     1     0
 /trunk/config/config.in                     |    1     0     1     0 -
 /trunk/config/arch/sh.in                    |    1     1     0     0 +
 /trunk/config/arch/arm.in                   |    2     1     1     0
 /trunk/config/arch/powerpc.in               |    1     1     0     0 +
 /trunk/config/arch/ia64.in                  |    1     1     0     0 +
 /trunk/config/arch/alpha.in                 |    1     1     0     0 +
 /trunk/config/arch/x86.in                   |    1     1     0     0 +
 /trunk/config/arch/mips.in                  |    1     1     0     0 +
 /trunk/config/arch/powerpc64.in             |    1     1     0     0 +
 22 files changed, 489 insertions(+), 913 deletions(-)
2009-05-20 20:13:13 +00:00
Yann E. MORIN"
f9f70c5ad6 Do not autodetect 64-bit archs, have them tell be 'select'-ing ARCH_64 in the configuration.
/trunk/scripts/crosstool.sh  |   12     5     7     0 +++++-------
 /trunk/docs/overview.txt     |    6     6     0     0 ++++++
 /trunk/config/target.in      |    4     4     0     0 ++++
 /trunk/config/arch/x86_64.in |    1     1     0     0 +
 /trunk/config/arch/ia64.in   |    1     1     0     0 +
 5 files changed, 17 insertions(+), 7 deletions(-)
2008-11-07 08:09:42 +00:00
Yann E. MORIN"
c7df47dcea In generated choice menus, move the selection options outside the choice menu.
/trunk/kconfig/kconfig.mk |   60    35    25     0 +++++++++++++++++++++++++++++++----------------------
 /trunk/config/kernel.in   |    6     0     6     0 -----
 /trunk/config/target.in   |    6     0     6     0 -----
 3 files changed, 35 insertions(+), 37 deletions(-)
2008-10-12 11:22:46 +00:00
Yann E. MORIN"
ed92de0b90 Make bare-metal a kernel selection.
/trunk/config/kernel.in |   22    14     8     0 ++++++++++++++--------
 /trunk/config/target.in |   13     0    13     0 -------------
 2 files changed, 14 insertions(+), 21 deletions(-)
2008-09-15 09:43:35 +00:00
Yann E. MORIN"
799672a641 Introduce a new EXPERIMENTAL feature: BARE_METAL.
This should ultimately llow to build bare-metal compilers, for targets that have no kernel and no C library.
Move the C library build script to their own sub-directory; introduce an empty build script for bare-metal.
Move the compiler build script to its own sub-directory.
Move the kernel build script to its own sub-directory; introduce an empty build script for bare-metal.
Update the ARM target tuples to enable bare-metal targets.
Add two ARM bare-metal samples.
Add latest Linux kernel versions.

 /trunk/scripts/build/kernel/none.sh              |   77     6    71     0 +----
 /trunk/scripts/build/cc/gcc.sh                   |   58    41    17     0 ++-
 /trunk/scripts/build/libc/none.sh                |  513     9   504     0 +-----------------------------
 /trunk/scripts/crosstool.sh                      |   17     9     8     0 +
 /trunk/scripts/functions                         |    6     4     2     0 +
 /trunk/scripts/showSamples.sh                    |    6     3     3     0
 /trunk/samples/arm-unknown-elf/crosstool.config  |  225   225     0     0 +++++++++++++
 /trunk/samples/arm-unknown-eabi/crosstool.config |  223   223     0     0 +++++++++++++
 /trunk/config/kernel/linux_headers_install.in    |   64    27    37     0 ++--
 /trunk/config/kernel.in                          |    9     8     1     0 +
 /trunk/config/toolchain.in                       |    1     1     0     0 +
 /trunk/config/cc/gcc.in                          |    3     3     0     0 +
 /trunk/config/debug/dmalloc.in                   |    1     1     0     0 +
 /trunk/config/debug/gdb.in                       |    4     3     1     0 +
 /trunk/config/debug/strace.in                    |    1     1     0     0 +
 /trunk/config/debug/duma.in                      |    1     1     0     0 +
 /trunk/config/cc.in                              |    8     8     0     0 +
 /trunk/config/target.in                          |   13    13     0     0 +
 /trunk/config/binutils.in                        |    1     1     0     0 +
 /trunk/config/gmp_mpfr.in                        |    1     1     0     0 +
 /trunk/config/libc.in                            |   17    11     6     0 +
 /trunk/arch/arm/functions                        |    3     1     2     0 -
 22 files changed, 600 insertions(+), 652 deletions(-)
2008-09-14 16:21:07 +00:00
Yann E. MORIN"
ebeba61f44 Move TARGET_LDFLAGS up with all target-dependent flags.
/trunk/config/target.in |    1     1     0     0 +
 1 file changed, 1 insertion(+)
2008-08-12 09:54:42 +00:00
Yann E. MORIN"
ef0f400c26 Introduce four new ARCH specific variables that CT_DoArchValues can set if they want:
- CT_ARCH_CC_CORE_EXTRA_CONFIG
  - CT_ARCH_CC_EXTRA_CONFIG
  - CT_ARCH_TARGET_CLFAGS
  - CT_ARCH_TARGET_LDFLAGS
This will hopefully enable architectures to specify specific flags.
PowerPC will need them to introduce SPE (coming RSN).

 /trunk/scripts/crosstool.sh |    2     2     0     0 ++
 /trunk/scripts/functions    |    4     2     2     0 ++--
 /trunk/docs/overview.txt    |   45    22    23     0 ++++++++++++++++++++++-----------------------
 /trunk/config/target.in     |   10    10     0     0 ++++++++++
 4 files changed, 36 insertions(+), 25 deletions(-)
2008-08-07 15:18:18 +00:00
Yann E. MORIN"
a865cf8aeb Re-order architecture specifics.
/trunk/config/target.in |   12     7     5     0 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
2008-06-30 11:33:52 +00:00
Yann E. MORIN"
055681518c Only present each of arch, abi, cpu tune and fpu optimisations for those targets supporting them.
/trunk/config/target.in       |   30    30     0     0 ++++++++++++++++++++++++++++++
 /trunk/arch/arm/config.in     |    5     5     0     0 +++++
 /trunk/arch/powerpc/config.in |    3     3     0     0 +++
 /trunk/arch/alpha/config.in   |    2     2     0     0 ++
 /trunk/arch/x86/config.in     |    3     3     0     0 +++
 /trunk/arch/mips/config.in    |    3     3     0     0 +++
 /trunk/arch/x86_64/config.in  |    3     3     0     0 +++
 7 files changed, 49 insertions(+)
2008-06-27 15:08:43 +00:00
Yann E. MORIN"
62744e84e7 Autogenerate the architecture selection choice menu.
Update architectures definition files accordingly.
Update documentation accordingly.
Use makefile syntax when listing arch/, tools/ and debug/ config files.

 /trunk/kconfig/kconfig.mk     |   32    29     3     0 +++++++++++++++--
 /trunk/docs/overview.txt      |   75    67     8     0 +++++++++++++++++++++++++++++++++++----
 /trunk/config/target.in       |   94    16    78     0 ++++++++-----------------------------------------
 /trunk/arch/arm/config.in     |    6     5     1     0 +++
 /trunk/arch/powerpc/config.in |    2     2     0     0 +
 /trunk/arch/ia64/config.in    |    4     4     0     0 ++
 /trunk/arch/alpha/config.in   |    2     1     1     0
 /trunk/arch/x86/config.in     |    3     3     0     0 ++
 /trunk/arch/mips/config.in    |    5     5     0     0 +++
 /trunk/arch/sh/config.in      |    4     3     1     0 ++
 /trunk/arch/x86_64/config.in  |    3     3     0     0 ++
 11 files changed, 138 insertions(+), 92 deletions(-)
2008-06-27 13:58:53 +00:00
Yann E. MORIN"
5fcaf8b3ff Preliminary Alpha support, courtesy Ioannis E. Venetis <venetis@capsl.udel.edu>.
/trunk/docs/CREDITS                                         |    3     3     0     0 +
 /trunk/samples/alphaev56-unknown-linux-gnu/crosstool.config |  282   282     0     0 +++++++++++++++++++
 /trunk/config/target.in                                     |    9     9     0     0 +
 /trunk/arch/alpha/functions                                 |    9     9     0     0 +
 /trunk/arch/alpha/config.in                                 |   58    58     0     0 ++++
 5 files changed, 361 insertions(+)
2008-06-14 20:57:57 +00:00
Yann E. MORIN"
8dd0e17c51 Use the arch-specific target LDFLAGS into the final target LDFLAGS.
Fix a help entry in the CFLAGS_for_target config entry.

 /trunk/scripts/crosstool.sh |    4     3     1     0 +++-
 /trunk/config/target.in     |    2     1     1     0 +-
 2 files changed, 4 insertions(+), 2 deletions(-)
2008-05-24 22:38:07 +00:00
Yann E. MORIN"
db55511ac2 PowerPC support by Daniel Dittmann.
/trunk/docs/CREDITS           |    3     3     0     0 +++
 /trunk/config/target.in       |    8     8     0     0 ++++++++
 /trunk/arch/powerpc/functions |    9     9     0     0 +++++++++
 /trunk/arch/powerpc/config.in |    1     1     0     0 +
 4 files changed, 21 insertions(+)
2008-05-18 20:50:13 +00:00
Yann E. MORIN"
8f74ada733 Re-order the target sub-menu, so that architectures are alphabetically ordered.
${prefix}/config/target.in |   12     6     6     0 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
2008-04-17 20:51:26 +00:00
Yann E. MORIN"
07fa611771 Robet P. J. DAY: typoes. 2008-02-14 22:44:34 +00:00
Yann E. MORIN"
7a5dafbdc8 Merge the preliminary Super-H support from /branches/Super-H. 2008-01-16 22:06:15 +00:00
Yann E. MORIN"
7b70a704e0 Add the framework to have architecture-specific configuration and functions.
API is not yet defined.
2007-09-14 17:43:16 +00:00
Yann E. MORIN"
d409c9fd1a Merge from branches/ia64@476 : add ia64 preliminary support. 2007-09-11 17:24:09 +00:00
Yann E. MORIN"
c77336fb3d ARM defaults to LE, MIPS to BE. Reflect this in the target configuration options. 2007-09-06 14:00:28 +00:00
Yann E. MORIN"
49c5a210bf For those architectures that support both endianness, some default to big endian, others default to little endian.
Make this possible in the target selection menu.
2007-08-30 19:49:21 +00:00
Yann E. MORIN"
7131764f9c Remove any reference to libfloat. That has gone once and for all.
Rationale:
Most of the time, soft-float problems are caused by this sucker of gcc:
it has support for soft float for all of the targets I've tried so far,
but does not activate this code until you dwelve into half a dozen of
files to make it accept to build and link the support code...

So, yes: gcc has soft-float support. And again, yes: gcc is a sucker.
2007-07-30 20:02:13 +00:00
Yann E. MORIN"
b984db5ffc Clean the help entry for CT_ARCH_CPU. 2007-07-22 16:32:24 +00:00
Yann E. MORIN"
abe0c8ba39 Threading model does not belong to the target sub-menu, but to the toolchain sub-menu. 2007-05-29 19:30:38 +00:00
Yann E. MORIN"
465cdbeee1 No longer mark NPTL as being EXPERIMENTAL.
But mark build a native gdb as being EXPERIMENTAL.
2007-05-27 20:29:22 +00:00
Yann E. MORIN"
de5df0533c Merge the NPTL stuff.
That still leaves the linuxthreads stuff broken, but it was just before. I don't care anyway. Time to fix that later...
2007-05-27 20:22:06 +00:00
Yann E. MORIN"
a7ccd113ff Only prompt for libfloat for those target that support it. 2007-05-22 20:36:44 +00:00
Yann E. MORIN"
aa6ae43fd7 Add uClibc-0.9.29:
- associated patch set
  - update the munging function to accomodate the new config variables
libfloat version was missing from the previous commit... :-(
Better handle the case where the sample directory already exist but isn't under revision control, and in case the destination file doesn't exist in the sample directory.
2007-05-19 22:52:47 +00:00
Yann E. MORIN"
7779137ba8 Second shot at merging from the MIPS branch:
- log level boost for warnings and errors
- option re-ordering
- help updating
2007-04-23 20:30:34 +00:00
Yann E. MORIN"
c1efc08c09 Merge first shot from the MIPS branch. 2007-04-21 17:31:51 +00:00
Yann E. MORIN"
5b96251953 Add the EXPERIMENTAL option to show options marked as such.
Add the four types of toolchains ct-ng is able to build as EXPERIMENTAL, except for CROSS which *is* functional.
Reorder menus accordingly.
2007-04-17 22:24:42 +00:00