summaryrefslogtreecommitdiff
path: root/strata/build-essential
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Add a compatibility symlink for /lib/ld-linux.so.3 on ARMv7 hard-float"Sam Thursfield2015-04-141-6/+0
| | | | | | | | | | | | | | | | | | This reverts commit a51a8ee9fe2c691a4b2d73fe06c1fde1d18f1153. This symlink was a bad idea. We found that if the stage1-gcc chunk is built on an ARM system with EGLIBC 2.15, then run on a system with GLIBC 2.20, the GCC binaries segfault on startup, inside the _dl_addr() function. This is likely the result of an ABI compatibility between EGLIBC 2.15 and GLIBC 2.20. Morph still has a big hole in its caching algorithm whereby 'bootstrap' mode chunks built against incompatible libc versions get the same cache-key, and cause random breakages. We either need to fix this, or ensure that the reference bootstrap is entirely statically linked, as soon as possible. Change-Id: I400d293dc8022ca6ab5a0ebda62ce378e9bf3317
* stage2-glibc.morph: inline stage2-glibc-fix-specs scriptJavier Jardón2015-04-071-1/+35
| | | | Change-Id: I55bf8764a105308d965947c3721a193abf7502ac
* glibc.morph: Make the code faster supporting only > 3.0 kernelsJavier Jardón2015-03-301-1/+1
| | | | | | | | | | This should be safe as we only build 3.19 in our systems (3.18 in the case of the jetson) For reference: http://www.gnu.org/software/libc/manual/html_node/Configuring-and-compiling.html Change-Id: I40df10570e3d2602c6f1b223ebb71753c6f86f8e
* stage2-glibc: Fix symlink to dynamic linkerPaul Martin2015-03-231-0/+2
| | | | | | | | | | | | On non-x86 systems, the linker may not be called ld-linux.so.* but the older name of ld.so.* When the linker is ld.so.1, for example, the install script of stage2-glibc does not exit with an error (as basename/ls are in subshells), but rather $loader is empty string. This means that the symlink made is from /lib/lib to /tools/lib rather than from /lib/ld.so.1 to /tools/lib/ld.so.1.
* Create /etc/ld.so.conf in glibc chunks, as it is glibc specificRichard Dale2015-03-124-2/+17
|
* Merge branch 'baserock/richardmaw/shrink-initramfs'Richard Maw2015-03-041-0/+16
|\ | | | | | | | | Reviewed-by: Sam Thursfield Reviewed-by: Pedro Alvarez
| * gcc.morph: Define splitting rulesRichard Maw2015-02-251-0/+16
| |
* | Add a compatibility symlink for /lib/ld-linux.so.3 on ARMv7 hard-floatSam Thursfield2015-02-271-0/+6
|/ | | | | | | | | | | | | | | | | Morph's cache key algorithm doesn't yet take into account the fact that bootstrap chunks use files from the host system. While we are careful in the Baserock reference system definitions to minimise the number of components from the host system that it uses, the GNU C Library is pretty much unavoidable. Until we make the cache key algorithm more comprehensive, we need to ensure that the bootstrap-mode chunks from build-essential will indeed run on all versions of Baserock 'build' and 'devel' reference systems. Otherwise cached artifacts built on one system will randomly break for other people using different systems. This commit fixes one such breakage, which was due to the name of the GLIBC dynamic loader (ld.so) changing on ARMv7 hard-float platforms.
* Disable gcc warnings in m4James Thomas2015-02-161-1/+1
| | | | This should be the default for a tarball release
* Support installing the Linux headers for aarch64 systemsTiago Gomes2015-02-122-0/+4
| | | | | Support installing the Linux headers for the morph armv8l64 and armb8b64 archs.
* strata/build-essential: Upgrade to latest m4 tarball (1.4.17)Javier Jardón2015-02-021-2/+2
|
* Merge branch 'baserock/tiagogomes/update-toolchain-v2'Tiago Gomes2015-01-2612-104/+220
|\ | | | | | | | | | | | | Reviewed by: * Sam Thursfield * Paul Sherwood * Josh Malkinson
| * Embed morph-arch and morph-arch-configbaserock/tiagogomes/update-toolchain-v2Paul Sherwood2015-01-235-6/+58
| | | | | | | | This will make it easier to advance refs later.
| * Update GCC to 4.9.2Tiago Gomes2015-01-239-75/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Move M4 from core to build-essentialTiago Gomes2015-01-231-0/+5
| | | | | | | | | | M4 is required to manipulate the assembly code in GMP. GMP is a math library required to build GCC.
| * Improve the readability and docs of gcc morphologiesTiago Gomes2015-01-223-71/+89
| | | | | | | | | | No functional changes here. It will ease the review of the following commmits.
* | Disable busybox lspciRichard Ipsum2015-01-221-0/+1
|/ | | | We will use the pciutils lspci
* busybox.morph: Do not install custom systemd units for network/ntpdJavier Jardón2014-11-171-40/+1
| | | | This is automatically configured by systemd
* Reorder hosts in nsswitch.confPedro Alvarez2014-11-111-1/+1
|
* Use glibc instead of eglibcPedro Alvarez2014-11-113-74/+99
|
* Add stage2-fake-bash before eglibcPedro Alvarez2014-11-111-0/+4
| | | | | This change is to prepare the transition to glibc since the latter is going to need bash to build.
* Merge branch 'baserock/sam/build-essential-comments'Sam Thursfield2014-10-0212-36/+193
|\ | | | | | | | | Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk> Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
| * Add back missing comments to build-essential chunk morphsSam Thursfield2014-09-2612-36/+193
| | | | | | | | | | These will have been lost in the automated chunks-in-definitions transition.
* | Use linux-api-headers from Linux 3.8Sam Thursfield2014-09-262-2/+0
|/ | | | | | The 'make mrproper' command now requires GNU Bash, but since we start from a clean Git checkout of linux.git we can just remove that from the build command list.
* Re-organise definitions with scripts/organise-morphologies.pyGENIVI-I0.1baserock/release/GENIVI-I0.1Richard Maw2014-08-1822-0/+571