From: Thomas Tanner Date: Fri, 18 Jun 1999 14:49:47 +0000 (+0000) Subject: * ltconfig.in (bsdi4, deplibs_check_method): use a less restrictive X-Git-Tag: release-1-3b~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=debe84ef9b0d204ad8ee3a04ee82cca862d1ec04;p=thirdparty%2Flibtool.git * ltconfig.in (bsdi4, deplibs_check_method): use a less restrictive regex (reported by Chris P. Ross ) * ltmain.in: support `-dlopen self', define lt_preloaded_symbols if dlself != no * doc/libtool.texi (Compile and Link mode): document it, documented the -Wc, -Wl flags, libtool does also support non C source code * ltconfig.in: CR/LF fix for broken DJGPP bash * ltmain.in: CR/LF fix for DJGPP --- diff --git a/ChangeLog b/ChangeLog index 81361c07b..ab45c6299 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +1999-06-18 Thomas Tanner + + * ltconfig.in (bsdi4, deplibs_check_method): use a less restrictive + regex (reported by Chris P. Ross ) + * ltmain.in: support `-dlopen self', define lt_preloaded_symbols + if dlself != no + * doc/libtool.texi (Compile and Link mode): document it, + documented the -Wc, -Wl flags, libtool does also support non C + source code + +1999-06-18 Teun Burgers + + * ltconfig.in: CR/LF fix for broken DJGPP bash + * ltmain.in: CR/LF fix for DJGPP + 1999-06-18 Gary V. Vaughan * ltmain.in (outputname): When generating the executable wrapper diff --git a/doc/libtool.texi b/doc/libtool.texi index 790758d29..f996ec081 100644 --- a/doc/libtool.texi +++ b/doc/libtool.texi @@ -1134,11 +1134,15 @@ the name of the C compiler, and contain the @samp{-c} compiler flag so that only an object file is created. Libtool determines the name of the output file by removing the directory -component from the source file name, then substituting the C source code -suffix @samp{.c} with the library object suffix, @samp{.lo}. +component from the source file name, then substituting the source code +suffix (e.g. @samp{.c} for C soure code) with the library object suffix, +@samp{.lo}. If shared libraries are being built, any necessary PIC generation flags are substituted into the compilation command. +You can pass compiler and linker specific flags using @samp{-Wc,@var{flag}} +and @samp{-Xcompiler @var{flag}} or @samp{-Wl,@var{flag}} and +@samp{-Xlinker @var{flag}}, respectively. If the @samp{-static} option is given, then a @samp{.o} file is built, even if libtool was configured with @samp{--disable-static}. @@ -1199,6 +1203,9 @@ the program is linked with @samp{-static} or @samp{-all-static}. Otherwise, no effect. If @var{file} is @code{self} libtool will make sure that the program can @code{dlopen} itself, either by enabling @code{-export-dynamic} or by falling back to @samp{-dlpreopen self}. +If @var{file} is @code{dummy} libtool will make sure that +@var{lt_preloaded_symbols} is always @emph{defined}, regardless of whether +it's empty or not. @item -dlpreopen @var{file} Link @var{file} into the output program, and add its symbols to @@ -1273,6 +1280,10 @@ If @var{output-file} is a libtool library, use interface version information @var{current}, @var{revision}, and @var{age} to build it (@pxref{Versioning}). Do @strong{not} use this flag to specify package release information, rather see the @samp{-release} flag. + +@item -Wl,@var{flag} +@itemx -Xlinker @var{flag} +Pass a linker specific flag directly to the linker. @end table If the @var{output-file} ends in @samp{.la}, then a libtool library is diff --git a/ltconfig.in b/ltconfig.in index 4e37aaeb7..8056926a3 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -1879,7 +1879,7 @@ bsdi4*) soname_spec='${libname}.so' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH - deplibs_check_method='file_magic ELF 32-bit LSB shared object' + deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' file_magic_cmd=/usr/bin/file file_magic_test_file=/shlib/libc.so sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" @@ -3020,7 +3020,7 @@ EOF esac # Append the ltmain.sh script. - cat "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) + sed -e "" "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) chmod +x "$ofile" ;; diff --git a/ltmain.in b/ltmain.in index 91e3f46cd..45f8acc16 100644 --- a/ltmain.in +++ b/ltmain.in @@ -69,7 +69,7 @@ rm="rm -f" Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' SP2NL='tr \040 \012' -NL2SP='tr \012 \040' +NL2SP='tr \015\012 \040\040' # NLS nuisances. # Only set LANG and LC_ALL to C if already set. @@ -884,6 +884,14 @@ compiler." fi case "$arg" in *.la | *.lo) ;; # We handle these cases below. + dummy) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; self) if test "$prev" = dlprefiles; then dlself=yes @@ -3086,7 +3094,7 @@ EOF fi dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" = yes; then + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else