pixman: Branch 'master' - 4 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Sep 27 01:23:54 UTC 2024


 .gitlab-ci.d/01-docker.yml                           |    1 
 .gitlab-ci.d/01-docker/Dockerfile                    |   20 +++++++++++++------
 .gitlab-ci.d/01-docker/target-env/linux-386.env      |    1 
 .gitlab-ci.d/01-docker/target-env/linux-amd64.env    |    1 
 .gitlab-ci.d/01-docker/target-env/linux-arm-v5.env   |    1 
 .gitlab-ci.d/01-docker/target-env/linux-arm-v7.env   |    1 
 .gitlab-ci.d/01-docker/target-env/linux-arm64-v8.env |    1 
 .gitlab-ci.d/01-docker/target-env/linux-mips.env     |    1 
 .gitlab-ci.d/01-docker/target-env/linux-mips64el.env |    1 
 .gitlab-ci.d/01-docker/target-env/linux-mipsel.env   |    1 
 .gitlab-ci.d/01-docker/target-env/linux-ppc64le.env  |    1 
 .gitlab-ci.d/01-docker/target-env/linux-riscv64.env  |    1 
 .gitlab-ci.d/02-build.yml                            |    2 -
 .gitlab-ci.d/03-test.yml                             |    3 ++
 .gitlab-ci.d/meson-cross/linux-riscv64-gnu.meson     |    6 -----
 .gitlab-ci.d/meson-cross/linux-riscv64-llvm.meson    |    6 -----
 16 files changed, 31 insertions(+), 17 deletions(-)

New commits:
commit 277f485a9cfeb757c4627b9465bc26f3e74c1724
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date:   Wed Sep 25 21:04:06 2024 +0200

    ci: Add missing ":failing" suffix for linux-ppc job
    
    Signed-off-by: Marek Pikuła <m.pikula at partner.samsung.com>

diff --git a/.gitlab-ci.d/03-test.yml b/.gitlab-ci.d/03-test.yml
index 683c200..f8eeeba 100644
--- a/.gitlab-ci.d/03-test.yml
+++ b/.gitlab-ci.d/03-test.yml
@@ -121,6 +121,7 @@ include:
     inputs:
       target: linux-ppc
       qemu_cpu: [g4]
+      job_name_suffix: ":failing"
       allow_failure: true  # SIGILL for some tests
       retry: 0
   - local: .gitlab-ci.d/templates/test.yml
commit 126b0831423fd901332caf4432367477a4c98db9
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date:   Wed Sep 25 20:48:47 2024 +0200

    ci: Add option to use different version of LLVM
    
    Some targets require different version of LLVM, so now it's possible to
    set it in the target's environment. Mind that the highest available
    version depends on the base Debian image.
    
    The change bumps LLVM version for all Linux targets:
    - by default from 14 to 16,
    - from 16 to 18 for riscv64 (based on Sid; for now, LLVM 19 doesn't have
      libomp packaged),
    - mipsel stays at 14 as there seem to be some missing packages for
      higher versions.
    
    Windows targets stay the same, as they use a different source of LLVM
    (MinGW-compatible, which is currently version 18).
    
    Signed-off-by: Marek Pikuła <m.pikula at partner.samsung.com>

diff --git a/.gitlab-ci.d/01-docker.yml b/.gitlab-ci.d/01-docker.yml
index aff3085..37b335b 100644
--- a/.gitlab-ci.d/01-docker.yml
+++ b/.gitlab-ci.d/01-docker.yml
@@ -74,6 +74,7 @@ docker:
         --platform=${DOCKER_PLATFORM}
         --build-arg BASE_IMAGE=${BASE_IMAGE}
         --build-arg BASE_IMAGE_TAG=${BASE_IMAGE_TAG}
+        --build-arg LLVM_VERSION=${LLVM_VERSION}
       -f Dockerfile .gitlab-ci.d/01-docker/
     - buildah images
     - buildah push ${FULL_IMAGE_NAME}
diff --git a/.gitlab-ci.d/01-docker/Dockerfile b/.gitlab-ci.d/01-docker/Dockerfile
index 5c749ca..6f7ccf1 100644
--- a/.gitlab-ci.d/01-docker/Dockerfile
+++ b/.gitlab-ci.d/01-docker/Dockerfile
@@ -42,15 +42,23 @@ RUN ${APT_UPDATE} \
     && meson --version
 
 FROM base AS llvm-base
+# LLVM 16 is the highest available in Bookworm. Preferably, we should use the
+# same version for all platforms, but it's not possible at the moment.
+ARG LLVM_VERSION=16
 RUN ${APT_UPDATE} \
     && ${APT_INSTALL} \
-        clang \
-        libclang-rt-dev \
-        lld \
-        llvm \
-    && ${APT_CLEANUP}
+        clang-${LLVM_VERSION} \
+        libclang-rt-${LLVM_VERSION}-dev \
+        lld-${LLVM_VERSION} \
+        llvm-${LLVM_VERSION} \
+    && ${APT_CLEANUP} \
+    && ln -f /usr/bin/clang-${LLVM_VERSION} /usr/bin/clang \
+    && ln -f /usr/bin/lld-${LLVM_VERSION} /usr/bin/lld \
+    && ln -f /usr/bin/llvm-ar-${LLVM_VERSION} /usr/bin/llvm-ar \
+    && ln -f /usr/bin/llvm-strip-${LLVM_VERSION} /usr/bin/llvm-strip
 
 FROM llvm-base AS native-base
+ARG LLVM_VERSION=16
 RUN ${APT_UPDATE} \
     && ${APT_INSTALL} \
         # Runtime library dependencies.
@@ -60,7 +68,7 @@ RUN ${APT_UPDATE} \
     # Install libomp-dev if available (OpenMP support for LLVM). It's done only
     # for the native images, as OpenMP support in cross-build environment is
     # tricky for LLVM.
-    && (${APT_INSTALL} libomp-dev \
+    && (${APT_INSTALL} libomp-${LLVM_VERSION}-dev \
         || echo "OpenMP not available on this platform.") \
     && ${APT_CLEANUP}
 
diff --git a/.gitlab-ci.d/01-docker/target-env/linux-386.env b/.gitlab-ci.d/01-docker/target-env/linux-386.env
index 87cc913..0a129ab 100644
--- a/.gitlab-ci.d/01-docker/target-env/linux-386.env
+++ b/.gitlab-ci.d/01-docker/target-env/linux-386.env
@@ -1,3 +1,4 @@
 DOCKER_PLATFORM=linux/386
 BASE_IMAGE=docker.io/i386/debian
 BASE_IMAGE_TAG=bookworm-slim
+LLVM_VERSION=16
diff --git a/.gitlab-ci.d/01-docker/target-env/linux-amd64.env b/.gitlab-ci.d/01-docker/target-env/linux-amd64.env
index 4798622..f9517e7 100644
--- a/.gitlab-ci.d/01-docker/target-env/linux-amd64.env
+++ b/.gitlab-ci.d/01-docker/target-env/linux-amd64.env
@@ -1,3 +1,4 @@
 DOCKER_PLATFORM=linux/amd64
 BASE_IMAGE=docker.io/amd64/debian
 BASE_IMAGE_TAG=bookworm-slim
+LLVM_VERSION=16
diff --git a/.gitlab-ci.d/01-docker/target-env/linux-arm-v5.env b/.gitlab-ci.d/01-docker/target-env/linux-arm-v5.env
index 7b1b51b..fb6ce6c 100644
--- a/.gitlab-ci.d/01-docker/target-env/linux-arm-v5.env
+++ b/.gitlab-ci.d/01-docker/target-env/linux-arm-v5.env
@@ -1,3 +1,4 @@
 DOCKER_PLATFORM=linux/arm/v5
 BASE_IMAGE=docker.io/arm32v5/debian
 BASE_IMAGE_TAG=bookworm-slim
+LLVM_VERSION=16
diff --git a/.gitlab-ci.d/01-docker/target-env/linux-arm-v7.env b/.gitlab-ci.d/01-docker/target-env/linux-arm-v7.env
index 6b528c1..5d871f4 100644
--- a/.gitlab-ci.d/01-docker/target-env/linux-arm-v7.env
+++ b/.gitlab-ci.d/01-docker/target-env/linux-arm-v7.env
@@ -1,3 +1,4 @@
 DOCKER_PLATFORM=linux/arm/v7
 BASE_IMAGE=docker.io/arm32v7/debian
 BASE_IMAGE_TAG=bookworm-slim
+LLVM_VERSION=16
diff --git a/.gitlab-ci.d/01-docker/target-env/linux-arm64-v8.env b/.gitlab-ci.d/01-docker/target-env/linux-arm64-v8.env
index 1c6173b..2476ad0 100644
--- a/.gitlab-ci.d/01-docker/target-env/linux-arm64-v8.env
+++ b/.gitlab-ci.d/01-docker/target-env/linux-arm64-v8.env
@@ -1,3 +1,4 @@
 DOCKER_PLATFORM=linux/arm64/v8
 BASE_IMAGE=docker.io/arm64v8/debian
 BASE_IMAGE_TAG=bookworm-slim
+LLVM_VERSION=16
diff --git a/.gitlab-ci.d/01-docker/target-env/linux-mips.env b/.gitlab-ci.d/01-docker/target-env/linux-mips.env
index 4798622..f9517e7 100644
--- a/.gitlab-ci.d/01-docker/target-env/linux-mips.env
+++ b/.gitlab-ci.d/01-docker/target-env/linux-mips.env
@@ -1,3 +1,4 @@
 DOCKER_PLATFORM=linux/amd64
 BASE_IMAGE=docker.io/amd64/debian
 BASE_IMAGE_TAG=bookworm-slim
+LLVM_VERSION=16
diff --git a/.gitlab-ci.d/01-docker/target-env/linux-mips64el.env b/.gitlab-ci.d/01-docker/target-env/linux-mips64el.env
index 98d0372..690a018 100644
--- a/.gitlab-ci.d/01-docker/target-env/linux-mips64el.env
+++ b/.gitlab-ci.d/01-docker/target-env/linux-mips64el.env
@@ -1,3 +1,4 @@
 DOCKER_PLATFORM=linux/mips64el
 BASE_IMAGE=docker.io/mips64le/debian
 BASE_IMAGE_TAG=bookworm-slim
+LLVM_VERSION=16
diff --git a/.gitlab-ci.d/01-docker/target-env/linux-mipsel.env b/.gitlab-ci.d/01-docker/target-env/linux-mipsel.env
index bb3a842..c350521 100644
--- a/.gitlab-ci.d/01-docker/target-env/linux-mipsel.env
+++ b/.gitlab-ci.d/01-docker/target-env/linux-mipsel.env
@@ -1,3 +1,4 @@
 DOCKER_PLATFORM=linux/mipsel
 BASE_IMAGE=docker.io/serenitycode/debian-debootstrap
 BASE_IMAGE_TAG=mipsel-bookworm-slim
+LLVM_VERSION=14
diff --git a/.gitlab-ci.d/01-docker/target-env/linux-ppc64le.env b/.gitlab-ci.d/01-docker/target-env/linux-ppc64le.env
index 1aeff88..92a347f 100644
--- a/.gitlab-ci.d/01-docker/target-env/linux-ppc64le.env
+++ b/.gitlab-ci.d/01-docker/target-env/linux-ppc64le.env
@@ -1,3 +1,4 @@
 DOCKER_PLATFORM=linux/ppc64le
 BASE_IMAGE=docker.io/ppc64le/debian
 BASE_IMAGE_TAG=bookworm-slim
+LLVM_VERSION=16
diff --git a/.gitlab-ci.d/01-docker/target-env/linux-riscv64.env b/.gitlab-ci.d/01-docker/target-env/linux-riscv64.env
index 0a91971..b5af511 100644
--- a/.gitlab-ci.d/01-docker/target-env/linux-riscv64.env
+++ b/.gitlab-ci.d/01-docker/target-env/linux-riscv64.env
@@ -1,3 +1,4 @@
 DOCKER_PLATFORM=linux/riscv64
 BASE_IMAGE=docker.io/riscv64/debian
 BASE_IMAGE_TAG=sid-slim
+LLVM_VERSION=18
commit a3d297fa46ff231888e810303dc369a634a7923a
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date:   Thu Sep 26 19:41:35 2024 +0200

    ci: riscv64: Verify if tests run on target without RVV
    
    To ensure that the runtime discovery works correctly, and RVV code is
    disabled for target without RVV extension.
    
    Signed-off-by: Marek Pikuła <m.pikula at partner.samsung.com>

diff --git a/.gitlab-ci.d/03-test.yml b/.gitlab-ci.d/03-test.yml
index 90003c5..683c200 100644
--- a/.gitlab-ci.d/03-test.yml
+++ b/.gitlab-ci.d/03-test.yml
@@ -149,6 +149,8 @@ include:
     inputs:
       target: linux-riscv64
       qemu_cpu:
+        # Test on target without RVV (verify no autovectorization).
+        - rv64,v=false
         # Test correctness for different VLENs.
         - rv64,v=true,vext_spec=v1.0,vlen=128,elen=64
         - rv64,v=true,vext_spec=v1.0,vlen=256,elen=64
commit 9176847f1d75c9379a6f67b6cde6dc44f408e39d
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date:   Thu Sep 26 20:02:16 2024 +0200

    ci: riscv64: Don't force enable RVV globally
    
    RVV compilation will be enabled for RVV implementation alone, similar to
    other platforms. This prevents introducing autovectorized code in the
    main library, thus making pixman compatible with RISC-V targets without
    RVV.

diff --git a/.gitlab-ci.d/02-build.yml b/.gitlab-ci.d/02-build.yml
index 78bd4d3..8609570 100644
--- a/.gitlab-ci.d/02-build.yml
+++ b/.gitlab-ci.d/02-build.yml
@@ -84,7 +84,7 @@ include:
   - local: .gitlab-ci.d/templates/build.yml
     inputs:
       target: linux-riscv64
-      qemu_cpu: rv64,v=true,vext_spec=v1.0,vlen=256,elen=64
+      qemu_cpu: rv64
   - local: .gitlab-ci.d/templates/build.yml
     inputs:
       target: windows-686
diff --git a/.gitlab-ci.d/meson-cross/linux-riscv64-gnu.meson b/.gitlab-ci.d/meson-cross/linux-riscv64-gnu.meson
deleted file mode 100644
index 04821dc..0000000
--- a/.gitlab-ci.d/meson-cross/linux-riscv64-gnu.meson
+++ /dev/null
@@ -1,5 +0,0 @@
-[binaries]
-c = ['gcc', '-march=rv64gcv']
-ar = 'ar'
-strip = 'strip'
-pkg-config = 'pkg-config'
diff --git a/.gitlab-ci.d/meson-cross/linux-riscv64-gnu.meson b/.gitlab-ci.d/meson-cross/linux-riscv64-gnu.meson
new file mode 120000
index 0000000..ad75db9
--- /dev/null
+++ b/.gitlab-ci.d/meson-cross/linux-riscv64-gnu.meson
@@ -0,0 +1 @@
+native-gnu.meson
\ No newline at end of file
diff --git a/.gitlab-ci.d/meson-cross/linux-riscv64-llvm.meson b/.gitlab-ci.d/meson-cross/linux-riscv64-llvm.meson
deleted file mode 100644
index e9a868f..0000000
--- a/.gitlab-ci.d/meson-cross/linux-riscv64-llvm.meson
+++ /dev/null
@@ -1,5 +0,0 @@
-[binaries]
-c = ['clang', '-march=rv64gcv']
-ar = 'llvm-ar'
-strip = 'llvm-strip'
-pkg-config = 'pkg-config'
diff --git a/.gitlab-ci.d/meson-cross/linux-riscv64-llvm.meson b/.gitlab-ci.d/meson-cross/linux-riscv64-llvm.meson
new file mode 120000
index 0000000..3474611
--- /dev/null
+++ b/.gitlab-ci.d/meson-cross/linux-riscv64-llvm.meson
@@ -0,0 +1 @@
+native-llvm.meson
\ No newline at end of file


More information about the xorg-commit mailing list