Skip to content

Commit 2ba3f13

Browse files
authored
Merge branch 'main' into zgu/jdk8_patchClassLoaderData
2 parents 8e9b967 + a5a613a commit 2ba3f13

27 files changed

Lines changed: 1365 additions & 239 deletions

‎.github/workflows/ci.yml‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,29 @@ jobs:
4545
.github/scripts/tests/test_release_automation.sh
4646
.github/scripts/tests/test_release_automation.sh
4747
48+
ci-script-tests:
49+
runs-on: ubuntu-22.04
50+
timeout-minutes: 5
51+
permissions:
52+
contents: read
53+
steps:
54+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
55+
with:
56+
persist-credentials: false
57+
58+
- name: Validate pipeline scripts without network access
59+
run: |
60+
bash -n \
61+
.gitlab/scripts/build.sh \
62+
.gitlab/scripts/check-abi-floor.sh \
63+
.gitlab/scripts/tests/check_abi_floor_test.sh \
64+
.gitlab/scripts/tests/includes_test.sh
65+
shellcheck \
66+
.gitlab/scripts/check-abi-floor.sh \
67+
.gitlab/scripts/tests/check_abi_floor_test.sh
68+
bash .gitlab/scripts/tests/check_abi_floor_test.sh
69+
bash .gitlab/scripts/tests/includes_test.sh
70+
4871
check-for-pr:
4972
runs-on: ubuntu-latest
5073
outputs:

‎.gitlab/base/Dockerfile‎

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
1-
ARG BASE_IMAGE=debian:bullseye-slim@sha256:0083feb8da4f624e3a0245e7752af2517d4b81d8b8db50c725644672a132a31b
1+
# CI always passes BASE_IMAGE explicitly (OPENJDK_BASE_IMAGE /
2+
# OPENJDK_BASE_IMAGE_ARM64), both of which are this same digest: the shipped
3+
# binaries are built elsewhere (.gitlab/base/el8/Dockerfile), so neither arch
4+
# of this image sets a customer-facing glibc floor. The default matches them,
5+
# so a hand-built image -- or rebuild-images.sh reaching its unset-variable
6+
# fallback -- gets a release whose packages still resolve.
7+
ARG BASE_IMAGE=debian:trixie-slim@sha256:d7e12182ce18b85b93007c1dedf31f2d29e01ccf3182cc4017c709b6259bc132
28
FROM ${BASE_IMAGE} as base
39
ARG CI_JOB_TOKEN
410
WORKDIR /root
511

612
RUN mkdir -p /usr/share/man/man1 # https://github.com/debuerreotype/docker-debian-artifacts/issues/24
7-
RUN (apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends curl git moreutils awscli amazon-ecr-credential-helper gnupg2 npm build-essential wget bsdmainutils clang jq zip unzip) || true
8-
RUN (apk update && apk add curl git moreutils aws-cli docker-credential-ecr-login gnupg alpine-sdk build-base wget npm hexdump linux-headers clang compiler-rt bash jq gradle zip unzip) || true
13+
# Alpine/musl images build from Dockerfile.musl, so this file installs only the
14+
# Debian toolchain.
15+
#
16+
# The second group is what the C++ test and sanitizer jobs need. They live in
17+
# the image rather than in a job's before_script so that a job does not depend
18+
# on the distro archive still serving those packages at run time.
19+
# libclang-rt-dev is the unversioned metapackage: it provides
20+
# sanitizer/asan_interface.h from whichever clang runtime matches this release.
21+
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
22+
curl git moreutils awscli amazon-ecr-credential-helper gnupg2 npm build-essential \
23+
wget bsdmainutils clang jq zip unzip \
24+
cmake libgtest-dev libgmock-dev libc6-dbg llvm libclang-rt-dev
925
# Install JDK 21 and Maven via SDKMAN (glibc image only; musl uses Dockerfile.musl).
1026
RUN curl -s "https://get.sdkman.io" | bash && \
1127
bash -c "source /root/.sdkman/bin/sdkman-init.sh && sdk install java 21.0.3-tem && sdk install maven"

‎.gitlab/base/centos7/Dockerfile‎

Lines changed: 0 additions & 43 deletions
This file was deleted.

‎.gitlab/base/el8/Dockerfile‎

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Build image for the shipped glibc binaries, both architectures.
2+
#
3+
# AlmaLinux 8 (glibc 2.28) with gcc-toolset-14. Release builds link
4+
# -static-libstdc++ -static-libgcc (see ConfigurationPresets.kt), so the C++
5+
# runtime and unwinder in the shipped libjavaProfiler.so come out of this
6+
# image: the toolchain has to be one that still receives security rebuilds,
7+
# which rules out the EL7 software collections (frozen at CentOS 7.9, and with
8+
# no gcc newer than devtoolset-10 ever built for aarch64).
9+
#
10+
# almalinux:8 is a multi-arch manifest, so BASE_IMAGE is the same for both
11+
# platforms (BASE_IMAGE_GLIBC_2_28 in .gitlab/build-deploy/images.yml) and
12+
# `docker build --platform` selects the architecture. gcc-toolset-14 is
13+
# published for x86_64 and aarch64 alike, so both arches compile with one
14+
# compiler version.
15+
ARG BASE_IMAGE=almalinux:8
16+
FROM ${BASE_IMAGE} as base
17+
ARG CI_JOB_TOKEN
18+
WORKDIR /root
19+
20+
# gcc-toolset-14 carries its own libstdc++.a/libgcc.a, which is what
21+
# -static-libstdc++ resolves against; no separate *-static package is needed.
22+
RUN dnf -y install gcc-toolset-14 \
23+
git make cmake zip unzip which wget jq \
24+
&& dnf -y clean all
25+
26+
# Put the toolset ahead of the distro gcc for every shell, including the
27+
# non-login shells GitLab uses to run job scripts (the `scl enable` /
28+
# /opt/rh/gcc-toolset-14/enable wrappers only affect interactive use).
29+
ENV PATH="/opt/rh/gcc-toolset-14/root/usr/bin:${PATH}" \
30+
LD_LIBRARY_PATH="/opt/rh/gcc-toolset-14/root/usr/lib64:${LD_LIBRARY_PATH}"
31+
32+
# The build scripts locate a JDK through JAVA_HOME, falling back to SDKMAN's
33+
# current candidate (.gitlab/scripts/build.sh).
34+
RUN curl -s "https://get.sdkman.io" | bash && \
35+
bash -c "source /root/.sdkman/bin/sdkman-init.sh && sdk install java 21.0.3-tem && sdk install maven"
36+
ENV JAVA_HOME=/root/.sdkman/candidates/java/current
37+
ENV PATH="/root/.sdkman/candidates/java/current/bin:/root/.sdkman/candidates/maven/current/bin:${PATH}"

‎.gitlab/benchmarks/images.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ variables:
55
BASE_BENCHMARK_IMAGE_NAME: registry.ddbuild.io/images/benchmarking-platform-tools-ubuntu:newest
66
BASE_CI_IMAGE_NAME: registry.ddbuild.io/ci/async-profiler-build
77

8-
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/1600939090
9-
BENCHMARK_IMAGE_AMD64: registry.ddbuild.io/ci/async-profiler-build-amd64:v107978918-amd64-benchmarks@sha256:95d4e3719717a6af63ed62437b985e36a95b4552bac04a39cd7b82bafa09271d
10-
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/1600939090
11-
BENCHMARK_IMAGE_ARM64: registry.ddbuild.io/ci/async-profiler-build-arm64:v107978918-arm64-benchmarks@sha256:b534640f415e2c1af44611c1531a0435a387c85f435876fa2e7e5011e4749221
8+
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/2040944172
9+
BENCHMARK_IMAGE_AMD64: registry.ddbuild.io/ci/async-profiler-build-amd64:v137281788-amd64-benchmarks@sha256:28e10be33f32e73ba3850796b3fc7abe747b9e1c71046ea1b91ead84ae7d4ed6
10+
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/2040944172
11+
BENCHMARK_IMAGE_ARM64: registry.ddbuild.io/ci/async-profiler-build-arm64:v137281788-arm64-benchmarks@sha256:c03d7ac565f4b36fc3086a00fe9dcd5d89385b799d78bab7e16b1a8cff713f70

‎.gitlab/build-deploy/.gitlab-ci.yml‎

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
image: alpine:3.22.1@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1
22

33
variables:
4-
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/1600939090
5-
BUILD_IMAGE_X64: registry.ddbuild.io/ci/async-profiler-build:v107978918-x64-base@sha256:4712b562eb75cf27c5d494081f459fdbd7578ef46a99162e1051ef7d1f79da4f
6-
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/1600939090
7-
BUILD_IMAGE_ARM64: registry.ddbuild.io/ci/async-profiler-build:v107978918-arm64-base@sha256:15670752fa8e67c81c1b7fd4d93ef34c668649f117584ab29327d8d7733d64d6
8-
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/1600939090
9-
BUILD_IMAGE_X64_2_17: registry.ddbuild.io/ci/async-profiler-build:v107978918-x64-2.17-base@sha256:03fb65c5c7fb2866397ceaf18ccb5a0b91bb377a9f89c94264427b62d48cfffd
10-
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/1600939090
11-
BUILD_IMAGE_X64_MUSL: registry.ddbuild.io/ci/async-profiler-build:v107978918-x64-musl-base@sha256:0efe0c5fbd04e5647a53235d4c4942a2dd305b3d76bf5afdc052d64a7c0b9505
12-
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/1600939090
13-
BUILD_IMAGE_ARM64_MUSL: registry.ddbuild.io/ci/async-profiler-build:v107978918-arm64-musl-base@sha256:1c8a96ded178bfa130077166db049cbea422c94c96a8c5172d66f8c3581d57cf
14-
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/1600939090
15-
DATADOG_CI_IMAGE: registry.ddbuild.io/ci/async-profiler-build:v107978918-datadog-ci@sha256:1353737e433ef58b37ae34daf6edc0d6a5fc4706bac76ac97729e981869ea680
4+
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/2040944172
5+
BUILD_IMAGE_X64: registry.ddbuild.io/ci/async-profiler-build:v137281788-x64-base@sha256:81eab385c41ac74a4f71140df9972883ca20bb9d97756f443f9001e9d415d832
6+
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/2040944172
7+
BUILD_IMAGE_ARM64: registry.ddbuild.io/ci/async-profiler-build:v137281788-arm64-base@sha256:281a24ae99326041711ed4f63e5528f439091ddc8c19f79c490e9021434486be
8+
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/2040944172
9+
BUILD_IMAGE_X64_GLIBC: registry.ddbuild.io/ci/async-profiler-build:v137281788-x64-glibc-base@sha256:270a9101716a0865071182e0ef0e40e98f874535b90722949b33a4a8998fe08d
10+
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/2040944172
11+
BUILD_IMAGE_ARM64_GLIBC: registry.ddbuild.io/ci/async-profiler-build:v137281788-arm64-glibc-base@sha256:511d051d37ed99b2ca9cd3af797aa9de63e4b4b952af1e738b2cea913bbcc057
12+
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/2040944172
13+
BUILD_IMAGE_X64_MUSL: registry.ddbuild.io/ci/async-profiler-build:v137281788-x64-musl-base@sha256:fd3803695771de3eabf44e4953c0474273f9dbb97d88c22e99ac507b88572481
14+
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/2040944172
15+
BUILD_IMAGE_ARM64_MUSL: registry.ddbuild.io/ci/async-profiler-build:v137281788-arm64-musl-base@sha256:edff5b0205db2d1d520debdd35f9ae6b047a6c0f80bd6f3eca02b57cf56c8c98
16+
# Generated by https://gitlab.ddbuild.io/DataDog/java-profiler/-/jobs/2040944172
17+
DATADOG_CI_IMAGE: registry.ddbuild.io/ci/async-profiler-build:v137281788-datadog-ci@sha256:84b7902bec3b4cef3e5dbeb0a8a2c2542f388a4c72bdcd736eb9db4fdd107d9f
1618

1719
LAST_COMMIT_FILE: .last.commit
1820
CACHE_FALLBACK_KEY: async-profiler
@@ -92,8 +94,7 @@ prepare:start:
9294
build:x64:
9395
extends: .build_job
9496
variables:
95-
# default to the libc 2.17 linked version
96-
BUILD_IMAGE: ${BUILD_IMAGE_X64_2_17}
97+
BUILD_IMAGE: ${BUILD_IMAGE_X64_GLIBC}
9798
TARGET: linux-x64
9899

99100
build:x64-musl:
@@ -106,7 +107,8 @@ build:arm64:
106107
extends: .build_job
107108
tags: [ "arch:arm64" ]
108109
variables:
109-
BUILD_IMAGE: ${BUILD_IMAGE_ARM64}
110+
# shipped-binary image, mirroring build:x64
111+
BUILD_IMAGE: ${BUILD_IMAGE_ARM64_GLIBC}
110112
TARGET: linux-arm64
111113

112114
build:arm64-musl:
@@ -125,8 +127,7 @@ stresstest:x64:
125127
- job: build:x64
126128
artifacts: true
127129
variables:
128-
# default to the libc 2.17 linked version
129-
BUILD_IMAGE: ${BUILD_IMAGE_X64_2_17}
130+
BUILD_IMAGE: ${BUILD_IMAGE_X64_GLIBC}
130131
TARGET: linux-x64
131132

132133
stresstest:x64-musl:
@@ -149,7 +150,8 @@ stresstest:arm64:
149150
artifacts: true
150151
tags: [ "arch:arm64" ]
151152
variables:
152-
BUILD_IMAGE: ${BUILD_IMAGE_ARM64}
153+
# same image as build:arm64, so the stress run exercises the shipped build
154+
BUILD_IMAGE: ${BUILD_IMAGE_ARM64_GLIBC}
153155
TARGET: linux-arm64
154156

155157
stresstest:arm64-musl:
@@ -181,7 +183,7 @@ chaos:build:
181183
when: always
182184
- when: never
183185
tags: [ "arch:amd64" ]
184-
image: ${BUILD_IMAGE_X64_2_17}
186+
image: ${BUILD_IMAGE_X64_GLIBC}
185187
script:
186188
- |
187189
if [ -z "${JAVA_HOME}" ] || [ ! -x "${JAVA_HOME}/bin/java" ]; then

‎.gitlab/build-deploy/images.yml‎

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,23 @@ stages:
22
- images
33
variables:
44
# Base images for the build docker images
5-
# debian:bullseye-slim = Debian 11 (glibc 2.31); pinned by digest for reproducibility.
6-
# Multi-arch manifest covers both amd64 and arm64 — no separate arm64 tag needed.
7-
# JDK 21 is installed at image-build time via SDKMAN (see .gitlab/base/Dockerfile).
8-
OPENJDK_BASE_IMAGE: debian:bullseye-slim@sha256:0083feb8da4f624e3a0245e7752af2517d4b81d8b8db50c725644672a132a31b
9-
OPENJDK_BASE_IMAGE_ARM64: debian:bullseye-slim@sha256:0083feb8da4f624e3a0245e7752af2517d4b81d8b8db50c725644672a132a31b
5+
# Both pinned by digest for reproducibility. JDK 21 is installed at
6+
# image-build time via SDKMAN (see .gitlab/base/Dockerfile).
7+
#
8+
# Debian 13 trixie (glibc 2.41), current stable. These images run the test,
9+
# sanitizer, integration and packaging jobs; the shipped binaries are
10+
# compiled in the AlmaLinux 8 image below, so this glibc is not a customer
11+
# floor and the release can track stable.
12+
OPENJDK_BASE_IMAGE: debian:trixie-slim@sha256:d7e12182ce18b85b93007c1dedf31f2d29e01ccf3182cc4017c709b6259bc132
13+
OPENJDK_BASE_IMAGE_ARM64: debian:trixie-slim@sha256:d7e12182ce18b85b93007c1dedf31f2d29e01ccf3182cc4017c709b6259bc132
1014
# eclipse-temurin:21-jdk-alpine = Alpine 3.x musl; arm64 manifest confirmed present.
1115
OPENJDK_BASE_IMAGE_MUSL: eclipse-temurin:21-jdk-alpine@sha256:c98f0d2e171c898bf896dc4166815d28a56d428e218190a1f35cdc7d82efd61f
1216
OPENJDK_BASE_IMAGE_ARM64_MUSL: eclipse-temurin:21-jdk-alpine@sha256:c98f0d2e171c898bf896dc4166815d28a56d428e218190a1f35cdc7d82efd61f
13-
BASE_IMAGE_LIBC_2_17: centos:7
17+
# AlmaLinux 8 (glibc 2.28) with gcc-toolset-14 compiles the shipped glibc
18+
# binaries on both architectures. Release builds link -static-libstdc++
19+
# -static-libgcc, so this toolchain's C++ runtime ships inside the library
20+
# and must be one that still gets security rebuilds. The resulting .so
21+
# requires GLIBC_2.27. Multi-arch manifest, pinned by digest.
22+
BASE_IMAGE_GLIBC: almalinux:8@sha256:9f355ae942d6a6c0561f0771dc053a2cfae9580fc45fa4252756db7c7e80c09f
1423

1524
DOCKER_IMAGE: 486234852809.dkr.ecr.us-east-1.amazonaws.com/images/docker:24.0.4-gbi-focal

‎.gitlab/config.env‎

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,35 @@ JAVA_TEST_VERSION=21.0.3-tem
1010
JAVA_BENCHMARK_VERSION=21
1111

1212
# Docker Base Images
13-
# debian:bullseye-slim = Debian 11 (glibc 2.31); pinned by digest for reproducibility.
14-
# Multi-arch manifests cover both amd64 and arm64.
15-
# JDK 21 is installed at image-build time via SDKMAN (see .gitlab/base/Dockerfile).
16-
OPENJDK_BASE_IMAGE_AMD64=debian:bullseye-slim@sha256:0083feb8da4f624e3a0245e7752af2517d4b81d8b8db50c725644672a132a31b
17-
OPENJDK_BASE_IMAGE_ARM64=debian:bullseye-slim@sha256:0083feb8da4f624e3a0245e7752af2517d4b81d8b8db50c725644672a132a31b
13+
# All pinned by digest for reproducibility; multi-arch manifests cover amd64
14+
# and arm64. JDK 21 is installed at image-build time via SDKMAN.
15+
#
16+
# debian:trixie-slim = Debian 13 (glibc 2.41), current stable. These run the
17+
# test, sanitizer, integration and packaging jobs (see .gitlab/base/Dockerfile);
18+
# the shipped binaries come from the AlmaLinux 8 image below, so this glibc
19+
# is not a customer-facing floor.
20+
OPENJDK_BASE_IMAGE_AMD64=debian:trixie-slim@sha256:d7e12182ce18b85b93007c1dedf31f2d29e01ccf3182cc4017c709b6259bc132
21+
OPENJDK_BASE_IMAGE_ARM64=debian:trixie-slim@sha256:d7e12182ce18b85b93007c1dedf31f2d29e01ccf3182cc4017c709b6259bc132
22+
# almalinux:8 = AlmaLinux 8 (glibc 2.28) with gcc-toolset-14, used to compile
23+
# the shipped glibc binaries on both architectures (see
24+
# .gitlab/base/el8/Dockerfile). Release builds link -static-libstdc++
25+
# -static-libgcc, so this toolchain's C++ runtime ends up inside the shipped
26+
# library and has to be one that still receives security rebuilds. The
27+
# resulting .so requires GLIBC_2.27 (expf), so it runs on glibc 2.27 or newer.
28+
BASE_IMAGE_GLIBC=almalinux:8@sha256:9f355ae942d6a6c0561f0771dc053a2cfae9580fc45fa4252756db7c7e80c09f
29+
# Highest glibc symbol version the shipped binaries are allowed to require,
30+
# asserted by .gitlab/scripts/check-abi-floor.sh at the end of every glibc build
31+
# job. It is the oldest glibc a customer can load the library on, so raising it
32+
# drops hosts and is a deliberate decision rather than a consequence of changing
33+
# the image above.
34+
#
35+
# 2.17 is the oldest glibc still in support among the distributions this ships
36+
# to (RHEL 7.9 and its derivatives). Holding it takes two things: expf is pinned
37+
# to each architecture's oldest interface (glibcCompat.h), and nothing here uses
38+
# std::random_device, whose libstdc++ implementation would otherwise pull in
39+
# getentropy@GLIBC_2.25 -- a symbol glibc exports in only one version, so no pin
40+
# could reach it.
41+
SHIPPED_GLIBC_FLOOR=2.17
1842
# eclipse-temurin:21-jdk-alpine = Alpine 3.x musl; arm64 manifest confirmed present.
1943
OPENJDK_BASE_IMAGE_AMD64_MUSL=eclipse-temurin:21-jdk-alpine@sha256:c98f0d2e171c898bf896dc4166815d28a56d428e218190a1f35cdc7d82efd61f
2044
OPENJDK_BASE_IMAGE_ARM64_MUSL=eclipse-temurin:21-jdk-alpine@sha256:c98f0d2e171c898bf896dc4166815d28a56d428e218190a1f35cdc7d82efd61f

‎.gitlab/sanitizer-tests/.gitlab-ci.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
when: never
2121
- when: on_success
2222
interruptible: true
23-
before_script:
24-
- apt-get update -qq
25-
- apt-get install -y -qq cmake libgtest-dev libgmock-dev binutils libc6-dbg llvm
23+
# No before_script override: the toolchain lives in the build image, so the
24+
# pipeline default (CANCELLED guard, maven proxy) applies here like anywhere
25+
# else.
2626
script:
2727
- ./gradlew :ddprof-lib:buildGtest${SANITIZER_CONFIG} --no-daemon --parallel --build-cache
2828
- |

‎.gitlab/scripts/build.sh‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,17 @@ set -x
6060

6161
mkdir -p "${REPO_ROOT}/libs"
6262
cp -r "${REPO_ROOT}/ddprof-lib/build/native/release/META-INF/native-libs/"* "${REPO_ROOT}/libs/"
63+
64+
# Assert what the artifact requires from the host that will load it. musl
65+
# targets carry no glibc symbol versions, so the check does not apply to them.
66+
case "${TARGET}" in
67+
*-musl)
68+
echo "Skipping ABI floor check for ${TARGET} (musl)"
69+
;;
70+
*)
71+
source "${REPO_ROOT}/.gitlab/config.env"
72+
"${HERE}/check-abi-floor.sh" \
73+
"${REPO_ROOT}/libs/${TARGET}/libjavaProfiler.so" \
74+
"${SHIPPED_GLIBC_FLOOR}"
75+
;;
76+
esac

0 commit comments

Comments
 (0)