This is the mail archive of the gas2@sourceware.cygnus.com mailing list for the gas2 project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Date: Fri, 9 Aug 1996 02:46:18 -0700 From: "David S. Miller" <dm@neteng.engr.sgi.com> The problem is caused by the symbol 'glob'. GNU libc also has a symbol glob. This is the bug. An ANSI C compliant shared library may not have a global symbol which infringes on the ANSI C namespace. The symbol must, instead, be weak. It works to have a global symbol in a normal archive library, because then it will only be included if there is no other definition. However, all symbols in a shared library are included if any are, so there must be no extraneous global symbols. The IRIX6.2 linker however places this symbol in the MIPS_ACOMMON section of the resulting executable and does not override using the libc symbol of the same name (the shared IRIX libc does in fact have a symbol named 'glob' just like my MIPS/Linux GNU libc does). If you use elfdump -Dt on the Irix 6.2 libc, you will see that glob is a weak symbol. The use of the MIPS_ACOMMON section is an Irix linker optimization, not supported by gld, which has no particular bearing on this issue. Ian