control: tag -1 + moreinfo control: tag -1 + unreproducible On 2021-08-04 19:03, Matthias Klose wrote: > Package: src:glibc > Version: 2.31-13 > Severity: serious > Tags: sid bullseye > > when cross-building glibc in the c-t-b packages, the libc.so linker file for > some non-default multilib builds like the sparc build for sparc64 is broken, > leading to build failures for at least all gcc-N cross multilib packages at > least. > > $ cat usr/lib32/libc.so > /* GNU ld script > Use the shared library, but some functions are only in > the static library, so try that secondarily. */ > OUTPUT_FORMAT(elf32-sparc) > GROUP ( /lib32/libc.so.6 /usr/lib32/libc_nonshared.a AS_NEEDED ( > /lib/ld-linux.so.2 ) )
Can you point me where you got that file? It doesn't make sense from the path and the content point of view. Also it's not what I get in the libc6-sparc-sparc64-cross package generated by building cross-toolchain-base-ports in a bullseye chroot. I get instead: | cat /usr/sparc64-linux-gnu/lib32/libc.so | /* GNU ld script | Use the shared library, but some functions are only in | the static library, so try that secondarily. */ | OUTPUT_FORMAT(elf32-sparc) | GROUP ( /usr/sparc64-linux-gnu/lib32/libc.so.6 /usr/sparc64-linux-gnu/lib32/libc_nonshared.a AS_NEEDED ( /usr/sparc64-linux-gnu/lib/ld-linux.so.2 ) ) > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=985617#62 says that the > maintainer is investigating, but apparently this never happened. I *did* investigate, and checked that the changes in the linker files are correct. I have just done that again for both cross-toolchain-base and cross-toolchain-base-ports. Here are the differences I observed on the linker scripts: --- old/./unpack/usr/powerpc64-linux-gnu/lib/libc.so 2021-03-03 15:22:03.000000000 +0100 +++ new/./unpack/usr/powerpc64-linux-gnu/lib/libc.so 2021-03-03 15:22:03.000000000 +0100 @@ -2,4 +2,4 @@ Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf64-powerpc) -GROUP ( /usr/powerpc64-linux-gnu/lib/libc.so.6 /usr/powerpc64-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/powerpc64-linux-gnu/lib/ld64.so.1 ) ) +GROUP ( /usr/powerpc64-linux-gnu/lib/libc.so.6 /usr/powerpc64-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/powerpc64-linux-gnu/lib64/ld64.so.1 ) ) --- old/./unpack/usr/powerpc64-linux-gnu/lib32/libc.so 2021-03-03 15:22:03.000000000 +0100 +++ new/./unpack/usr/powerpc64-linux-gnu/lib32/libc.so 2021-03-03 15:22:03.000000000 +0100 @@ -2,4 +2,4 @@ Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf32-powerpc) -GROUP ( /usr/powerpc64-linux-gnu/lib32/libc.so.6 /usr/powerpc64-linux-gnu/lib32/libc_nonshared.a AS_NEEDED ( /usr/powerpc64-linux-gnu/lib32/ld.so.1 ) ) +GROUP ( /usr/powerpc64-linux-gnu/lib32/libc.so.6 /usr/powerpc64-linux-gnu/lib32/libc_nonshared.a AS_NEEDED ( /usr/powerpc64-linux-gnu/lib/ld.so.1 ) ) --- old/./unpack/usr/powerpc64le-linux-gnu/lib/libc.so 2021-03-03 12:54:20.000000000 +0100 +++ new/./unpack/usr/powerpc64le-linux-gnu/lib/libc.so 2021-03-03 12:54:20.000000000 +0100 @@ -2,4 +2,4 @@ Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf64-powerpcle) -GROUP ( /usr/powerpc64le-linux-gnu/lib/libc.so.6 /usr/powerpc64le-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/powerpc64le-linux-gnu/lib/ld64.so.2 ) ) +GROUP ( /usr/powerpc64le-linux-gnu/lib/libc.so.6 /usr/powerpc64le-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/powerpc64le-linux-gnu/lib64/ld64.so.2 ) ) --- old/./unpack/usr/s390x-linux-gnu/lib32/libc.so 2021-03-03 12:54:20.000000000 +0100 +++ new/./unpack/usr/s390x-linux-gnu/lib32/libc.so 2021-03-03 12:54:20.000000000 +0100 @@ -2,4 +2,4 @@ Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf32-s390) -GROUP ( /usr/s390x-linux-gnu/lib32/libc.so.6 /usr/s390x-linux-gnu/lib32/libc_nonshared.a AS_NEEDED ( /usr/s390x-linux-gnu/lib32/ld.so.1 ) ) +GROUP ( /usr/s390x-linux-gnu/lib32/libc.so.6 /usr/s390x-linux-gnu/lib32/libc_nonshared.a AS_NEEDED ( /usr/s390x-linux-gnu/lib/ld.so.1 ) ) --- old/./unpack/usr/sparc64-linux-gnu/lib/libc.so 2021-03-03 15:22:03.000000000 +0100 +++ new/./unpack/usr/sparc64-linux-gnu/lib/libc.so 2021-03-03 15:22:03.000000000 +0100 @@ -2,4 +2,4 @@ Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf64-sparc) -GROUP ( /usr/sparc64-linux-gnu/lib/libc.so.6 /usr/sparc64-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/sparc64-linux-gnu/lib/ld-linux.so.2 ) ) +GROUP ( /usr/sparc64-linux-gnu/lib/libc.so.6 /usr/sparc64-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/sparc64-linux-gnu/lib64/ld-linux.so.2 ) ) --- old/./unpack/usr/sparc64-linux-gnu/lib32/libc.so 2021-03-03 15:22:03.000000000 +0100 +++ new/./unpack/usr/sparc64-linux-gnu/lib32/libc.so 2021-03-03 15:22:03.000000000 +0100 @@ -2,4 +2,4 @@ Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf32-sparc) -GROUP ( /usr/sparc64-linux-gnu/lib32/libc.so.6 /usr/sparc64-linux-gnu/lib32/libc_nonshared.a AS_NEEDED ( /usr/sparc64-linux-gnu/lib32/ld-linux.so.2 ) ) +GROUP ( /usr/sparc64-linux-gnu/lib32/libc.so.6 /usr/sparc64-linux-gnu/lib32/libc_nonshared.a AS_NEEDED ( /usr/sparc64-linux-gnu/lib/ld-linux.so.2 ) ) --- old/./unpack/usr/x86_64-linux-gnu/lib/libc.so 2021-03-03 12:54:20.000000000 +0100 +++ new/./unpack/usr/x86_64-linux-gnu/lib/libc.so 2021-03-03 12:54:20.000000000 +0100 @@ -2,4 +2,4 @@ Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf64-x86-64) -GROUP ( /usr/x86_64-linux-gnu/lib/libc.so.6 /usr/x86_64-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/x86_64-linux-gnu/lib/ld-linux-x86-64.so.2 ) ) +GROUP ( /usr/x86_64-linux-gnu/lib/libc.so.6 /usr/x86_64-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/x86_64-linux-gnu/lib64/ld-linux-x86-64.so.2 ) ) --- old/./unpack/usr/x86_64-linux-gnu/lib32/libc.so 2021-03-03 12:54:20.000000000 +0100 +++ new/./unpack/usr/x86_64-linux-gnu/lib32/libc.so 2021-03-03 12:54:20.000000000 +0100 @@ -2,4 +2,4 @@ Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf32-i386) -GROUP ( /usr/x86_64-linux-gnu/lib32/libc.so.6 /usr/x86_64-linux-gnu/lib32/libc_nonshared.a AS_NEEDED ( /usr/x86_64-linux-gnu/lib32/ld-linux.so.2 ) ) +GROUP ( /usr/x86_64-linux-gnu/lib32/libc.so.6 /usr/x86_64-linux-gnu/lib32/libc_nonshared.a AS_NEEDED ( /usr/x86_64-linux-gnu/lib/ld-linux.so.2 ) ) --- old/./unpack/usr/x86_64-linux-gnux32/lib/libc.so 2021-03-03 15:22:03.000000000 +0100 +++ new/./unpack/usr/x86_64-linux-gnux32/lib/libc.so 2021-03-03 15:22:03.000000000 +0100 @@ -2,4 +2,4 @@ Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf32-x86-64) -GROUP ( /usr/x86_64-linux-gnux32/lib/libc.so.6 /usr/x86_64-linux-gnux32/lib/libc_nonshared.a AS_NEEDED ( /usr/x86_64-linux-gnux32/lib/ld-linux-x32.so.2 ) ) +GROUP ( /usr/x86_64-linux-gnux32/lib/libc.so.6 /usr/x86_64-linux-gnux32/lib/libc_nonshared.a AS_NEEDED ( /usr/x86_64-linux-gnux32/libx32/ld-linux-x32.so.2 ) ) --- old/./unpack/usr/x86_64-linux-gnux32/lib32/libc.so 2021-03-03 15:22:03.000000000 +0100 +++ new/./unpack/usr/x86_64-linux-gnux32/lib32/libc.so 2021-03-03 15:22:03.000000000 +0100 @@ -2,4 +2,4 @@ Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf32-i386) -GROUP ( /usr/x86_64-linux-gnux32/lib32/libc.so.6 /usr/x86_64-linux-gnux32/lib32/libc_nonshared.a AS_NEEDED ( /usr/x86_64-linux-gnux32/lib32/ld-linux.so.2 ) ) +GROUP ( /usr/x86_64-linux-gnux32/lib32/libc.so.6 /usr/x86_64-linux-gnux32/lib32/libc_nonshared.a AS_NEEDED ( /usr/x86_64-linux-gnux32/lib/ld-linux.so.2 ) ) Basically the AS_NEEDED entry now points directly to the dynamic linker instead of going through one more level of indirection. But the target link is still valid. Regards, Aurelien -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurel...@aurel32.net http://www.aurel32.net