summaryrefslogtreecommitdiff
path: root/project.conf
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2017-10-27 13:49:38 +0000
committerJavier Jardón <jjardon@gnome.org>2017-11-05 12:14:48 +0000
commit4203865325c33d752f814850f43d2ecb16c8fa16 (patch)
tree8bf81042a356db74fad2905b46ea369a316e4309 /project.conf
parentb917c363cc13b13ed553051844095469e1d6fc82 (diff)
downloaddefinitions-4203865325c33d752f814850f43d2ecb16c8fa16.tar.gz
Replace use of architecture conditionals with generic project conditions
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.
Diffstat (limited to 'project.conf')
-rw-r--r--project.conf112
1 files changed, 67 insertions, 45 deletions
diff --git a/project.conf b/project.conf
index bbccf5e6..6200daa1 100644
--- a/project.conf
+++ b/project.conf
@@ -8,9 +8,75 @@ aliases:
# All the elements go here
element-path: ./elements
+# We list a lot of architectures here and Baserock has supported each of these
+# at some point in the past, however for the list of *currently* supported
+# architectures look in `elements/gnu-toolchain/base.bst`.
+
+options:
+ build_arch:
+ description: |
+ Specifies architecture of the build sandbox.
+
+ This defaults to $(uname -a). On platforms where the Baserock architecture
+ name doesn't match the Linux architecture name, you need to manually
+ specify the Baserock architecture name.
+
+ You can also use this to build for a different architecture provided your
+ host can execute binaries for that architecture. For example, you could
+ run an x86_32 build on an x86_64 machine by setting `build_arch=x86_32`
+ and `arch=x86_32`.
+ type: arch
+ variable: build_arch
+ values: [
+ armv5l, armv7b, armv7l, armv7lhf, armv8l64, armv8b64, mips64b, mips64l,
+ mips32b, mips32l, ppc64b, ppc64l, x86_32, x86_64
+ ]
+
+ arch:
+ description: |
+ Specifies host and target architecture for output binaries.
+
+ Usually this should match build_arch. If it differs, a cross compile
+ will happen up to the gnu-toolchain/stage2.bst stack. Beyond this,
+ cross compilation isn't supported.
+
+ For instructions on how to bootstrap a new architecture, see:
+ http://wiki.baserock.org/guides/how-to-cross-bootstrap/
+ type: arch
+ variable: arch
+ values: [
+ armv5l, armv7b, armv7l, armv7lhf, armv8l64, armv8b64, mips64b, mips64l,
+ mips32b, mips32l, ppc64b, ppc64l, x86_32, x86_64
+ ]
+
variables:
- cpu: "%{bst-target-arch}"
+ cpu: "%{arch}"
abi: gnu
+
+ (?):
+ - arch == "x86_32":
+ cpu: i686
+ - arch in ["armv5l", "armv7b", "armv7l", "armv7lhf"]:
+ cpu: "%{arch}"
+ abi: gnueabi
+ - arch == "armv8l64":
+ cpu: aarch64
+ - arch == "armv8b64":
+ cpu: aarch64_be
+ - arch == "mips64b":
+ cpu: mips64
+ abi: gnuabi64
+ - arch == "mips64l":
+ cpu: mips64el
+ - arch == "mips32b":
+ cpu: mips
+ - arch == "mips32l":
+ cpu: mipsel
+ - arch == "ppc64b":
+ cpu: powerpc64
+ - arch == "ppc64l":
+ cpu: powerpc64le
+
target-stage1: "%{cpu}-bootstrap-linux-%{abi}"
target: "%{cpu}-baserock-linux-%{abi}"
@@ -63,50 +129,6 @@ variables:
artifacts:
pull-url: https://ostree.baserock.org/cache/
-# Resolve the cpu and ABI portions of the host triple based
-# on architecture names.
-arches:
- x86_32:
- variables:
- cpu: i686
- armv5l:
- variables:
- abi: gnueabi
- armv7b:
- variables:
- abi: gnueabi
- armv7l:
- variables:
- abi: gnueabi
- armv7lhf:
- variables:
- abi: gnueabi
- armv8l64:
- variables:
- cpu: aarch64
- armv8b64:
- variables:
- cpu: aarch64_be
- mips64b:
- variables:
- cpu: mips64
- abi: gnuabi64
- mips64l:
- variables:
- cpu: mips64el
- mips32b:
- variables:
- cpu: mips
- mips32l:
- variables:
- cpu: mipsel
- ppc64b:
- variables:
- cpu: powerpc64
- ppc64l:
- variables:
- cpu: powerpc64le
-
split-rules:
locale:
(>):