[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#499786: lib32gcc1: missing GCC_4.* symbols



Package: lib32gcc1
Version: 1:4.3.1-9
Tags: lenny
Severity: grave

lib32gcc1 is lenny does not have the GCC_4.* symbols included,
so it's impossible to run any 32 bits binaries that depend on
these symbols.

A simple C hello world program works for some reason, but as
soon as you link with some libraries - say
/emul/ia32-linux/usr/lib/libstdc++.so.6 - it fails.

This also means it's not possible to compile (at least c++)
binaries in 32 bit mode that can also run on amd64.

A simple hello.c compile:

$ g++ -m32 hello.c
$ ./a.out 
./a.out: /emul/ia32-linux/lib/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /emul/ia32-linux/usr/lib/libstdc++.so.6)

Trying to work around this with -static-libgcc breaks just as bad
(perhaps this is a seperate bug):

$ g++ -m32 -static-libgcc hello.c
/usr/lib/gcc/x86_64-linux-gnu/4.3.1/32/libstdc++.so: undefined reference to `_Unwind_GetIPInfo@GCC_4.2.0'
collect2: ld returned 1 exit status

Something is very wrong :(

The 'raidutils' package needs to compile a 32 bit binary on amd64
because it needs to call 32 bit ioctl()s (there are no working
64 bit equivalents in the kernel) and it can't compile right now
under lenny because of this (I'm going to suggest that the
binaries are compiled with '-static', perhaps that works).

Mike.



Reply to: