mklibs patch for MIPS
This patch fixes a problem using mklibs for MIPS (discussed at
<http://gcc.gnu.org/ml/gcc/2008-07/msg00099.html>). The symbol
__gnu_local_gp is defined by the linker for this configuration and so
mklibs should ignore it being undefined. I've only seen the problem for
N32, though it might apply for other ABIs as well. This problem is
entirely independent of the problem of mklibs producing bad binaries for
MIPS (bug 445507), which should probably have been fixed by the binutils
patch <http://sourceware.org/ml/binutils/2008-07/msg00350.html>.
Index: src/mklibs.py
===================================================================
--- src/mklibs.py (revision 55961)
+++ src/mklibs.py (working copy)
@@ -415,9 +415,11 @@
for obj in objects.values():
for symbol in undefined_symbols(obj):
# Some undefined symbols in libthread_db are defined in
- # the application that uses it.
+ # the application that uses it. __gnu_local_gp is defined
+ # specially by the linker on MIPS.
if (not (re.search("libthread_db\.so", obj)
- and re.search("^ps_", str(symbol)))):
+ and re.search("^ps_", str(symbol)))
+ and str(symbol) != "__gnu_local_gp@Base"):
debug(DEBUG_SPAM, "needed_symbols adding %s, weak: %s" % (symbol, symbol.weak))
needed_symbols[str(symbol)] = symbol
libraries.update(library_depends(obj))
--
Joseph S. Myers
joseph@codesourcery.com
Reply to: