diff options
author | Tiago Gomes <tiago.gomes@codethink.co.uk> | 2015-01-12 15:13:53 +0000 |
---|---|---|
committer | Tiago Gomes <tiago.gomes@codethink.co.uk> | 2015-01-23 15:19:29 +0000 |
commit | fe5e9e45bb56bccb6c6ad755b21074ce4df26a02 (patch) | |
tree | 487090b1a60e693affaab57fe0e3eea53909481e /strata/build-essential.morph | |
parent | d022ac34d44616e7c7479a0aa1e81287786f3299 (diff) | |
download | definitions-fe5e9e45bb56bccb6c6ad755b21074ce4df26a02.tar.gz |
Update GCC to 4.9.2
Update the GCC compiler to the 4.9.2 version. It turns out that a C++
compiler is required to build the latest GCC releases, so build one in
stages 1 and 2 as well.
The updated list of GCC configuration options that either don't work in
a cross compiler or are not needed in a temporary compiler, were based
on the latest instructions from Linux From Scratch.
The inclusion of /lib64 in the lib path for the stage 1 linker is an
attempt to turn things more robust rather than to just symlink in /lib
stuff that ends up installed in /lib64 (as it is already being done for
libgcc_s.so). Ideally, we should configure every chunk to install to
/lib, however GCC seems to not honour the `--with-libdir` configuration
flag.
With this version of GCC, it looks like a sysroot needs to be given at
configure time so that `--with-native-system-header-dir` does what it
claims to do. Unfortunately, this has the side effect of making GCC not
passing to the linker the linker sysroot flag: `-Wl,--sysroot=$SYSROOT`.
The workaround is to modify LDFLAGS to give a sysroot directly to GCC,
`--sysroot=$SYSROOT`, which will then be further passed down to the
linker.
As the newest version of GCC finds more warnings than the previous one,
`-Werror` was disabled for the coreutils, GDB and Syslinux projects.
Syslinux's Makefile had to be patched, as it is not possible to disable
`-Werror` for all targets through the NO_WERROR variable.
The hack to handle libgcc_eh being required during eglibc's build was
removed, as it doesn't seem to be the case anymore.
Diffstat (limited to 'strata/build-essential.morph')
-rw-r--r-- | strata/build-essential.morph | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/strata/build-essential.morph b/strata/build-essential.morph index 02b2043a..59f2b532 100644 --- a/strata/build-essential.morph +++ b/strata/build-essential.morph @@ -50,8 +50,8 @@ chunks: - name: stage1-gcc morph: strata/build-essential/stage1-gcc.morph repo: upstream:gcc-tarball - ref: 999c918a7ad32ad436395666def22ab90b3447fe - unpetrify-ref: baserock/build-essential + ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06 + unpetrify-ref: baserock/tiagogomes/update-toolchain build-depends: - stage1-binutils build-mode: bootstrap @@ -80,6 +80,18 @@ chunks: build-mode: bootstrap prefix: /tools +- name: stage2-libstdc++ + morph: strata/build-essential/stage2-libstdc++.morph + repo: upstream:gcc-tarball + ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06 + unpetrify-ref: baserock/tiagogomes/update-toolchain + build-depends: + - stage1-binutils + - stage1-gcc + - stage2-glibc + build-mode: bootstrap + prefix: /tools + - name: stage2-binutils morph: strata/build-essential/stage2-binutils.morph repo: upstream:binutils-redhat @@ -95,8 +107,8 @@ chunks: - name: stage2-gcc-fixed-headers morph: strata/build-essential/stage2-gcc-fixed-headers.morph repo: upstream:gcc-tarball - ref: 999c918a7ad32ad436395666def22ab90b3447fe - unpetrify-ref: baserock/build-essential + ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06 + unpetrify-ref: baserock/tiagogomes/update-toolchain build-depends: - stage1-binutils - stage1-gcc @@ -107,13 +119,14 @@ chunks: - name: stage2-gcc morph: strata/build-essential/stage2-gcc.morph repo: upstream:gcc-tarball - ref: 999c918a7ad32ad436395666def22ab90b3447fe - unpetrify-ref: baserock/build-essential + ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06 + unpetrify-ref: baserock/tiagogomes/update-toolchain build-depends: - stage1-binutils - stage1-gcc - stage2-glibc - stage2-gcc-fixed-headers + - stage2-libstdc++ build-mode: bootstrap prefix: /tools @@ -327,8 +340,8 @@ chunks: - name: gcc morph: strata/build-essential/gcc.morph repo: upstream:gcc-tarball - ref: 5c08cea34d5562dc828b85c7c02519246823aaf0 - unpetrify-ref: baserock/build-essential-4.7 + ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06 + unpetrify-ref: baserock/tiagogomes/update-toolchain build-depends: - stage2-binutils - stage2-busybox |