Skip to content

Add support for dynamic linking for azurelinux - #321

Open
palashvij-msft wants to merge 28 commits into
mainfrom
personal/palashvij/aznfs_azurelinux
Open

Add support for dynamic linking for azurelinux#321
palashvij-msft wants to merge 28 commits into
mainfrom
personal/palashvij/aznfs_azurelinux

Conversation

@palashvij-msft

@palashvij-msft palashvij-msft commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

root [ /home/palashvij-azurelinux3 ]# ldd /sbin/aznfsclient
linux-vdso.so.1 (0x0000f25bc759c000)
libuuid.so.1 => /usr/lib/libuuid.so.1 (0x0000f25bc6cb0000)
libgnutls.so.30 => /usr/lib/libgnutls.so.30 (0x0000f25bc6a10000)
libfuse3.so.3 => /usr/lib/libfuse3.so.3 (0x0000f25bc69b0000)
libjemalloc.so.2 => /usr/lib/libjemalloc.so.2 (0x0000f25bc6700000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0000f25bc6470000)
libm.so.6 => /usr/lib/libm.so.6 (0x0000f25bc63c0000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x0000f25bc6380000)
libc.so.6 => /usr/lib/libc.so.6 (0x0000f25bc6170000)
/lib/ld-linux-aarch64.so.1 (0x0000f25bc7550000)
libp11-kit.so.0 => /usr/lib/libp11-kit.so.0 (0x0000f25bc5fc0000)
libtasn1.so.6 => /usr/lib/libtasn1.so.6 (0x0000f25bc5f80000)
libhogweed.so.6 => /usr/lib/libhogweed.so.6 (0x0000f25bc5f10000)
libnettle.so.8 => /usr/lib/libnettle.so.8 (0x0000f25bc5ea0000)
libgmp.so.10 => /usr/lib/libgmp.so.10 (0x0000f25bc5e00000)
libffi.so.8 => /usr/lib/libffi.so.8 (0x0000f25bc5dc0000)

root [ /home/palashvij-azurelinux3 ]# echo "=== Package ==="
rpm -qf /sbin/aznfsclient

echo "=== RPM Dependencies ==="
rpm -qR "$(rpm -qf /sbin/aznfsclient)"

echo "=== Shared Libraries ==="
ldd /sbin/aznfsclient

echo "=== Binary ==="
file /sbin/aznfsclient
=== Package ===
aznfs-0.3.3-1.aarch64
=== RPM Dependencies ===
/bin/bash
/bin/sh
/bin/sh
/bin/sh
/bin/sh
bash
bind-utils
conntrack-tools
fuse3
gnutls
iproute
iptables
jemalloc
ld-linux-aarch64.so.1()(64bit)
ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)
libasan
libc.so.6()(64bit)
libc.so.6(GLIBC_2.17)(64bit)
libc.so.6(GLIBC_2.25)(64bit)
libc.so.6(GLIBC_2.28)(64bit)
libc.so.6(GLIBC_2.30)(64bit)
libc.so.6(GLIBC_2.32)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.38)(64bit)
libfuse3.so.3()(64bit)
libfuse3.so.3(FUSE_3.0)(64bit)
libfuse3.so.3(FUSE_3.12)(64bit)
libgcc_s.so.1()(64bit)
libgcc_s.so.1(GCC_3.0)(64bit)
libgcc_s.so.1(GCC_4.5.0)(64bit)
libgnutls.so.30()(64bit)
libgnutls.so.30(GNUTLS_3_4)(64bit)
libgnutls.so.30(GNUTLS_3_7_3)(64bit)
libjemalloc.so.2()(64bit)
libm.so.6()(64bit)
libstdc++.so.6()(64bit)
libstdc++.so.6(CXXABI_1.3)(64bit)
libstdc++.so.6(CXXABI_1.3.11)(64bit)
libstdc++.so.6(CXXABI_1.3.13)(64bit)
libstdc++.so.6(CXXABI_1.3.2)(64bit)
libstdc++.so.6(CXXABI_1.3.3)(64bit)
libstdc++.so.6(CXXABI_1.3.5)(64bit)
libstdc++.so.6(CXXABI_1.3.7)(64bit)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
libstdc++.so.6(GLIBCXX_3.4.11)(64bit)
libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
libstdc++.so.6(GLIBCXX_3.4.19)(64bit)
libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
libstdc++.so.6(GLIBCXX_3.4.22)(64bit)
libstdc++.so.6(GLIBCXX_3.4.26)(64bit)
libstdc++.so.6(GLIBCXX_3.4.29)(64bit)
libstdc++.so.6(GLIBCXX_3.4.30)(64bit)
libstdc++.so.6(GLIBCXX_3.4.32)(64bit)
libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
libuuid.so.1()(64bit)
libuuid.so.1(UUID_1.0)(64bit)
net-tools
newt
nfs-utils
nmap-ncat
procps-ng
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1
stunnel
util-linux
=== Shared Libraries ===
linux-vdso.so.1 (0x0000ffb8f51e8000)
libuuid.so.1 => /usr/lib/libuuid.so.1 (0x0000ffb8f4900000)
libgnutls.so.30 => /usr/lib/libgnutls.so.30 (0x0000ffb8f4660000)
libfuse3.so.3 => /usr/lib/libfuse3.so.3 (0x0000ffb8f4600000)
libjemalloc.so.2 => /usr/lib/libjemalloc.so.2 (0x0000ffb8f4350000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0000ffb8f40c0000)
libm.so.6 => /usr/lib/libm.so.6 (0x0000ffb8f4010000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x0000ffb8f3fd0000)
libc.so.6 => /usr/lib/libc.so.6 (0x0000ffb8f3dc0000)
/lib/ld-linux-aarch64.so.1 (0x0000ffb8f51a0000)
libp11-kit.so.0 => /usr/lib/libp11-kit.so.0 (0x0000ffb8f3c10000)
libtasn1.so.6 => /usr/lib/libtasn1.so.6 (0x0000ffb8f3bd0000)
libhogweed.so.6 => /usr/lib/libhogweed.so.6 (0x0000ffb8f3b60000)
libnettle.so.8 => /usr/lib/libnettle.so.8 (0x0000ffb8f3af0000)
libgmp.so.10 => /usr/lib/libgmp.so.10 (0x0000ffb8f3a50000)
libffi.so.8 => /usr/lib/libffi.so.8 (0x0000ffb8f3a10000)
=== Binary ===
/sbin/aznfsclient: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=c9636dbe97b14f540e2fdee912634e9ae52e433c, for GNU/Linux 4.14.0, not stripped
root [ /home/palashvij-azurelinux3 ]#

Comment thread .github/aznfs-build.yaml
Comment thread generate_package.sh Outdated

@linuxsmiths linuxsmiths left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls get rubber-duck review from at least two large LLMs.
and test for multiple distros, properly

palashvij-msft and others added 3 commits September 2, 2026 17:27
Preserve the patched aznfsclient for existing RPM variants and keep unsigned Azure Linux RPMs out of signed release artifacts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve Azure Linux dynamic linking while incorporating the removal of GnuTLS and the always-on non-TLS AZAUTH configuration from main.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Advance libnfs through merged PRs #38 and #39 so the parent build uses the non-TLS AZAUTH implementation and its required static configuration gates.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep mount.aznfs static on Azure Linux because it is installed setuid-root. Dynamic linking remains limited to aznfsclient.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants