-
-
Notifications
You must be signed in to change notification settings - Fork 180
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
__getauxval symbols cannot be found after 2.0.66 on musl Linux #907
Comments
Since it breaks in 2.0.67, diff between 2.0.66 and 2.0.67: Diff between 2.0.66 and 2.0.67: netty-tcnative-parent-2.0.66.Final...netty-tcnative-parent-2.0.67.Final . |
I kind of suspect this is related to updating to latest boringssl and static compilation. |
@normanmaurer Are there plans to provide native libraries compiled explicitly for musl on Linux? That could be a more stable option in the long term. |
I digged more into this. It looks like checking linking requires using It appears that 2.0.69.Final succeed on both linux/arm64 and linux/amd64. This is the script I used for testing: function test_tcnative() {
local TCNATIVE_VERSION=$1
local PLATFORM=$2
local ALPINE_VERSION=3.20
echo "--------------------------------------------------------------------"
echo "Testing ${TCNATIVE_VERSION} on $PLATFORM"
docker run --platform $PLATFORM --env TCNATIVE_VERSION=$TCNATIVE_VERSION --rm -it alpine:$ALPINE_VERSION sh -c '
set -e
ARCH=$(arch)
[ "$ARCH" = "aarch64" ] && ARCH="aarch_64"
# Install dependencies
apk update
apk add gcompat libgcc
# Download and extract
wget -q https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/${TCNATIVE_VERSION}/netty-tcnative-boringssl-static-${TCNATIVE_VERSION}-linux-$ARCH.jar
unzip -q netty-tcnative-boringssl-static-${TCNATIVE_VERSION}-linux-$ARCH.jar
# Test library loading
echo "Checking library dependencies:"
LD_PRELOAD=/lib/libgcompat.so.0 ldd META-INF/native/libnetty_tcnative_linux_$ARCH.so
'
}
test_tcnative 2.0.69.Final linux/arm64
test_tcnative 2.0.69.Final linux/amd64
test_tcnative 2.0.66.Final linux/arm64
test_tcnative 2.0.66.Final linux/amd64 |
Summary
With 2.0.66, the
__getauxval
symbol can be found after installing thegcompat
dependency. However, 2.0.67 to 2.0.69 all failed.How to reproduce
Run an
alpine:3.20
container on macOS (my OS version is Ventura 13.6.4). Then go to the container and download these 4 JARs:Install the dependencies:
Take 2.0.69 for example:
As you can see, the
__getauxval
symbol is not found.The outputs of 2.0.68 is the same, while 2.0.67 is worse:
2.0.66 works well:
Not sure why
__getauxval
cannot be found fromlibgcompat.so
in 2.0.68 or later.The text was updated successfully, but these errors were encountered: