[Top][All Lists]
[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