[Top][All Lists]
[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
Re: FYI: libtool--devo--1.0--patch-174, Albert Chin, 2004/09/13