summaryrefslogtreecommitdiff
path: root/elements/gnu-toolchain/gcc.bst
Commit message (Collapse)AuthorAgeFilesLines
* gnu-toolchain: Split rule improvementssam/split-rulesSam Thursfield2017-12-041-0/+38
| | | | | | | | | | | | | | | | | | | | | | This includes many fixes that result in us being able to produce a minimal OS image or initramfs of a reasonable size. I have built an initramfs of 16MB uncompressed with this change: still a bit bigger than necessary, but much better than the comical ~700MB thing complete with kernel source code and C++ compiler that I got before these changes. Note that the gnu-toolchain stack now puts all the toolchain binaries into the 'devel' artifact. The 'runtime' artifact just contains libraries needed to run programs that are built with that toolchain. We should split this up further in future so that C programs don't depend on libstdc++. Special care is taken for GCC and GLIBC to handle the lib/ and lib64/ split that they do on some 64-bit platforms. We also globally put /usr/src into the devel artifact, which is only useful for the linux.bsp element at present but makes sense as a global rule.
* gnu-toolchain: Use correct target names in Binutils and GCCSam Thursfield2017-12-041-1/+4
| | | | | | | | | | | | | We intended to set the architecture triplet for systems we build to something like x86_64-baserock-linux-gnu. This wasn't actually happening though as nobody had passed the message on to the GCC and Binutils build systems, so we got mixed defaults of x86_64-pc-linux-gnu and x86_64-unknown-linux-gnu. Both GCC and Binutils install files that have the target name in their path, and it's useful when writing split rules if we know in advance what that's actually going to be. Plus it looks neater if we set the vendor field in the architecture triplet correctly!
* Replace use of architecture conditionals with generic project conditionsSam Thursfield2017-11-051-19/+40
| | | | | | | | | | | | The initial implementation of architecture conditionals has been removed, as the same behaviours can be implemented using the more generic mechanism for conditionals that is being introduced for BuildStream 1.0. We now have two architecture options: build_arch and arch. They are documented in project.conf. The first one controls the build sandbox while the second controls the host and target of the binaries we produce.
* Disable debug section compression in stage3Sam Thursfield2017-10-261-0/+4
| | | | | | The objcopy tool that we built in stage2 doesn't have zlib support, so it can't handle the `--compress-debug-sections` flag that BuildStream passes by default.
* Support cross-building the stage1 and stage2 componentsSam Thursfield2017-07-071-2/+2
| | | | | | | | | | | | | | This requires a feature recently added to BuildStream (in commit 03906221) that adds a framework for elements to support being cross-compiled. To build an armv8l64 native toolchain and sysroot on an x86_64 build machine, for example, you can do this: bst build --target-arch=armv8l64 gnu-toolchain/stage2.bst You can then run `bst checkout` to get at the resulting binaries and copy them onto an armv8l64 machine where they can be executed.
* Update GCC to 7.1.0, and GLIBC to 2.25Sam Thursfield2017-07-071-2/+2
|
* Moved all elements under the elements directoryTristan Van Berkom2017-03-221-0/+67