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]