Bug#808181: libc6: Upgrade can make the linker unusable
On 2015-12-16 13:15, Dima Kogan wrote:
> Package: libc6
> Severity: normal
>
> Hi. I had
>
> libc6 = 2.19-22
> binutils = 2.25-4
>
> and all was well. Then I upgraded to libc6 = 2.21-4 (currently latest in
> sid). As a result, even the most basic build-time linking would fail.
> For instance, with a trivial hello-world program:
>
> $ gcc-5 -o tst tst.c
>
> /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o: unrecognized relocation (0x2a) in section `.init'
> /usr/bin/ld: final link failed: Bad value
> collect2: error: ld returned 1 exit status
>
> This would happen with gcc-5 and with gcc-4.9. Downgrading libc6 would
> fix it. After some fiddling I realized that upgrading to binutils =
> 2.25.90.20151209-1 (currently latest in sid) fixes it. I.e. with the
> latest libc6 and the latest binutils packages things work.
The problem is not introduced by the glibc, but just by the fact that
it has been built with a recent binutils version which adds new
relocation types on i386 and amd64. This means that ALL static libraries
are affected by this problem.
> Can the broken combination be prevented with some Conflicts: tags?
> Currently this is a trap for the unwary.
I therefore don't think we need to fix that at the glibc level. Either
we just ignore the problem saying we don't support partial upgrades or
we try to find a global way to fix the dependencies for all libraries.
Aurelien
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@aurel32.net http://www.aurel32.net
Reply to: