Hi, I don't know if I can reopen this as a normal user, but I can still 
reproduce this with libc6-dev from etch and binutils from sarge, as the initial 
report stated. Unless the conflict between newer binutils and g++-3.3 has been 
fixed, that would seem to still leave a problem.

I'm using the original test case:

[EMAIL PROTECTED]:/file/devel/test# gcc-3.3 -shared -o libtest.so test.c
/usr/lib/libc_nonshared.a(atexit.oS)(.text.__i686.get_pc_thunk.bx+0x0): In 
function `__i686.get_pc_thunk.bx':
: multiple definition of `__i686.get_pc_thunk.bx'
/usr/lib/gcc-lib/i486-linux/3.3.5/crtbeginS.o(.gnu.linkonce.t.__i686.get_pc_thunk.bx+0x0):
 first defined here
collect2: ld returned 1 exit status

[EMAIL PROTECTED]:/file/devel/test# dpkg -l libc6-dev libc6 gcc-3.3 gcc-3.4 
binutils
ii  libc6-dev                           2.3.6.ds1-10                        GNU 
C Library: Development Libraries and Header Files
ii  libc6                               2.3.6.ds1-10                        GNU 
C Library: Shared libraries
ii  gcc-3.3                             3.3.5-13                            The 
GNU C compiler
ii  gcc-3.4                             3.4.3-13sarge1                      The 
GNU C compiler
ii  binutils                            2.15-6                              The 
GNU assembler, linker and binary utilities

Aside from upgrading binutils, I found that the following combinations compiled 
and linked without errors:

- gcc-3.4 (with any version of libc6-dev)
- gcc-3.3 after replacing /usr/lib/libc_nonshared.a with the version from 
sarge's libc6-dev
- gcc-3.3 after replacing /usr/lib/gcc-lib/i486-linux/3.3.5/crtbeginS.o and 
crtendS.o with the versions from gcc-3.4 (located in 
/usr/lib/gcc/i486-linux/3.4.4/)

This seems to stem from differences in the functions listed in the error 
message in the files in question; for example see

[EMAIL PROTECTED]:/file/devel/test# egrep -ao 
'[[:print:]]*(thunk|atexit)[[:print:]]*' 
/usr/lib/gcc-lib/i486-linux/3.3.5/crtbeginS.o     
.gnu.linkonce.t.__i686.get_pc_thunk.bx
__i686.get_pc_thunk.bx
[EMAIL PROTECTED]:/file/devel/test# egrep -ao 
'[[:print:]]*(thunk|atexit)[[:print:]]*' 
/usr/lib/gcc/i486-linux/3.4.4/crtbeginS.o

[EMAIL PROTECTED]:/file/devel/test# egrep -ao 
'[[:print:]]*(thunk|atexit)[[:print:]]*' /usr/lib/libc_nonshared.a |grep -vx 
__i686.get_pc_thunk.bx |head -n3
atexit
.text.__i686.get_pc_thunk.bx
atexit.oS/      1168353356  0     0     100644  1088      `
[EMAIL PROTECTED]:/file/devel/test# egrep -ao 
'[[:print:]]*(thunk|atexit)[[:print:]]*' oldlibc_dev/usr/lib/libc_nonshared.a 
|grep -vx __i686.get_pc_thunk.bx |head -n3
atexit
.gnu.linkonce.t.__i686.get_pc_thunk.bx
atexit.oS/      1164718190  0     0     100644  1028      `

So my questions are:

1) Why were these changes made to libc_nonshared.a (in two different minor 
libc6-dev uploads, it seems, including an NMU), and could they be reverted 
again for compatibility with gcc-3.3; and
2) Is there in the mean time any problem with using the older sarge version of 
libc6-dev with a current libc6? The dependency is looser between libstdc++6-dev 
and libstdc++6, for instance, allowing any later version of the latter to be 
used. Is there a specific reason that the libc6-dev->libc6 dependency is an 
equality?

Thanks,
Michael



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to