Skip to content

Commit c57e562

Browse files
committed
fix: glibc bindings
1 parent bd0fab6 commit c57e562

File tree

4 files changed

+21
-23
lines changed

4 files changed

+21
-23
lines changed

.github/workflows/early-access.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,26 +123,26 @@ jobs:
123123
ld -r /lib/x86_64-linux-gnu/Scrt1.o client/target/dynamic-libc-start.o -o client/target/graalvm-libs-for-glibc-2.12/Scrt1.o
124124
objcopy --redefine-syms=client/src/main/resources/glibc/glibc.redef client/target/graalvm-libs-for-glibc-2.12/Scrt1.o 2>/dev/null
125125
126-
- name: 'Patch ARM64 GraalVM libs for only requiring glibc 2.28'
126+
- name: 'Patch ARM64 GraalVM libs for only requiring glibc 2.17'
127127
if: ${{ env.OS == 'linux' && env.ARCH == 'aarch64' }}
128128
shell: bash
129129
run: |
130-
mkdir -p client/target/graalvm-libs-for-glibc-2.28
130+
mkdir -p client/target/graalvm-libs-for-glibc-2.17
131131
132132
: patch common libraries
133133
( find "$GRAALVM_HOME/lib/static/linux-aarch64/glibc" -name '*.a'
134134
ls -1 /lib/aarch64-linux-gnu/libz.a
135135
ls -1 "$GRAALVM_HOME/lib/svm/clibraries/linux-aarch64/libjvm.a"
136136
ls -1 "$GRAALVM_HOME/lib/svm/clibraries/linux-aarch64/liblibchelper.a"
137137
) | while IFS= read -r input; do
138-
output="client/target/graalvm-libs-for-glibc-2.28/$(basename -- "$input")"
138+
output="client/target/graalvm-libs-for-glibc-2.17/$(basename -- "$input")"
139139
objcopy --redefine-syms=client/src/main/resources/glibc/glibc.redef.aarch64 -- "$input" "$output" 2>/dev/null
140140
done
141141
142142
: patch gcc startfile
143143
gcc -O3 -Os -Wall -Wextra -Werror -Wconversion -Wsign-conversion -Wcast-qual -pedantic -c -o client/target/dynamic-libc-start.o client/src/main/resources/glibc/dynamic-libc-start.c
144-
ld -r /lib/aarch64-linux-gnu/Scrt1.o client/target/dynamic-libc-start.o -o client/target/graalvm-libs-for-glibc-2.28/Scrt1.o
145-
objcopy --redefine-syms=client/src/main/resources/glibc/glibc.redef.aarch64 client/target/graalvm-libs-for-glibc-2.28/Scrt1.o 2>/dev/null
144+
ld -r /lib/aarch64-linux-gnu/Scrt1.o client/target/dynamic-libc-start.o -o client/target/graalvm-libs-for-glibc-2.17/Scrt1.o
145+
objcopy --redefine-syms=client/src/main/resources/glibc/glibc.redef.aarch64 client/target/graalvm-libs-for-glibc-2.17/Scrt1.o 2>/dev/null
146146
147147
- name: 'Build native distribution'
148148
run: ./mvnw verify -Pnative -Dmrm=false -V -B -ntp -e -s .mvn/release-settings.xml
@@ -156,13 +156,13 @@ jobs:
156156
objdump -T client/target/mvnd | grep GLIBC_ | grep -v 'GLIBC_\([01]\|2\.[0-9]\|2\.1[012]\)[^0-9]' || err=$?
157157
(( err == 1 ))
158158
159-
- name: 'Verify ARM64 native binary for only requiring glibc 2.28'
159+
- name: 'Verify ARM64 native binary for only requiring glibc 2.17'
160160
if: ${{ env.OS == 'linux' && env.ARCH == 'aarch64' }}
161161
shell: bash
162162
run: |
163163
(( 4 == "$(ldd client/target/mvnd | awk '{print $1}' | sort -u | grep -c 'lib\(c\|dl\|rt\|pthread\)\.so\.[0-9]')" )) || ( ldd client/target/mvnd && false )
164164
err=0
165-
objdump -T client/target/mvnd | grep GLIBC_ | grep -v 'GLIBC_\([01]\|2\.[0-9]\|2\.2[012345678]\)[^0-9]' || err=$?
165+
objdump -T client/target/mvnd | grep GLIBC_ | grep -v 'GLIBC_\([01]\|2\.[0-9]\|2\.1[017]\)[^0-9]' || err=$?
166166
(( err == 1 ))
167167
168168
- name: 'Upload daemon test logs'

.github/workflows/release.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,26 +95,26 @@ jobs:
9595
ld -r /lib/x86_64-linux-gnu/Scrt1.o client/target/dynamic-libc-start.o -o client/target/graalvm-libs-for-glibc-2.12/Scrt1.o
9696
objcopy --redefine-syms=client/src/main/resources/glibc/glibc.redef client/target/graalvm-libs-for-glibc-2.12/Scrt1.o 2>/dev/null
9797
98-
- name: 'Patch ARM64 GraalVM libs for only requiring glibc 2.28'
98+
- name: 'Patch ARM64 GraalVM libs for only requiring glibc 2.17'
9999
if: ${{ env.OS == 'linux' && env.ARCH == 'aarch64' }}
100100
shell: bash
101101
run: |
102-
mkdir -p client/target/graalvm-libs-for-glibc-2.28
102+
mkdir -p client/target/graalvm-libs-for-glibc-2.17
103103
104104
: patch common libraries
105105
( find "$GRAALVM_HOME/lib/static/linux-aarch64/glibc" -name '*.a'
106106
ls -1 /lib/aarch64-linux-gnu/libz.a
107107
ls -1 "$GRAALVM_HOME/lib/svm/clibraries/linux-aarch64/libjvm.a"
108108
ls -1 "$GRAALVM_HOME/lib/svm/clibraries/linux-aarch64/liblibchelper.a"
109109
) | while IFS= read -r input; do
110-
output="client/target/graalvm-libs-for-glibc-2.28/$(basename -- "$input")"
110+
output="client/target/graalvm-libs-for-glibc-2.17/$(basename -- "$input")"
111111
objcopy --redefine-syms=client/src/main/resources/glibc/glibc.redef.aarch64 -- "$input" "$output" 2>/dev/null
112112
done
113113
114114
: patch gcc startfile
115115
gcc -O3 -Os -Wall -Wextra -Werror -Wconversion -Wsign-conversion -Wcast-qual -pedantic -c -o client/target/dynamic-libc-start.o client/src/main/resources/glibc/dynamic-libc-start.c
116-
ld -r /lib/aarch64-linux-gnu/Scrt1.o client/target/dynamic-libc-start.o -o client/target/graalvm-libs-for-glibc-2.28/Scrt1.o
117-
objcopy --redefine-syms=client/src/main/resources/glibc/glibc.redef.aarch64 client/target/graalvm-libs-for-glibc-2.28/Scrt1.o 2>/dev/null
116+
ld -r /lib/aarch64-linux-gnu/Scrt1.o client/target/dynamic-libc-start.o -o client/target/graalvm-libs-for-glibc-2.17/Scrt1.o
117+
objcopy --redefine-syms=client/src/main/resources/glibc/glibc.redef.aarch64 client/target/graalvm-libs-for-glibc-2.17/Scrt1.o 2>/dev/null
118118
119119
- name: 'Build native distribution'
120120
run: ./mvnw verify -Pnative -Dmrm=false -B -ntp -e -DskipTests -s .mvn/release-settings.xml
@@ -128,7 +128,7 @@ jobs:
128128
objdump -T client/target/mvnd | grep GLIBC_ | grep -v 'GLIBC_\([01]\|2\.[0-9]\|2\.1[012]\)[^0-9]' || err=$?
129129
(( err == 1 ))
130130
131-
- name: 'Verify ARM64 native binary for only requiring glibc 2.28'
131+
- name: 'Verify ARM64 native binary for only requiring glibc 2.17'
132132
if: ${{ env.OS == 'linux' && env.ARCH == 'aarch64' }}
133133
shell: bash
134134
run: |

client/pom.xml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,7 @@
207207
<id>linux-am64-image-only-require-glibc-2.12</id>
208208
<activation>
209209
<os>
210-
<name>linux</name>
211-
<arch>amd64</arch>
210+
<family>linux</family>
212211
</os>
213212
<file>
214213
<exists>target/graalvm-libs-for-glibc-2.12</exists>
@@ -235,14 +234,13 @@
235234
</profile>
236235

237236
<profile>
238-
<id>linux-aarch64-image-only-require-glibc-2.28</id>
237+
<id>linux-aarch64-image-only-require-glibc-2.17</id>
239238
<activation>
240239
<os>
241-
<name>linux</name>
242-
<arch>aarch64</arch>
240+
<family>linux</family>
243241
</os>
244242
<file>
245-
<exists>target/graalvm-libs-for-glibc-2.28</exists>
243+
<exists>target/graalvm-libs-for-glibc-2.17</exists>
246244
</file>
247245
</activation>
248246
<properties>
@@ -256,8 +254,8 @@
256254
<configuration>
257255
<buildArgs combine.children="append">
258256
<buildArg>-H:CCompilerPath=${basedir}/src/main/resources/glibc/gcc</buildArg>
259-
<buildArg>-H:CCompilerOption=-B${project.build.directory}/graalvm-libs-for-glibc-2.28</buildArg>
260-
<buildArg>-H:CLibraryPath=${project.build.directory}/graalvm-libs-for-glibc-2.28</buildArg>
257+
<buildArg>-H:CCompilerOption=-B${project.build.directory}/graalvm-libs-for-glibc-2.17</buildArg>
258+
<buildArg>-H:CLibraryPath=${project.build.directory}/graalvm-libs-for-glibc-2.17</buildArg>
261259
</buildArgs>
262260
</configuration>
263261
</plugin>

client/src/main/resources/glibc/dynamic-libc-start.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
#include <stdint.h>
2929

3030
#if defined(__aarch64__)
31-
__asm__(".symver dlsym,dlsym@GLIBC_2.28");
32-
__asm__(".symver dlvsym,dlvsym@GLIBC_2.28");
31+
__asm__(".symver dlsym,dlsym@GLIBC_2.17");
32+
__asm__(".symver dlvsym,dlvsym@GLIBC_2.17");
3333
#else
3434
__asm__(".symver dlsym,dlsym@GLIBC_2.2.5");
3535
__asm__(".symver dlvsym,dlvsym@GLIBC_2.2.5");

0 commit comments

Comments
 (0)