libtool
[Top][All Lists]
Advanced

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

Re: export_symbols_cmds erroneously expanded


From: Ralf Wildenhues
Subject: Re: export_symbols_cmds erroneously expanded
Date: Mon, 11 Dec 2006 18:36:56 +0100
User-agent: Mutt/1.5.13 (2006-11-01)

Hello Charles,

Thanks for the bug report.

* Charles Wilson wrote on Mon, Dec 11, 2006 at 06:17:38PM CET:
> When building pcre (which uses libtool --export-symbols-regex) I get the
> following error (libtool cvs branch 1.5, 20061014 checkout):
> 
> /bin/sh ./libtool --mode=link gcc -export-symbols-regex '^[^_]'  -I.
> -I/c/msys/1.0/local/src/pcre/cygports/pcre-6.7-1/src/pcre-6.7 -rpath
> /usr/lib -no-undefined -version-info \
[...]
> .libs/pcre_valid_utf8.o .libs/pcre_version.o .libs/pcre_xclass.o  | sed
> -n -e 's/^.*[   ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[         ][     
> ]*_\([_A-Za-z][_A-Za-z0-9]*\)$/\1 _\2 \2/p' | /usr/bin/sed -e
> '/^[BCDGRS] /s/. /s/.. \([^ ]*\)/\1 DATA/' | /usr/bin/sed -e '/^[AITW]
> /s/. /s/.. //' | sort | uniq > .libs/libpcre.exp
> /usr/bin/sed: -e expression #1, char 20: unknown option to `s'
> /usr/bin/sed: -e expression #1, char 18: unknown option to `s'
> /usr/bin/grep -E -e "^[^_]" ".libs/libpcre.exp" > ".libs/libpcre.expT"

> # The commands to list exported symbols.
> export_filter="sed -e '/^[BCDGRS] /s/.* \\([^ ]*\\)/\\1 DATA/' | sed -e
> '/^[AITW] /s/.* //'"
> export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe
> | \$export_filter | sort | uniq > \$export_symbols"

The above looks like a cleaner approach to me than the second one you
offer; but it means we'd need to change the definition of
export_symbols_cmds for each and every system, not just Cygin/MinGW.
(There is no need for two sed scripts here, by the way, one would be
just fine.)

Another thing that worries me is I'm pretty certain the use of
export_symbols_cmds in the too-many-objects case will cause another,
differently-looking failure.  IOW, tests for both use cases are needed.

I can look into this in a couple of days probably.

> There's also the (uglier, but less invasive -- doesn't require a new
> _LT_TAG_VAR for each tag):
> 
> # The commands to list exported symbols.
> export_symbols_cmds="DOTSTAR='.*'~\$NM \$libobjs \$convenience |
> \$global_symbol_pipe | \$SED -e '/^[BCDGRS] /s/\$DOTSTAR \\\\([^
> ]*\\\\)/\\\\1 DATA/' | \$SED -e '/^[AITW] /s/\$DOTSTAR //' | sort | uniq
> > \$export_symbols"

Cheers,
Ralf




reply via email to

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