libtool/README-alpha
1997-11-08 06:25:09 +00:00

108 lines
3.2 KiB
Plaintext

This is an alpha testing release of GNU libtool.
Please do not send any bug reports or questions about it to public
forums (such as GNU newsgroups), send them directly to the libtool
mailing list <bug-libtool@gnu.org>.
Automake
********
Between beta release 1.0b and 1.0c, libtool changed its private
directory name from `.libs' to `_libs' in order to be compatible with
MS-DOS filenames. This change allows libtool to run under the DJGPP
build environment. In 1.0d, I've changed *again*... most platforms
use `.libs', and only MS-DOS uses `_libs', which helps libtool to
remain unobtrusive under Unix. Unfortunately, I've reintroduced a
minor bug into Automake's `clean' rules.
This should not affect anybody else's programs unless you depend on
libtool internals. If you do, and it isn't just for deleting
unnecessary directories, then let me know so libtool can support the
functionality you require.
To fix Automake, edit libtool.am, and change the following lines:
i.e.
clean-libtool:
rm -rf .libs
or:
clean-libtool:
rm -rf _libs
to:
clean-libtool:
rm -rf .libs _libs
and reinstall Automake. If you've already installed Automake, you can
make the same change in /usr/local/share/automake/libtool.am, to avoid
having to reinstall.
global_symbol_pipe
******************
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:
checking command to parse /usr/bin/nm output... yes
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:
$ 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/'
_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:
$ 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/'
__IO_stderr_ _IO_stderr_
___assert_perror_fail __assert_perror_fail
___assert_program_name __assert_program_name
_abort abort
_fflush fflush
_fprintf fprintf
_strerror strerror