libtool/README-alpha

70 lines
2.2 KiB
Plaintext
Raw Normal View History

1998-02-12 13:45:15 +08:00
This is an alpha testing release of GNU Libtool.
1997-04-02 03:18:28 +08:00
Please do not send any bug reports or questions about it to public
1997-06-07 05:55:10 +08:00
forums (such as GNU newsgroups), send them directly to the libtool
1997-11-08 14:25:09 +08:00
mailing list <bug-libtool@gnu.org>.
1997-09-06 03:13:09 +08:00
1997-09-15 22:12:49 +08:00
global_symbol_pipe
******************
1997-09-06 03:13:09 +08:00
CALL FOR HELP: In order to implement dlopening even on archictectures
that don't have shared libraries, I am collecting `NM' and
`global_symbol_pipe' values for every known operating system.
If ltconfig on your system says that it found the command to parse NM
output, then you don't need to look any further:
1997-09-06 05:59:39 +08:00
checking command to parse /usr/bin/nm output... yes
1997-09-06 03:13:09 +08:00
Otherwise, I would very much appreciate hearing about the combination
of `NM' and `global_symbol_pipe' that ltconfig needs to use in order
to pass this test.
`NM' is set by ltconfig to be an nm program that gives BSD-compatible
symbol output, such as:
$ nm assert-perr.o
U _IO_stderr_
00000000 T __assert_perror_fail
U __assert_program_name
U abort
U fflush
U fprintf
U strerror
If your OS's nm cannot produce output like this, that's still okay,
but, for simplicity, I prefer using this kind of output.
Then, global_symbol_pipe is a command that takes all exported symbols,
including undefined ones, and produces a two-column list of them. The
contents of the first column are the raw symbol name, and the second
column contains the name needed to access the symbols from a C
program.
So, on most OSes, this will be a command like:
1997-10-20 02:53:23 +08:00
1997-09-06 03:13:09 +08:00
$ nm assert-perr.o | \
1997-09-06 05:59:39 +08:00
sed -e '/^.* [BCDEGRSTU] \([_A-Za-z][_A-Za-z0-9]*\)$/!d'
-e 's/^.* [BCDEGRSTU] \([_A-Za-z][_A-Za-z0-9]*\)$/\1 \1/'
1997-09-06 03:13:09 +08:00
_IO_stderr_ _IO_stderr_
__assert_perror_fail __assert_perror_fail
__assert_program_name __assert_program_name
abort abort
fflush fflush
fprintf fprintf
strerror strerror
On some OSes, the C symbols will need to strip a leading underscore:
1997-09-06 05:59:39 +08:00
$ nm assert-perr.o | \
sed -e '/^.* [BCDEGRSTU] _\([_A-Za-z][_A-Za-z0-9]*\)$/!d'
-e 's/^.* [BCDEGRSTU] _\([_A-Za-z][_A-Za-z0-9]*\)$/_\1 \1/'
1997-09-06 03:13:09 +08:00
__IO_stderr_ _IO_stderr_
___assert_perror_fail __assert_perror_fail
___assert_program_name __assert_program_name
_abort abort
_fflush fflush
_fprintf fprintf
_strerror strerror