summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2017-07-12 10:45:57 (GMT)
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2017-07-12 10:45:57 (GMT)
commit879a306c8c6285e9ef8dcbbba96bb84e62a9654c (patch)
treef3fb68930e733a87fdb0a675561a0d8bd00ca5b6
parent4faa52372d4e9422346b15ef696fc8616196950d (diff)
parenta515e4f5fba4eb9d9a417025e62b90b185029d2a (diff)
downloaddefinitions-879a306c8c6285e9ef8dcbbba96bb84e62a9654c.tar.gz
Merge branch 'sam/gnu-toolchain-updates' into 'gnu-toolchain'
Update toolchain and allow cross-building See merge request !9
-rw-r--r--.gitlab-ci.yml22
-rw-r--r--elements/gnu-toolchain/base-platform.bst2
-rw-r--r--elements/gnu-toolchain/base-sdk.bst2
-rw-r--r--elements/gnu-toolchain/gcc.bst8
-rw-r--r--elements/gnu-toolchain/glibc.bst4
-rw-r--r--elements/gnu-toolchain/linux-api-headers.bst4
-rw-r--r--elements/gnu-toolchain/stage1-gcc.bst9
-rw-r--r--elements/gnu-toolchain/stage2-fhs-dirs.bst2
-rw-r--r--elements/gnu-toolchain/stage2-gcc-fixed-headers.bst4
-rw-r--r--elements/gnu-toolchain/stage2-gcc.bst8
-rw-r--r--elements/gnu-toolchain/stage2-glibc.bst22
-rw-r--r--elements/gnu-toolchain/stage2-libstdcxx.bst6
-rw-r--r--elements/gnu-toolchain/stage2-linux-api-headers.bst6
-rw-r--r--project.conf10
14 files changed, 72 insertions, 37 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..96f5d99
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,22 @@
+image: samthursfield/buildstream:0.1-20170627.1
+
+before_script:
+ # Update to latest BuildStream commit
+ - cd ~/buildstream
+ - git remote update origin
+ - git reset --hard origin/master
+ - pip3 install .
+ - cd -
+
+ # Work around https://github.com/fedora-cloud/docker-brew-fedora/issues/14
+ - export LANG="C.UTF-8"
+ - export LC_ALL="C.UTF-8"
+
+# We are limited to simple CI unless we provide our own GitLab CI runners.
+stages:
+ - validate
+
+validate:
+ stage: validate
+ script:
+ - bst --colors show gnu-toolchain.bst
diff --git a/elements/gnu-toolchain/base-platform.bst b/elements/gnu-toolchain/base-platform.bst
index 09c95ac..ce9cdc0 100644
--- a/elements/gnu-toolchain/base-platform.bst
+++ b/elements/gnu-toolchain/base-platform.bst
@@ -6,7 +6,7 @@ public:
bst:
integration-commands:
- ldconfig
-arches:
+host-arches:
x86_64:
sources:
- kind: ostree
diff --git a/elements/gnu-toolchain/base-sdk.bst b/elements/gnu-toolchain/base-sdk.bst
index cd191fd..61c29f6 100644
--- a/elements/gnu-toolchain/base-sdk.bst
+++ b/elements/gnu-toolchain/base-sdk.bst
@@ -3,7 +3,7 @@ description: Import the base freedesktop SDK
config:
source: files
target: usr
-arches:
+host-arches:
x86_64:
sources:
- kind: ostree
diff --git a/elements/gnu-toolchain/gcc.bst b/elements/gnu-toolchain/gcc.bst
index b7b17ae..e9a5483 100644
--- a/elements/gnu-toolchain/gcc.bst
+++ b/elements/gnu-toolchain/gcc.bst
@@ -3,8 +3,8 @@ kind: manual
sources:
- kind: git
url: upstream:gcc-tarball
- track: baserock/gnu-toolchain
- ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
+ track: baserock/gcc-7.1.0
+ ref: 3b0dbcfa2e5d12bd80cab1b35f08653d61fe7838
depends:
- filename: gnu-toolchain/stage2.bst
@@ -30,7 +30,7 @@ config:
# 2. Avoid having more than one copy of ZLib in use on the system
# 3. Multilib does not make sense in Baserock.
- |
- case "%{bst-arch}" in
+ case "%{bst-target-arch}" in
armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \
--with-cpu=cortex-a9 \
--with-tune=cortex-a9 \
@@ -50,7 +50,7 @@ config:
build-commands:
- |
- case "%{bst-arch}" in
+ case "%{bst-target-arch}" in
armv5*) sed -i "s/--host=none/--host=armv5/" o/Makefile
sed -i "s/--target=none/--target=armv5/" o/Makefile ;;
armv7*) sed -i "s/--host=none/--host=armv7a/" o/Makefile
diff --git a/elements/gnu-toolchain/glibc.bst b/elements/gnu-toolchain/glibc.bst
index 8621074..48e9262 100644
--- a/elements/gnu-toolchain/glibc.bst
+++ b/elements/gnu-toolchain/glibc.bst
@@ -3,8 +3,8 @@ kind: manual
sources:
- kind: git
url: upstream:glibc
- track: release/2.22/master
- ref: b995d95a5943785be3ab862b2d3276f3b4a22481
+ track: release/2.25/master
+ ref: adc7e06fb412a2a1ee52f8cb788caf436335b9f3
depends:
- filename: gnu-toolchain/stage2.bst
diff --git a/elements/gnu-toolchain/linux-api-headers.bst b/elements/gnu-toolchain/linux-api-headers.bst
index 0020d2a..db89f18 100644
--- a/elements/gnu-toolchain/linux-api-headers.bst
+++ b/elements/gnu-toolchain/linux-api-headers.bst
@@ -17,7 +17,7 @@ environment:
config:
install-commands:
- |
- case "%{bst-arch}" in
+ case "%{bst-target-arch}" in
armv5l)
ARCH="arm" ;;
armv7b|armv7l|armv7lhf)
@@ -31,7 +31,7 @@ config:
ppc64)
ARCH="powerpc" ;;
*)
- echo "Error: unsupported Morph architecture: %{bst-arch}" >&2
+ echo "Error: unsupported architecture: %{bst-target-arch}" >&2
exit 1
esac
ARCH=$ARCH make INSTALL_HDR_PATH=dest headers_install
diff --git a/elements/gnu-toolchain/stage1-gcc.bst b/elements/gnu-toolchain/stage1-gcc.bst
index 1785184..bcf30bc 100644
--- a/elements/gnu-toolchain/stage1-gcc.bst
+++ b/elements/gnu-toolchain/stage1-gcc.bst
@@ -3,8 +3,8 @@ kind: autotools
sources:
- kind: git
url: upstream:gcc-tarball
- track: baserock/gnu-toolchain
- ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
+ track: baserock/gcc-7.1.0
+ ref: 3b0dbcfa2e5d12bd80cab1b35f08653d61fe7838
depends:
- gnu-toolchain/base-platform.bst
@@ -43,7 +43,7 @@ config:
# without an existing libc, and generally try to keep this build as
# simple as possible.
- |
- case "%{bst-arch}" in
+ case "%{bst-target-arch}" in
armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \
--with-cpu=cortex-a9 \
--with-tune=cortex-a9 \
@@ -72,6 +72,7 @@ config:
`# [5]` --disable-libatomic \
`# [5]` --disable-libgomp \
`# [5]` --disable-libitm \
+ `# [5]` --disable-libmpx \
`# [5]` --disable-libquadmath \
`# [5]` --disable-libsanitizer \
`# [5]` --disable-libssp \
@@ -88,7 +89,7 @@ config:
# code results on an undefined reference to `__gmpn_invert_limb' in
# ARMv7. Fix the invocation of GMP's configure script so that GMP can
# use the machine-dependent code.
- case "%{bst-arch}" in
+ case "%{bst-target-arch}" in
armv5*) sed -i "s/--host=none/--host=armv5/" o/Makefile
sed -i "s/--target=none/--target=armv5/" o/Makefile ;;
armv7*) sed -i "s/--host=none/--host=armv7a/" o/Makefile
diff --git a/elements/gnu-toolchain/stage2-fhs-dirs.bst b/elements/gnu-toolchain/stage2-fhs-dirs.bst
index 3734623..f91f2f1 100644
--- a/elements/gnu-toolchain/stage2-fhs-dirs.bst
+++ b/elements/gnu-toolchain/stage2-fhs-dirs.bst
@@ -3,7 +3,7 @@ kind: manual
sources:
- kind: git
url: baserock:baserock/fhs-dirs
- track: master
+ track: baserock/usr_merge
ref: 9fafca436000bb57ddd5c498f8a75ea7b274f6c5
depends:
diff --git a/elements/gnu-toolchain/stage2-gcc-fixed-headers.bst b/elements/gnu-toolchain/stage2-gcc-fixed-headers.bst
index f3ed0e1..80c9bf3 100644
--- a/elements/gnu-toolchain/stage2-gcc-fixed-headers.bst
+++ b/elements/gnu-toolchain/stage2-gcc-fixed-headers.bst
@@ -3,8 +3,8 @@ kind: manual
sources:
- kind: git
url: upstream:gcc-tarball
- track: baserock/gnu-toolchain
- ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
+ track: baserock/gcc-7.1.0
+ ref: 3b0dbcfa2e5d12bd80cab1b35f08653d61fe7838
depends:
- filename: gnu-toolchain/stage1.bst
diff --git a/elements/gnu-toolchain/stage2-gcc.bst b/elements/gnu-toolchain/stage2-gcc.bst
index 18594d8..beaff58 100644
--- a/elements/gnu-toolchain/stage2-gcc.bst
+++ b/elements/gnu-toolchain/stage2-gcc.bst
@@ -3,8 +3,8 @@ kind: manual
sources:
- kind: git
url: upstream:gcc-tarball
- track: baserock/gnu-toolchain
- ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
+ track: baserock/gcc-7.1.0
+ ref: 3b0dbcfa2e5d12bd80cab1b35f08653d61fe7838
depends:
- filename: gnu-toolchain/stage1.bst
@@ -40,7 +40,7 @@ config:
# 4. This flag causes the correct --sysroot flag to be passed when
# calling stage 1 GCC.
- |
- case "%{bst-arch}" in
+ case "%{bst-target-arch}" in
armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \
--with-cpu=cortex-a9 \
--with-tune=cortex-a9 \
@@ -71,7 +71,7 @@ config:
build-commands:
- |
- case "%{bst-arch}" in
+ case "%{bst-target-arch}" in
armv5*) sed -i "s/--host=none/--host=armv5/" o/Makefile
sed -i "s/--target=none/--target=armv5/" o/Makefile ;;
armv7*) sed -i "s/--host=none/--host=armv7a/" o/Makefile
diff --git a/elements/gnu-toolchain/stage2-glibc.bst b/elements/gnu-toolchain/stage2-glibc.bst
index 1c3745e..043dccb 100644
--- a/elements/gnu-toolchain/stage2-glibc.bst
+++ b/elements/gnu-toolchain/stage2-glibc.bst
@@ -3,8 +3,8 @@ kind: manual
sources:
- kind: git
url: upstream:glibc
- track: release/2.22/master
- ref: b995d95a5943785be3ab862b2d3276f3b4a22481
+ track: release/2.25/master
+ ref: 49f97e641e4e84a42246655d30adbc4756e67114
depends:
- filename: gnu-toolchain/stage1.bst
@@ -31,7 +31,7 @@ config:
# 4. Force configuration values of certain things that can't be detected
# in a cross-compile.
- |
- case "%{bst-arch}" in
+ case "%{bst-target-arch}" in
armv7*)
ARCH_FLAGS="--without-fp" ;;
esac
@@ -100,17 +100,23 @@ config:
# Install a symlink for the program interpreter (ld.so) so that binaries
# built in stage 3 before the stage 3 glibc is built can use it.
- # FIXME: get a better way of finding the name of the loader. The lib64
- # path is hardcoded into glibc in the file
- # sysdeps/unix/sysv/linux/configure.
+ #
+ # The name of the dynamic loader is hardcoded in GCC during its 'configure'
+ # stage, but the file is actually provided by the libc (usually GLIBC). It
+ # would be better if we could ask GCC or GLIBC what the expected name of the
+ # ld.so is for the given platform rather than figuring it out
- install -d %{install-root}/lib
- |
- case "%{bst-arch}" in
+ case "%{bst-target-arch}" in
x86_64)
install -d "%{install-root}/lib64"
ln -s "%{prefix}/lib/ld-linux-x86-64.so.2" \
"%{install-root}/lib64/ld-linux-x86-64.so.2" ;;
- ppc64)
+ ppc64l)
+ install -d "%{install-root}/lib64"
+ ln -s "%{prefix}/lib/ld64.so.2" \
+ "%{install-root}/lib64/ld64.so.2" ;;
+ ppc64b)
install -d "%{install-root}/lib64"
ln -s "%{prefix}/lib/ld64.so.1" \
"%{install-root}/lib64/ld64.so.1" ;;
diff --git a/elements/gnu-toolchain/stage2-libstdcxx.bst b/elements/gnu-toolchain/stage2-libstdcxx.bst
index db6f8a6..12ea73f 100644
--- a/elements/gnu-toolchain/stage2-libstdcxx.bst
+++ b/elements/gnu-toolchain/stage2-libstdcxx.bst
@@ -3,8 +3,8 @@ kind: manual
sources:
- kind: git
url: upstream:gcc-tarball
- track: baserock/gnu-toolchain
- ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
+ track: baserock/gcc-7.1.0
+ ref: 3b0dbcfa2e5d12bd80cab1b35f08653d61fe7838
depends:
- filename: gnu-toolchain/stage1.bst
@@ -46,7 +46,7 @@ config:
--disable-multilib \
`# [1]` --disable-libstdcxx-threads \
`# [2]` --disable-libstdcxx-pch \
- `# [3]` --with-gxx-include-dir=/tools/%{target-stage1}/include/c++/4.9.2
+ `# [3]` --with-gxx-include-dir=/tools/%{target-stage1}/include/c++/7.1.0
build-commands:
- cd o && make
diff --git a/elements/gnu-toolchain/stage2-linux-api-headers.bst b/elements/gnu-toolchain/stage2-linux-api-headers.bst
index e5869bf..10ec224 100644
--- a/elements/gnu-toolchain/stage2-linux-api-headers.bst
+++ b/elements/gnu-toolchain/stage2-linux-api-headers.bst
@@ -19,7 +19,7 @@ environment:
config:
install-commands:
- |
- case "%{bst-arch}" in
+ case "%{bst-target-arch}" in
armv5l)
ARCH="arm" ;;
armv7b|armv7l|armv7lhf)
@@ -30,10 +30,10 @@ config:
ARCH="i386" ;;
x86_64)
ARCH="x86_64" ;;
- ppc64)
+ ppc64b|ppc64l)
ARCH="powerpc" ;;
*)
- echo "Error: unsupported Morph architecture: %{bst-arch}" >&2
+ echo "Error: unsupported architecture: %{bst-target-arch}" >&2
exit 1
esac
ARCH=$ARCH make INSTALL_HDR_PATH=dest headers_install
diff --git a/project.conf b/project.conf
index 8a2d731..7644547 100644
--- a/project.conf
+++ b/project.conf
@@ -12,13 +12,13 @@ aliases:
element-path: elements
variables:
- cpu: "%{bst-arch}"
+ cpu: "%{bst-target-arch}"
abi: gnu
target-stage1: "%{cpu}-bootstrap-linux-%{abi}"
target: "%{cpu}-baserock-linux-%{abi}"
# Resolve the cpu and ABI portions of the host triple based
-# on archetecture names.
+# on architecture names.
arches:
x86_32:
variables:
@@ -54,3 +54,9 @@ arches:
mips32l:
variables:
cpu: mipsel
+ ppc64b:
+ variables:
+ cpu: powerpc64
+ ppc64l:
+ variables:
+ cpu: powerpc64le