]> git.ipfire.org Git - people/stevee/ipfire-3.x.git/blobdiff - glibc/glibc.nm
glibc: Fix runtime linker path chaos
[people/stevee/ipfire-3.x.git] / glibc / glibc.nm
index 3b1362d4dadc5425f32e29c0854a0d7f59c79178..b86d06a8399184fd4a58b66e123bb7ce1fed4699 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = glibc
 version    = 2.37
-release    = 5
+release    = 6
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
 groups     = System/Base
@@ -52,6 +52,9 @@ build
        # Disable LTO
        LTO_CFLAGS =
 
+       # Path to put the runtime linker
+       rtlddir = %{libdir}
+
        configure_options = \
                --build=%{DISTRO_BUILDTARGET} \
                --prefix=/usr \
@@ -73,28 +76,26 @@ build
        if "%{DISTRO_ARCH}" == "aarch64"
                configure_options += \
                        --enable-memory-tagging
+
+               # The runtime linker on aarch64 for whatever braindead reason is in /usr/lib
+               rtlddir = %{prefix}/lib
+
+               # Runtime Linker
+               rtld = /lib/ld-linux-aarch64.so.1
        end
 
        if "%{DISTRO_ARCH}" == "x86_64"
                configure_options += \
                        --enable-cet
+
+               # Runtime Linker
+               rtld = /lib64/ld-linux-x86-64.so.2
        end
 
        install
                # Install everything
                make install install_root=%{BUILDROOT} \
-                       rtlddir=%{libdir} rootsbindir=%{sbindir} slibdir=%{libdir}
-
-               if [ "%{DISTRO_ARCH}" = "aarch64" ]; then
-                       # On aarch64, we did link various binaries against
-                       # an incorrect linker in /lib. In order to migrate
-                       # away from this, we are creating a symlink which
-                       # can hopefully go after we drop the bootstrap repositories.
-                       mkdir -pv %{BUILDROOT}%{prefix}/lib
-                       ln -svf --relative \
-                               %{BUILDROOT}%{libdir}/ld-linux-aarch64.so.1 \
-                               %{BUILDROOT}%{prefix}/lib/ld-linux-aarch64.so.1
-               fi
+                       rtlddir=%{rtlddir} rootsbindir=%{sbindir} slibdir=%{libdir}
 
                # Locales
                mkdir -pv %{BUILDROOT}/usr/lib/locale
@@ -141,9 +142,9 @@ end
 
 packages
        package glibc
-               if "%{DISTRO_ARCH}" == "aarch64"
-                       provides += /lib/ld-linux-aarch64.so.1
-               end
+               # Export the path to the runtime linker which is actually
+               # installed into /usr, but is being searched for elsewhere
+               provides += %{rtld}
 
                requires
                        tzdata