libtool-patches
[Top][All Lists]
Advanced

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

Re: FYI: libtool--devo--1.0--patch-174


From: Ralf Wildenhues
Subject: Re: FYI: libtool--devo--1.0--patch-174
Date: Tue, 14 Sep 2004 19:36:30 +0200
User-agent: Mutt/1.4.1i

* Gary V. Vaughan wrote on Mon, Sep 13, 2004 at 11:20:22AM CEST:
> On 13 Sep 2004, at 08:23, Ralf Wildenhues wrote:
> >* Gary V. Vaughan wrote on Sat, Sep 11, 2004 at 02:51:32AM CEST:
> >>
> >>from  Ralf Wildenhues  <address@hidden>
> >>
> >>    * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): The linker distinguishes
> >>    data and code symbols on linux-gnu/ia64.  Fixes multiple testsuite
> >>    failures.
> >>    * NEWS: Updated.
> >
> >This was not my patch.  At least not exactly.
> 
> My fault, time was very short last week and I applied your patch 
> (badly) by hand.  Thanks for catching it.  Hopefully now fixed :-/

Yep.  Thanks.

> >I don't know either why libtool does not just differentiate between 
> >data
> >and function objects on *every* system with respect to
> >func_generate_dlsyms, as it does not seem like much more overhead, and
> >at the same time would make for less special code.  But I understand
> >that such a change might not be suitable before a release.
> 
> That's just the way it has evolved.  This release is as much about 
> refactoring and tidying libtool to ease the maintenance burden as it is 
> about any new features (although we have those too).  I'm planning 
> another alpha by the end of the week if I have time to fix the mkdir_p 
> issues, and we may need another after that if Scott and Alexandre 
> resolve to change the way linux uses pass_all or file.  If you want to 
> submit a patch before that, I'd be inclined to accept now rather than 
> wait for the next full release.

Hm.  I wonder if this works on all systems.  It actually uses the same
value for $symcode all the time, which might or might not be the right
thing (but if not, the code was IMNSHO very badly structured before this
change).  Other than that, -7 lines.

No, I did not touch the sed vs. $SED issue.

Regards,
Ralf


2004-09-14  Ralf Wildenhues <address@hidden>

        * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Simplification:
        distinguish between data and code symbols on every system.
        Actually use the last computed value of $symcode for the
        transformations.


Index: m4/libtool.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/m4/libtool.m4,v
retrieving revision 1.102
diff -u -r1.102 libtool.m4
--- m4/libtool.m4       13 Sep 2004 08:23:04 -0000      1.102
+++ m4/libtool.m4       14 Sep 2004 15:12:50 -0000
@@ -2693,12 +2693,6 @@
 # Transform the above into a raw symbol and a C symbol.
 symxfrm='\1 \2\3 \3'
 
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  
{\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  
{\"\2\", (void *) \&\2},/p'"
-
 # Define system-specific variables.
 case $host_os in
 aix*)
@@ -2707,23 +2701,14 @@
 cygwin* | mingw* | pw32*)
   symcode='[[ABCDGISTW]]'
   ;;
-hpux*) # Its linker distinguishes data from code symbols
+hpux*)
   if test "$host_cpu" = ia64; then
     symcode='[[ABCDEGRST]]'
   fi
-  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'"
   ;;
 irix* | nonstopux*)
   symcode='[[BCDEGRST]]'
   ;;
-linux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDGIRSTW]]'
-    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]]'
   ;;
@@ -2749,6 +2734,14 @@
   symcode='[[ABCDGIRSTW]]' ;;
 esac
 
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int 
\1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  
{\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  
{\"\2\", (void *) \&\2},/p'"
+
 # Try without a prefix undercore, then with it.
 for ac_symprfx in "" "_"; do
 




reply via email to

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