Yann E. MORIN"
656dae57eb
cc/gcc: baremetal requires a two-pass process
...
Here, we implement a highly ugly hack. I'm not proud of that one...
To build the libstdc++ library, the compiler requires the C library. In
case we build for non-baremetal, this is normally handled by the final
step, later.
But in the case of bare-metal, we never go through the final step (because
it does not work, and it seems complex enough to make it work), so the
baremetal compilers are issued out of the core step.
2010-06-13 23:38:37 +02:00
Yann E. MORIN"
399e7f8f8a
cc/gcc: store core build rules in an array
...
Using an array makes it easier to add new rules.
Besides, it is easy to expand from build rules to install rules
2010-06-13 20:43:02 +02:00
Yann E. MORIN"
3983fe1184
cc/gcc: implement default for core options
2010-06-13 20:31:42 +02:00
Yann E. MORIN"
7b3c12d9a3
cc/gcc: fix headers copy for core static
2010-06-13 20:25:00 +02:00
Titus von Boxberg
d2d3c15c14
cc/gcc: Make usage of --enable-target-optspace configurable
...
Optionally configure to compile gcc-internal libs with -Os.
yann.morin.1998@anciens.enib.fr:
Rename the config options, it is in the GCC /namespace/.
2010-05-24 16:34:55 +02:00
Remy Bohmer
9c6c090d7b
cc/gcc: use proper host compiler for canadian bare-metal
...
While compiling a canadian toolchain for host=mingw32, build=linux,
target=m68k-elf the build fails because in this step of the gcc build
the Host compiler is used in this stage with the build-flags for the
build system. This results in an error where the header <sys/wait.h>
cannot be found.
This problem happens at least in the GCC-4.3.x and GCC-4.4.x range.
This is solved by passing the proper compilers on the Make cmd-line
Signed-off-by: Remy Bohmer <linux@bohmer.net>
2010-04-09 21:04:37 +02:00
Bart vdr. Meulen
76ae48462a
cc/gcc: allow building a canadian bare-metal compiler
...
Previous addition of the canadian cross compiler did not allow
to build a baremetal only variant, no reason why this is not
allowed
Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
2010-04-20 10:06:04 +02:00
Yann E. MORIN"
a6da1aa63a
cc/gcc: fix cc symlink when executables have an extension
...
When building a cross-compiler for a host which depends
on file extensions the symlink for cc was not installed correctly
Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
[Yann E. MORIN: style fixes, enhancements, code prettying]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-04-20 11:39:13 +02:00
Yann E. MORIN"
3c160b2205
cc/gcc: add support for 4.5.0 or later versions
...
starting with 4.5.0, gcc requires libelf.
2010-04-15 22:35:18 +02:00
Yann E. MORIN"
bf86627982
scripts/functions: make CT_Patch dumber
...
It is the responsibility of the caller to split the package name from
its version. It already knows that.
2010-04-11 23:18:10 +02:00
Remy Bohmer
9ccad74f02
cc/gcc: add bugurl and compiler version to core gcc compiler
...
When building for bare-metal the core-gcc compiler is delivered
as final compiler, so the version info and bugurl is useful
in the core compiler as well.
Signed-off-by: Remy Bohmer <linux@bohmer.net>
2010-04-09 21:04:33 +02:00
Yann E. MORIN"
a01284b0e2
complibs: don't install in toolchain dir when built as static
2010-04-11 11:10:06 +02:00
Yann E. MORIN"
5b27e8de52
complibs: allow either static or shared build
2010-04-11 00:47:23 +02:00
Yann E. MORIN"
5b663e2aae
complibs: build static libraries
2010-04-10 23:43:08 +02:00
Arnaud Lacombe
93042972a8
cc/gcc: fix thread-less final gcc build
...
If threads are disabled in libc, we don't want to enable them in the
final compiler. Doing so pass the configure stage, but fails latter on
a missing <pthread.h>.
Moreover, we don't want to build libgomp if threads are disabled; its
configure script would fails anyway.
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
2010-04-07 18:35:22 +02:00
Arnaud Lacombe
2059d43d86
cc/gcc: fix recent gcc build
...
This fix missed conversion of CT_GCC_USE_* to CT_CC_GCC_USE_*.
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
2010-04-07 18:35:21 +02:00
Yann E. MORIN"
8e47201cf2
cc/gcc: fix use of companion libraries
2010-03-05 18:55:25 +01:00
Yann E. MORIN"
3eaa187de5
complibs: split-up selection for individual libs
2010-02-17 23:47:47 +01:00
Yann E. MORIN"
83a48e12f0
Allow setting --enable-cxx-flags on gcc ./configure
...
Some setups require one to pass extra CXX flags at the time of ./configure.
Make it easy.
2009-08-19 19:44:45 +02:00
Yann E. MORIN"
f255716872
Make gcc's extra_config an array containing ./configure options
...
Change extra_config from a string to a array of options.
2009-08-19 19:44:42 +02:00
Bart van der Meulen
1a84e201d0
Add support code for the canadian-cross case.
...
Add implementation for a candadian build option already
present in crosstool in order to build a cross-compiler
where build != host != target
Signed-off-by: Bart van der Meulen <bartvdrmeulen@gmail.com>
2009-06-26 19:09:22 +02:00
Yann E. MORIN"
637b137512
/devel/gcc-4.4:
...
- add gcc-4.4.0 patches, vampirised from the Gentoo patchset
- gcc-4.4.0 auto-selects and uses appropriate companion linraries
-------- diffstat follows --------
/devel/gcc-4.4/scripts/build/cc/gcc.sh | 20 18 2 0 +
/devel/gcc-4.4/patches/gcc/4.4.0/280-freebsd.patch | 188 188 0 0 ++++++++++
/devel/gcc-4.4/patches/gcc/4.4.0/140-default-format-security.patch | 98 98 0 0 +++++
/devel/gcc-4.4/patches/gcc/4.4.0/290-freebsd.patch | 128 128 0 0 +++++++
/devel/gcc-4.4/patches/gcc/4.4.0/310-uclibc-conf.patch | 70 70 0 0 ++++
/devel/gcc-4.4/patches/gcc/4.4.0/240-libstdc++-pic.patch | 106 106 0 0 ++++++
/devel/gcc-4.4/patches/gcc/4.4.0/260-sh-libgcc-stacks.patch | 50 50 0 0 +++
/devel/gcc-4.4/patches/gcc/4.4.0/100-alpha-mieee-default.patch | 48 48 0 0 +++
/devel/gcc-4.4/patches/gcc/4.4.0/180-libgomp-no-werror.patch | 24 24 0 0 +
/devel/gcc-4.4/patches/gcc/4.4.0/170-sparc64-bsd.patch | 58 58 0 0 +++
/devel/gcc-4.4/patches/gcc/4.4.0/200-libiberty.h-asprintf.patch | 30 30 0 0 ++
/devel/gcc-4.4/patches/gcc/4.4.0/220-libiberty-pic.patch | 22 22 0 0 +
/devel/gcc-4.4/patches/gcc/4.4.0/110-trampolinewarn.patch | 54 54 0 0 +++
/devel/gcc-4.4/patches/gcc/4.4.0/160-netbsd-symbolic.patch | 22 22 0 0 +
/devel/gcc-4.4/patches/gcc/4.4.0/190-flatten-switch-stmt-00.patch | 48 48 0 0 +++
/devel/gcc-4.4/patches/gcc/4.4.0/150-default-fortify-source.patch | 52 52 0 0 +++
/devel/gcc-4.4/patches/gcc/4.4.0/340-libmudflap-susv3-legacy.patch | 96 96 0 0 +++++
/devel/gcc-4.4/patches/gcc/4.4.0/120-java-nomulti.patch | 92 92 0 0 +++++
/devel/gcc-4.4/patches/gcc/4.4.0/270-sh-pr24836.patch | 48 48 0 0 +++
/devel/gcc-4.4/patches/gcc/4.4.0/330-c99-snprintf.patch | 24 24 0 0 +
/devel/gcc-4.4/patches/gcc/4.4.0/230-superh-default-multilib.patch | 24 24 0 0 +
/devel/gcc-4.4/patches/gcc/4.4.0/250-ia64-noteGNUstack.patch | 158 158 0 0 +++++++++
/devel/gcc-4.4/patches/gcc/4.4.0/300-pr40105.patch | 360 360 0 0 ++++++++++++++++++++
/devel/gcc-4.4/patches/gcc/4.4.0/210-arm-unbreak-armv4t.patch | 24 24 0 0 +
/devel/gcc-4.4/patches/gcc/4.4.0/130-cross-compile.patch | 78 78 0 0 ++++
/devel/gcc-4.4/patches/gcc/4.4.0/320-missing-execinfo_h.patch | 24 24 0 0 +
/devel/gcc-4.4/config/cc/gcc.in | 1 1 0 0 +
27 files changed, 1945 insertions(+), 2 deletions(-)
2009-05-27 21:16:01 +00:00
Yann E. MORIN"
f149116490
/devel/gcc-4.4:
...
- gcc build script: no longer use the gcc-4.4 snapshot version
-------- diffstat follows --------
/devel/gcc-4.4/scripts/build/cc/gcc.sh | 33 13 20 0 +++++++++++++--------------------
1 file changed, 13 insertions(+), 20 deletions(-)
2009-05-25 20:09:17 +00:00
Yann E. MORIN"
6501c29fd1
Merge r1432:1437 from /branches/newlib into /trunk :
...
- under bare-metal, the user is responsible for providing a gdbserver stub (r1433)
- install a CT_TARGET-cc -> CT_TARGET-gcc symlink for the core gcc (r1434)
- allow broader dependency in generated config files (r1435, r1436)
- prepare C library menuconfig for using a C library under bare-metal (r1437)
/trunk/scripts/build/cc/gcc.sh | 4 4 0 0 ++++
/trunk/config/debug/gdb.in | 5 5 0 0 +++++
/trunk/config/libc/glibc.in | 1 1 0 0 +
/trunk/config/libc/uClibc.in | 1 1 0 0 +
/trunk/config/libc/eglibc.in | 2 1 1 0 +-
/trunk/config/config.mk | 20 8 12 0 ++++++++------------
/trunk/config/arch/sh.in | 2 1 1 0 +-
/trunk/config/arch/ia64.in | 2 1 1 0 +-
/trunk/config/arch/powerpc64.in | 2 1 1 0 +-
/trunk/config/libc.in | 4 0 4 0 ----
10 files changed, 23 insertions(+), 20 deletions(-)
2009-03-26 18:58:13 +00:00
Yann E. MORIN"
355586027b
Add support for building toolchains with gcc-4.4 snapshots.
...
Initial patch by Dmitry PLOTNIKOV: http://sourceware.org/ml/crossgcc/2009-03/msg00053.html
It [the toolchain] uses current ct-ng (nightly snapshot 20090324, latest
release 1.3.2 work also), glibc 2.9 (from CVS), binutils 2.19 and latest
snapshot of GCC 4.4.0 (as of March 20, 2009).
We have successfully built linux kernel 2.6.29 and a lot of other stuff
with this toolchain.
Here's the patch that adds GCC 4.4.0 to the ct-ng menu and enables it to
download a 4.4.0 snapshot from ftp.
Patch was adpated by me, mostly to better fit the configuration layout.
/trunk/scripts/build/cc/gcc.sh | 34 22 12 0 ++++++++++++++++++++++------------
/trunk/config/cc/gcc.in | 35 30 5 0 ++++++++++++++++++++++++++++++-----
2 files changed, 52 insertions(+), 17 deletions(-)
2009-03-26 18:47:34 +00:00
Yann E. MORIN"
24003e416f
Do not copy ecj.jar when it's not required.
...
/trunk/scripts/build/cc/gcc.sh | 4 3 1 0 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
2009-03-15 20:08:06 +00:00
Yann E. MORIN"
a2d32f2257
Add a missing line continuation '\' in the gcc retrieval function.
...
Spotted by Doug Reiland <dreiland@hotmail.com>.
/trunk/scripts/build/cc/gcc.sh | 2 1 1 0 +-
1 file changed, 1 insertion(+), 1 deletion(-)
2009-01-28 22:36:44 +00:00
Yann E. MORIN"
af244eaf45
The gcc team seems to no longer make releases available at the ftp.gnu.org site, but only on mirrors. Add such a mirror to the list of retrieval sites.
...
/trunk/scripts/build/cc/gcc.sh | 1 1 0 0 +
1 file changed, 1 insertion(+)
2009-01-27 21:36:18 +00:00
Yann E. MORIN"
0cd8441a97
Add the Eclipse Java Compiler to be able to compile Java.
...
Andy JOHNSON wrote:
The Java compiler for GCC versions 4.3.0 and up requires the
Eclipse compiler "ecj1" to be built as well. I added "gcj" to
the list of utilities to make the initial link.
/trunk/scripts/build/cc/gcc.sh | 12 12 0 0 ++++++++++++
/trunk/scripts/crosstool.sh | 2 1 1 0 +-
/trunk/config/cc/gcc.in | 6 6 0 0 ++++++
3 files changed, 19 insertions(+), 1 deletion(-)
2009-01-06 22:10:17 +00:00
Yann E. MORIN"
ebf01acb41
Split CT_ExtractAndPatch in two: CT_Extract and CT_Patch:
...
- it is unworkable to have CT_ExtactAndPAtch cope with all those silly glibc addons:
- they can have 'short' (as 'ports') or 'long' (as glibc-ports-2.7) names
- patches are against eithe the short or long name, but non-uniformly use one or the other
- it is the reposibility of the component (glibc in this case) to handle corner cases such as those
- update all components to use the new functions
/trunk/scripts/build/tools/000-template.sh | 3 2 1 0 +-
/trunk/scripts/build/tools/100-libelf.sh | 3 2 1 0 +-
/trunk/scripts/build/tools/200-sstrip.sh | 3 2 1 0 +-
/trunk/scripts/build/kernel/linux.sh | 3 2 1 0 +-
/trunk/scripts/build/binutils.sh | 3 2 1 0 +-
/trunk/scripts/build/cc/gcc.sh | 3 2 1 0 +-
/trunk/scripts/build/debug/000-template.sh | 3 2 1 0 +-
/trunk/scripts/build/debug/100-dmalloc.sh | 3 2 1 0 +-
/trunk/scripts/build/debug/400-ltrace.sh | 3 2 1 0 +-
/trunk/scripts/build/debug/300-gdb.sh | 9 6 3 0 +++--
/trunk/scripts/build/debug/500-strace.sh | 7 3 4 0 ++--
/trunk/scripts/build/debug/200-duma.sh | 19 8 11 0 ++++------
/trunk/scripts/build/libc/glibc.sh | 14 12 2 0 ++++++-
/trunk/scripts/build/libc/uClibc.sh | 13 9 4 0 +++++--
/trunk/scripts/build/libc/eglibc.sh | 14 12 2 0 ++++++-
/trunk/scripts/build/gmp.sh | 3 2 1 0 +-
/trunk/scripts/build/mpfr.sh | 3 2 1 0 +-
/trunk/scripts/functions | 68 36 32 0 +++++++++++++++++++-----------------
18 files changed, 108 insertions(+), 69 deletions(-)
2009-01-05 23:02:43 +00:00
Yann E. MORIN"
ddaf4012ae
Get rid of CT_CC_FILE.
...
/trunk/scripts/build/cc/gcc.sh | 52 26 26 0 ++++++++++++++++++++++++------------------------
/trunk/scripts/crosstool.sh | 1 0 1 0 -
2 files changed, 26 insertions(+), 27 deletions(-)
2009-01-04 14:39:39 +00:00
Yann E. MORIN"
b8b7843bea
Get rid of all stuff related to building a /delivery' traball:
...
- building a delivery tarball has long been broken (since crostool-Ng is installable)
- get rid of implied do_print_filename, that can be mis-leading now tarballs can not be built
/trunk/scripts/build/kernel/bare-metal.sh | 4 0 4 0 ----
/trunk/scripts/build/kernel/linux.sh | 4 0 4 0 ----
/trunk/scripts/build/tools/000-template.sh | 11 0 11 0 -----------
/trunk/scripts/build/tools/100-libelf.sh | 4 0 4 0 ----
/trunk/scripts/build/tools/200-sstrip.sh | 11 1 10 0 +----------
/trunk/scripts/build/binutils.sh | 4 0 4 0 ----
/trunk/scripts/build/cc/gcc.sh | 5 0 5 0 -----
/trunk/scripts/build/debug/000-template.sh | 11 0 11 0 -----------
/trunk/scripts/build/debug/100-dmalloc.sh | 4 0 4 0 ----
/trunk/scripts/build/debug/400-ltrace.sh | 4 0 4 0 ----
/trunk/scripts/build/debug/300-gdb.sh | 7 0 7 0 -------
/trunk/scripts/build/debug/500-strace.sh | 4 0 4 0 ----
/trunk/scripts/build/debug/200-duma.sh | 4 0 4 0 ----
/trunk/scripts/build/libc/none.sh | 5 0 5 0 -----
/trunk/scripts/build/libc/glibc.sh | 10 0 10 0 ----------
/trunk/scripts/build/libc/uClibc.sh | 6 0 6 0 ------
/trunk/scripts/build/libc/eglibc.sh | 10 0 10 0 ----------
/trunk/scripts/build/gmp.sh | 6 0 6 0 ------
/trunk/scripts/build/mpfr.sh | 6 0 6 0 ------
/trunk/docs/overview.txt | 9 0 9 0 ---------
20 files changed, 1 insertion(+), 128 deletions(-)
2009-01-03 21:11:41 +00:00
Yann E. MORIN"
25dcd46fc9
Remove spurious line in gcc script (probably a bad copy-paste with the mouse...).
...
/trunk/scripts/build/cc/gcc.sh | 1 0 1 0 -
1 file changed, 1 deletion(-)
2009-01-03 20:53:19 +00:00
Yann E. MORIN"
a4e2d34a0f
Enable C++ for baremetal.
...
/trunk/scripts/build/cc/gcc.sh | 7 5 2 0 +++++--
/trunk/config/cc.in | 8 2 6 0 ++------
2 files changed, 7 insertions(+), 8 deletions(-)
2008-12-24 17:34:32 +00:00
Yann E. MORIN"
8fba8c2732
Merge #1195 , #1196 and #1203 from /devel/YEM-build_host_target_cleanup:
...
- Get rid of CT_CC_NATIVE
- Get rid of CT_CANADIAN_OPT
- Sanitise CT_BUILD vs. CT_HOST
/trunk/scripts/build/tools/200-sstrip.sh | 4 2 2 0
/trunk/scripts/build/binutils.sh | 1 0 1 0 -
/trunk/scripts/build/cc/gcc.sh | 11 6 5 0 +-
/trunk/scripts/build/debug/200-duma.sh | 3 1 2 0 -
/trunk/scripts/build/libc/glibc.sh | 10 5 5 0 +-
/trunk/scripts/build/libc/eglibc.sh | 8 4 4 0 +-
/trunk/scripts/crosstool.sh | 168 113 55 0 ++++++++++++++++++++++++++------------
/trunk/config/toolchain.in | 160 137 23 0 +++++++++++++++++++++++++++++++-----
8 files changed, 268 insertions(+), 97 deletions(-)
2008-11-13 18:22:23 +00:00
Yann E. MORIN"
5c48279f0f
Make a relative symlink from ${CT_TARGET}-cc to ${CT_TARGET}-gcc.
...
This helps those who want to relocate their toolchains later.
Reported by Nye Liu: http://sourceware.org/ml/crossgcc/2008-10/msg00093.html
/trunk/scripts/build/cc/gcc.sh | 2 1 1 0 +-
1 file changed, 1 insertion(+), 1 deletion(-)
2008-10-28 18:51:44 +00:00
Yann E. MORIN"
6731142c39
Better handle the second pass core gcc build, differentiating between gcc prior to 4.3 with gcc from 4.3.
...
Simplify detecting wether gcc is 4.3 and later, or older than 4.3 (we already know from .config).
/trunk/scripts/build/cc/gcc.sh | 22 13 9 0 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
2008-09-30 18:19:18 +00:00
Yann E. MORIN"
47221dfa6a
Restore the ability to build gcc older than 4.3. At last!
...
/trunk/scripts/build/cc/gcc.sh | 2 1 1 0 +-
1 file changed, 1 insertion(+), 1 deletion(-)
2008-09-29 12:02:47 +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