ci: Switch to using gold as the linker.
authorEric Anholt <eric@anholt.net>
Thu, 13 Aug 2020 21:21:50 +0000 (14:21 -0700)
committerMarge Bot <eric+marge@anholt.net>
Mon, 31 Aug 2020 17:50:30 +0000 (17:50 +0000)
Debian defaults to bfd, which is comically slow.  We can't use lld because
the old version we have in the debian stable we use has various bugs.

This required bumping libwayland, which had multiply-defined symbols
issues in the previous release.

Closes: #3236
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6324>

.gitlab-ci.yml
.gitlab-ci/build-apitrace.sh
.gitlab-ci/container/container_pre_build.sh
.gitlab-ci/container/lava_build.sh
.gitlab-ci/container/x86_build.sh

index 5bca218fd26c49857312f104d321ea9859399f1f..07fdd5ecc5dadb3da5dc5fe5d1ed7a1d55952b94 100644 (file)
@@ -204,7 +204,7 @@ x86_build-base:
     - .fdo.container-build@debian
     - .container
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_build-base "2020-07-28-x86-2"
+    FDO_DISTRIBUTION_TAG: &x86_build-base "2020-08-13-gold"
 
 .use-x86_build-base:
   extends:
@@ -222,7 +222,7 @@ x86_build:
   extends:
     - .use-x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_build "2020-08-08-glvnd"
+    FDO_DISTRIBUTION_TAG: &x86_build "2020-08-13-gold"
 
 .use-x86_build:
   variables:
@@ -236,7 +236,7 @@ i386_build:
   extends:
     - .use-x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &i386_build "2020-07-28-x86-2"
+    FDO_DISTRIBUTION_TAG: &i386_build "2020-08-13-gold"
 
 .use-i386_build:
   variables:
@@ -250,7 +250,7 @@ ppc64el_build:
   extends:
     - .use-x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &ppc64el_build "2020-07-28-x86-2"
+    FDO_DISTRIBUTION_TAG: &ppc64el_build "2020-08-13-gold"
 
 .use-ppc64el_build:
   variables:
@@ -264,7 +264,7 @@ s390x_build:
   extends:
     - .use-x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &s390x_build "2020-07-28-x86-2"
+    FDO_DISTRIBUTION_TAG: &s390x_build "2020-08-13-gold"
 
 .use-s390x_build:
   variables:
@@ -277,7 +277,7 @@ s390x_build:
 x86_test-base:
   extends: x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_test-base "2020-07-28-x86-2"
+    FDO_DISTRIBUTION_TAG: &x86_test-base "2020-08-13-gold"
 
 .use-x86_test-base:
   extends:
@@ -294,19 +294,19 @@ x86_test-base:
 x86_test-gl:
   extends: .use-x86_test-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_test-gl "2020-08-14-xcb-shm"
+    FDO_DISTRIBUTION_TAG: &x86_test-gl "2020-08-24-gold"
 
 # Debian 10 based x86 test image for VK
 x86_test-vk:
   extends: .use-x86_test-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_test-vk "2020-07-28-x86-2"
+    FDO_DISTRIBUTION_TAG: &x86_test-vk "2020-08-13-gold"
 
 # Debian 9 based x86 build image (old LLVM)
 x86_build_old:
   extends: x86_build-base
   variables:
-    FDO_DISTRIBUTION_TAG: &x86_build_old "2020-07-28-x86-2"
+    FDO_DISTRIBUTION_TAG: &x86_build_old "2020-08-13-gold"
     FDO_DISTRIBUTION_VERSION: stretch-slim
 
 .use-x86_build_old:
@@ -322,7 +322,7 @@ arm_build:
     - .fdo.container-build@debian@arm64v8
     - .container
   variables:
-    FDO_DISTRIBUTION_TAG: &arm_build "2020-08-04-nfs-2"
+    FDO_DISTRIBUTION_TAG: &arm_build "2020-08-13-gold"
 
 .use-arm_build:
   variables:
@@ -337,7 +337,7 @@ arm_test-base:
     - .fdo.container-build@debian
     - .container
   variables:
-    FDO_DISTRIBUTION_TAG: &arm_test-base "2020-07-28-libdrm"
+    FDO_DISTRIBUTION_TAG: &arm_test-base "2020-08-13-gold"
 
 .use-arm_test-base:
   extends:
@@ -355,7 +355,7 @@ arm64_test:
   extends:
     - .use-arm_test-base
   variables:
-    FDO_DISTRIBUTION_TAG: &arm64_test "2020-08-18"
+    FDO_DISTRIBUTION_TAG: &arm64_test "2020-08-24-gold"
 
 .use-arm64_test:
   variables:
index 8b44b66a2cea5b3385d1c66ff0ca998d77fb1cb2..f441108f3381d49ec14157cda5fdff5289bc929c 100644 (file)
@@ -23,7 +23,10 @@ APITRACE_VERSION="9.0"
 git clone https://github.com/apitrace/apitrace.git --single-branch --no-checkout /apitrace
 pushd /apitrace
 git checkout "$APITRACE_VERSION"
-cmake -G Ninja -B_build -H. -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=False -DENABLE_WAFFLE=on -DWaffle_DIR=/usr/local/lib/cmake/Waffle/ $EXTRA_CMAKE_ARGS
+# Note: The cmake stuff for waffle in apitrace fails to use waffle's library
+# directory.  Just force the issue here.
+env LDFLAGS="-L/usr/local/lib" \
+    cmake -G Ninja -B_build -H. -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=False -DENABLE_WAFFLE=on -DWaffle_DIR=/usr/local/lib/cmake/Waffle/ $EXTRA_CMAKE_ARGS
 ninja -C _build
 mkdir build
 cp _build/apitrace build
index c793e2f6b2c5fb690a1fc049b4a9235326d3a706..59c889421bcf6a476168e815e6d4a00421e855e5 100755 (executable)
@@ -12,6 +12,13 @@ export PATH=/usr/lib/ccache:$PATH
 export CC="/usr/lib/ccache/gcc"
 export CXX="/usr/lib/ccache/g++"
 
+# Force linkers to gold, since it's so much faster for building.  We can't use
+# lld because we're on old debian and it's buggy.  ming fails meson builds
+# with it with "meson.build:21:0: ERROR: Unable to determine dynamic linker"
+find /usr/bin -name \*-ld -o -name ld | \
+    grep -v mingw | \
+    xargs -n 1 -I '{}' ln -sf '{}.gold' '{}'
+
 ccache --show-stats
 
 # Make a wrapper script for ninja to always include the -j flags
index ed10c7883a8002268f36e8f15b0997b4383e77a6..4e945d4bcf89335c5db8a7af69434f41813ab226 100755 (executable)
@@ -134,6 +134,17 @@ rm -rf /libdrm
 mkdir -p kernel
 wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel
 pushd kernel
+
+# The kernel doesn't like the gold linker (or the old lld in our debians).
+# Sneak in some override symlinks during kernel build until we can update
+# debian (they'll get blown away by the rm of the kernel dir at the end).
+mkdir -p ld-links
+for i in /usr/bin/*-ld /usr/bin/ld; do
+    i=`basename $i`
+    ln -sf /usr/bin/$i.bfd ld-links/$i
+done
+export PATH=`pwd`/ld-links:$PATH
+
 ./scripts/kconfig/merge_config.sh ${DEFCONFIG} ../.gitlab-ci/${KERNEL_ARCH}.config
 make ${KERNEL_IMAGE_NAME}
 for image in ${KERNEL_IMAGE_NAME}; do
index f0b63539f518b29a11c4d54a8075648d34bd6b63..75a45ea82318a440b4c87d5ab2610419a8c83565 100644 (file)
@@ -58,7 +58,7 @@ export           WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
 export         XORGMACROS_VERSION=util-macros-1.19.0
 export           XCBPROTO_VERSION=xcb-proto-1.13
 export             LIBXCB_VERSION=libxcb-1.13
-export         LIBWAYLAND_VERSION=wayland-1.15.0
+export         LIBWAYLAND_VERSION=wayland-1.17.0
 export  WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.12
 
 wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2