summaryrefslogtreecommitdiff
path: root/strata/build-essential
Commit message (Collapse)AuthorAgeFilesLines
* strata/build-essential/stage2-glibc.morph: Set build-system to manualJavier Jardón2016-07-251-0/+1
| | | | Change-Id: I2caada1a07a8e06d6236614f7459d9a2db693d69
* gcc: Remove 'with-cpu', not compatible with 'with-arch'Pedro Alvarez2016-06-023-3/+0
| | | | | | | | | | | | | | The following error was happening after upgrading to GCC 5.3.0 in armv7lhf builds: Switch "--with-arch" may not be used with switch "--with-cpu" Also, I could find other places where this flag was removed when upgrading to GCC 5: http://pkgs.fedoraproject.org/cgit/rpms/gcc.git/commit/gcc.spec?id=7f999936529d6902d43c8cc807ceb3a6843f3072 Change-Id: Ib3934098518dc496d3c9d29a9c7f97a7cfeab9c7
* Upgrade to GCC 5.3.0Pedro Alvarez2016-06-012-1/+2
| | | | Change-Id: I0e2b2c2f823e89b1bcbba6149fa6d92dce3d07cb
* strata/build-essential/zlib.morph: build-system is not autotoolsJavier Jardón2016-02-161-0/+9
| | | | Change-Id: I0c0dc78ed03f8ec81e4af69e2e86f70aa954d6a0
* Use MORPH_ARCH instead manual parsingJavier Jardón2015-12-211-2/+1
| | | | Change-Id: I10f5794157941c828db8d3acbc386dffbacd1831
* Install all supported locales with glibcTristan Van Berkom2015-10-281-0/+2
| | | | | | | | | | | | There should be some options here for building glibc.morph with different flavors, to allow minimalistic systems with less then all supported locales installed (this is a ~100MB cache file). For now just simply install all locales supported by the glibc installed charsets using glibc's automatic make target, which seems to make more sense than not installing any locales at all. Change-Id: I86287b027bb6d1c062277bc916de8586408edd83
* Explicitly disable guile in build of gnu make.Tristan Van Berkom2015-10-111-1/+1
| | | | | | | | | | | During the stage2 build, we are using header files from the target sandbox but host build tools, which will automatically detect guile if present on the build host. This prevents the build of 'make' to otherwise fail while building guile.o, due to the lack of 'gmp.h' (and possibly other unneeded cruft). Change-Id: I5be8467afc9486bf40055000e4c6460232345b93
* Fix the splitting rules for glibc for location of libSegFaultPaul Martin2015-08-191-1/+1
| | | | | | | | The current split rule assumes all libraries are placed in usr/lib or lib where on many architectures they could instead be in lib32 or lib64, or usr/lib32 or usr/lib64. Change-Id: Iec2557b7a17213d46f7a9d9e93c063c2d4fac655
* Reformat all definitions according to a consistent styleSam Thursfield2015-07-193-24/+37
| | | | | | | | | | | | | | | | | This was done using the 'indent' tool, which uses a fork of PyYAML named 'ruamel.yaml' to rewrite YAML files without losing comments, ordering, or certain elements of formatting. My aim with doing this is to open the door to automated editing of the reference system definitions using the 'ruamel.yaml' library. This can be used to implement automated migration when we want to make changes to the YAML format that we use to represent Baserock system definitions. Although this looks drastic, remember that it's actually only altered 65 out of 608 .morph files -- the vast majority already pass unchanged through my version of ruamel.yaml. Change-Id: I95ec978714b5bd1c02c90183336a9fbb846cb692
* Fix 'sed' invocation to work with BSD 'sed'Sam Thursfield2015-06-161-1/+4
| | | | | | The BSD 'sed' used on Mac OS X is a bit rubbish compared with GNU 'sed'. Change-Id: Ic26878301b49099252b04d8a0854e551c352ad54
* busybox: Don't include build date in --help outputSam Thursfield2015-06-162-6/+8
| | | | | | | | I did two builds of 'busybox' on the same system, using YBD, and found that the only difference between the two artifacts was the /baserock/busybox.meta file, as this contains an 'elapsed_time' field. Change-Id: Id6d65e68286cdd47eb44ad838a15c599b91c4e8d
* stage2-binutils: No need to disable c++ anymoreJavier Jardón2015-06-101-1/+1
| | | | | | | | | | | | We are generating a c++ compiler in stage 1, so no need to use the workaround introduced in commit e72775acb5326e948d2542622afb9bed4fd67c15 to be able to compile binutils without a c++ compiler This allows using upstream release tarballs of binutils, where before we had to patch out the AC_PROG_CXX statement from configure.in. Change-Id: I1ce9d2946f3a23a4355e8ec527a5ebfbce987d99
* Use latest zlib (1.2.8)Javier Jardón2015-06-071-9/+0
| | | | | | Also remove morph file as doesnt seem to be needed Change-Id: I2be278552baee752db39d1af7f95e7e98de75cf9
* stage1-gcc.morph: Fix compilation support when natively compile for armv5Javier Jardón2015-05-281-0/+2
| | | | Change-Id: Id7b85f0700e2b422a1a610d09d76e038e14db73c
* Create /etc/ld.so.conf.d in the glibc chunks, not fhs-dirs as it is glibc ↵Richard Dale2015-05-072-0/+5
| | | | | | | | | | | specific Include ld.so.conf and ld.so.conf.d in the glibc-libs artifact This fixes a problem with minimal systems introduced by this commit: c9afefed2d2278046ec5c0fb11c32220f3b7380d It meant that /etc/ld.so.conf was missing in minimal systems Change-Id: I4b63c33c4572e78092e1b434489787f3e788a80f
* Revert "Upgrade to GCC 5.1"Sam Thursfield2015-05-062-2/+1
| | | | | | | | | | | | This reverts commit acb29d344d117133891199ea536d9c4d34c7d05e. We have discovered that Baserock systems built with GCC 5.1 cannot *deploy* working disk images. The images hang in SYSLINUX. We suspect that it is a bug in SYSLINUX that is triggered by the compiler upgrade, and upgrading SYSLINUX may well fix this issue, but we don't have time to do this and test it in time for a 15.19 release Change-Id: I3c661b14fb923eee37c4c0148904620362fe62e2
* Upgrade to GCC 5.1Javier Jardon2015-04-292-1/+2
| | | | Change-Id: Iad8f11341a4a770c14393a50d1b0d3e26c076dbf
* Add essential-files/etc/profileJavier Jardón2015-04-291-5/+0
| | | | | | | Also source /etc/bash.bashrc so bash will work properly if we use it for login Change-Id: I4a4b238f84c44858904b0a208ef8737a859c355d
* gcc: set correct host/target for GMP for armv5Javier Jardón2015-04-281-0/+2
| | | | Change-Id: I8220cd76e947de26335066357d69d2c5c204257c
* stage2-gcc: set correct host/target for GMP for armv5Javier Jardón2015-04-281-0/+2
| | | | Change-Id: Icb223438e2ed7bc54e8d1ea7573594418ebe0445
* Support installing the Linux headers for armv5l systemsJavier Jardón2015-04-282-0/+4
| | | | Change-Id: Ie917edd78e0c7640b86396ed5a5d968a0baaad9b
* 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