bug-libtool
[Top][All Lists]
Advanced

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

failure of dlpreopen on ia64/linux/gcc


From: Ralf Wildenhues
Subject: failure of dlpreopen on ia64/linux/gcc
Date: Fri, 3 Sep 2004 15:36:45 +0200
User-agent: Mutt/1.4.1i

The Libtool test suite (current CVS HEAD as well as 1.5) fails on
ia64/linux/gcc in several tests.  I think the reason is that on
ia64/linux, the linker (similar to ia64/hpux) also distinguishes data
from code symbols, which make dlpreopen fail on functions.  For me, the
patch below (against HEAD) fixes the testsuite failures, but I don't
know if the changes are well-placed and general/specific enough.  Also,
I don't know if the symcode setting is justified (how to find out?  I
copied that from the hpux case).  And IMVHO Libtool-1.5 could be fixed
as well.

There's one more failure left on ia64 in the whole testsuite in my case:
| === Running tagtrace.test
| Can't locate object method "path" via package "Autom4te::Request" (perhaps 
you forgot to load "Autom4te::Request"?) at /usr/bin/autom4te line 81.
| FAIL: tagtrace.test

but I think this is just because there are old versions automake-1.4-p4
and autoconf 2.53 installed on that machine (should some checking
prevent this test from running with too old versions?).

CCing the Debian maintainer of the Libtool package because when this is
fixed it should be possible to enable the testsuite on ia64 again.

Regards,
Ralf

Index: m4/libtool.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/m4/libtool.m4,v
retrieving revision 1.98
diff -u -r1.98 libtool.m4
--- m4/libtool.m4       3 Sep 2004 01:54:37 -0000       1.98
+++ m4/libtool.m4       3 Sep 2004 13:22:59 -0000
@@ -2711,6 +2711,13 @@
 irix* | nonstopux*)
   symcode='[[BCDEGRST]]'
   ;;
+linux*)
+  if test "$host_cpu" = ia64; then     # The linker distinguishes data from 
code symbols
+    symcode='[[ABCDEGRST]]'
+    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int 
\1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  
{\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  
{\"\2\", (void *) \&\2},/p'"
+  fi
+  ;;
 osf*)
   symcode='[[BCDEGQRST]]'
   ;;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]