From: Gordon Matzigkeit Date: Thu, 12 Feb 1998 05:45:15 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: release-1-0~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=831a978fa1b56854df92f7d14f38c5615904cd2e;p=thirdparty%2Flibtool.git *** empty log message *** --- diff --git a/ChangeLog b/ChangeLog index 2dddd2c4b..edf31bcd1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,34 @@ +Wed Feb 11 22:20:33 1998 Gordon Matzigkeit + + * ltconfig.in (no_undefined_flag): Add a flag to declare under + Solaris that the library should not have any undefined + references. Suggested by Bob Friesenhahn. + + * ltmain.in (mkdir): Fix one more mkdir race. From H.J. Lu. + +Sun Feb 8 18:16:41 1998 Gordon Matzigkeit + + * ltconfig.in, ltmain.in (striplib, old_striplib): Ditto. + + * ltconfig.in (profile_flag_pattern): Get rid of dead code. + +Sat Feb 7 11:49:33 1998 Gordon Matzigkeit + + * libtool.m4 (AM_ENABLE_SHARED, AM_ENABLE_STATIC): New macros to + modify the `--enable-shared' and `--enable-static' defaults in the + configure script. This works a lot better than the old + `enable_shared' and `enable_static' variables did. Reported by + Bob Friesenhahn. + +Sat Feb 7 16:16:02 1998 Samuel Tardieu + + * ltmain.in: Recognize .ada, .ads and .adb as known suffixes (they + are used by GNAT, the GNU Ada compiler). + Fri Feb 6 00:20:41 1998 Gordon Matzigkeit + * ltconfig.in: Turn on IRIX shared libraries again! + * libtool.m4 (LD): Use file(1) to discover which ABI we're using on IRIX, and propagate the correct linker flag. From Jim Wilson. @@ -284,7 +313,7 @@ Thu Nov 6 08:11:25 1997 Gordon Matzigkeit * ltmain.in (mkdir): Check that the directory doesn't exist before we exit with error, so that we don't get races during parallel - builds. From H. J. Lu. + builds. From H.J. Lu. (fbsd_hideous_sh_bug): Apparently, some FreeBSD /bin/sh's have a bug that will empty base_compile unless we do this dummy assignment. From Marc van Kempen. diff --git a/NEWS b/NEWS index 7a08fbeb0..226f748da 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,10 @@ NEWS - list of user-visible changes between releases of GNU Libtool +New: +* Now you should use the `AM_DISABLE_SHARED' or `AM_DISABLE_STATIC' + macros instead of the `enable_shared' or `enable_static' variables + if you wish to modify the default behaviour of `AM_PROG_LIBTOOL'. + New in 1.0i - 1998-02-06, Gordon Matzigkeit: * Bug fixes. * Inter-library dependencies are automatically handled when linking diff --git a/README b/README index ec3a917d1..e99903526 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -This is GNU libtool, a generic library support script. Libtool hides +This is GNU Libtool, a generic library support script. Libtool hides the complexity of using shared libraries behind a consistent, portable interface. @@ -30,14 +30,18 @@ and cannot handle libtool's requirements, so users may report unusual problems. There is no workaround except to install a working sed (such as GNU sed) on these systems. +Libtool's home page is: + + http://www.profitpress.com/libtool/ + See the file NEWS for a description of recent changes to libtool. See the file INSTALL for instructions on how to build and install libtool. See the info node (libtool)Tested Platforms. (or the file -doc/platforms.texi) for a list of platforms that libtool shared -library support was tested on. +doc/PLATFORMS) for a list of platforms that libtool shared library +support was tested on. If you have any suggestions or bug reports, or you wish to port libtool to a new platform, please send electronic mail to the libtool diff --git a/README-alpha b/README-alpha index d87c78392..a1518b74d 100644 --- a/README-alpha +++ b/README-alpha @@ -1,4 +1,4 @@ -This is an alpha testing release of GNU libtool. +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 diff --git a/THANKS b/THANKS index 77ebeac60..e8dd6d473 100644 --- a/THANKS +++ b/THANKS @@ -13,10 +13,10 @@ Alexandre Oliva Bruno Haible Carl D. Roth Charles S. Kerr -H.J. Lu +H.J. Lu Ian Lance Taylor Joel Cannon -Joel N. Weber II +Joel N. Weber II Karl Berry Kenneth Albanowski Mark Kettenis diff --git a/TODO b/TODO index 363fefe55..2752c674e 100644 --- a/TODO +++ b/TODO @@ -8,16 +8,12 @@ compiler type. * Alexandre Oliva suggests that we hardcode paths into libraries, as well as binaries: `... -Wl,-soname -Wl,/tmp/libtest.so.0 ...'. -* Implement full support for other orthogonal library types -(libhello_g, libhello_p, 64 vs 32-bit ABI's, etc). Make these types -configurable. - In the future: ************** -* Inter-library dependencies should be automatically tracked by -libtool. Reminded by Alexandre Oliva. This also would require -looking up installed libtool libraries for transparent support. +* Inter-library dependencies should be fully tracked by libtool. +Reminded by Alexandre Oliva. This requires looking up installed +libtool libraries for transparent support. * Implement full multi-language support. Currently, this is only for C++, but there are beginnings of this in the manual (Other Languages). @@ -33,15 +29,6 @@ People who need it: Jean Daniel Fekete Thomas Hiller -* Writing libtool as a shell script means that proper variable quoting -is a real problem. Be careful when `eval'ing a string that the -arguments are properly quoted. Note that arguments with embedded -whitespace probably will cause problems (because of IFS). - -I don't have good ideas on to fix the problems with whitespace, other -than subverting IFS entirely, perhaps always using an `eval "set -$quoted_args"' sequence. - * Another form of convenience library, suggested by Alexandre Oliva, is to have undocumented utility libraries, where only the shared version is installed. @@ -72,6 +59,10 @@ libtool into that scheme, since it manages some of the preinstall and postinstall commands, but isn't installed itself. Probably, things like libtool should be distributed as part of such a binary package. +* Maybe implement full support for other orthogonal library types +(libhello_g, libhello_p, 64 vs 32-bit ABI's, etc). Make these types +configurable. + * Add support for windoze DLL's, and maybe other jumptable libs. Check out Lesstif and Tcl configuration again (maybe they would be interested in libtool by now?). The Cygnus win32 project may also be diff --git a/demo/Makefile.am b/demo/Makefile.am index 859d1a569..4f9f571ab 100644 --- a/demo/Makefile.am +++ b/demo/Makefile.am @@ -56,8 +56,8 @@ helldl: $(helldl_OBJECTS) $(helldl_DEPENDENCIES) chmod +x helldlT; \ mv -f helldlT helldl; \ else \ - echo '$(LINK) $(helldl_LDFLAGS) $(helldl_OBJECTS) $(helldl_LDADD) -lm'; \ - $(LINK) $(helldl_LDFLAGS) $(helldl_OBJECTS) $(helldl_LDADD) -lm; \ + echo '$(LINK) $(helldl_LDFLAGS) $(helldl_OBJECTS) $(helldl_LDADD)'; \ + $(LINK) $(helldl_LDFLAGS) $(helldl_OBJECTS) $(helldl_LDADD); \ fi # Test programs to see what gets hardcoded. diff --git a/demo/README b/demo/README index fd4468bf3..511fd8398 100644 --- a/demo/README +++ b/demo/README @@ -6,4 +6,4 @@ say, a program that actually did something useful, but we can't have everything. Send bug reports and comments about GNU hell to the libtool mailing -list . +list . diff --git a/doc/Makefile.am b/doc/Makefile.am index 4b197b575..9df4e7f81 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -7,4 +7,4 @@ ## Written by Gordon Matzigkeit AUTOMAKE_OPTIONS = gnits info_TEXINFOS = libtool.texi -libtool_TEXINFOS = platforms.texi +libtool_TEXINFOS = PLATFORMS diff --git a/doc/libtool.texi b/doc/libtool.texi index fc5db05a9..2bb16408b 100644 --- a/doc/libtool.texi +++ b/doc/libtool.texi @@ -7,7 +7,7 @@ @c %**end of header @include version.texi -@set BUGADDR the libtool mailing list @code{} +@set BUGADDR the libtool mailing list @email{} @set objdir .libs @dircategory GNU programming tools @@ -23,7 +23,7 @@ @ifinfo This file documents GNU Libtool @value{VERSION} -Copyright (C) 1996--1998 Free Software Foundation, Inc. +Copyright (C) 1996-1998 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are @@ -55,7 +55,7 @@ approved by the Foundation. @page @vskip 0pt plus 1filll -Copyright @copyright{} 1996--1998 Free Software Foundation, Inc. +Copyright @copyright{} 1996-1998 Free Software Foundation, Inc. @sp 2 This is the first edition of the GNU Libtool documentation,@* and is consistent with GNU Libtool @value{VERSION}.@* @@ -204,7 +204,6 @@ Platform quirks * Compilers:: Creating object files from source files. * Reloadable objects:: Binding object files together. * Archivers:: Programs that create static archives. -* Strip:: Removing unnecessary linkage information. @end detailmenu @end menu @@ -338,9 +337,9 @@ or run @code{ldconfig(8)}. @section Other implementations I have investigated several different implementations of systems that -build shared -libraries as part of a freeware package. At first, I made notes on the -features of each of these packages for comparison purposes. +build shared libraries as part of a free software package. At first, I +made notes on the features of each of these packages for comparison +purposes. Now it is clear that none of these packages have documented the details of shared library systems that libtool requires. So, other packages @@ -1461,6 +1460,30 @@ ltconfig}).@footnote{@code{AM_PROG_LIBTOOL} requires that you define the Automake does this automatically, but Autoconf users should set it to the relative path to the top of your build directory (@file{../..}, for example).} + +By default, this macro turns on shared libraries if they are available, +and also enables static libraries if they don't conflict with the shared +libraries. You can modify these defaults by setting calling either the +@code{AM_DISABLE_SHARED} or @code{AM_DISABLE_STATIC} macros: + +@example +# Turn off shared libraries during beta-testing, since they make the +# build process take too long. +AM_DISABLE_SHARED +AM_PROG_LIBTOOL +@end example +@end defmac + +@defmac AM_DISABLE_SHARED +Change the default behaviour for @code{AM_PROG_LIBTOOL} to disable +shared libraries. The user may still override this default by +specifying @samp{--enable-shared}. +@end defmac + +@defmac AM_DISABLE_STATIC +Change the default behaviour for @code{AM_PROG_LIBTOOL} to disable +static libraries. The user may still override this default by +specifying @samp{--enable-static}. @end defmac @pindex aclocal @@ -1529,7 +1552,7 @@ and accepts the following options: Work silently, and assume that Automake libtool support is used. @samp{libtoolize --automake} is used by Automake to add libtool files to -your package, when @samp{AM_PROG_LIBTOOL} appears in your +your package, when @code{AM_PROG_LIBTOOL} appears in your @file{configure.in}. @item --copy @@ -1613,9 +1636,10 @@ AC_OUTPUT(@dots{}) @cindex Saving time When you are developing a package, it is often worthwhile to configure -your package with the @samp{--disable-shared} flag -(@pxref{AM_PROG_LIBTOOL}). This prevents libtool from building shared -libraries, which has several advantages: +your package with the @samp{--disable-shared} flag, or to override the +defaults for @code{AM_PROG_LIBTOOL} by using the @code{AM_DISABLE_SHARED} +Autoconf macro (@pxref{AM_PROG_LIBTOOL}). This prevents libtool from +building shared libraries, which has several advantages: @itemize @bullet @item @@ -1636,11 +1660,11 @@ Manipulation Program, for those who haven't taken the plunge. See @url{http://www.gimp.org/}.} distribution @file{README}: @example -The GIMP uses GNU libtool in order to build shared libraries on a +The GIMP uses GNU Libtool in order to build shared libraries on a variety of systems. While this is very nice for making usable binaries, it can be a pain when trying to debug a program. For that reason, compilation of shared libraries can be turned off by -specifying the "--disable-shared" option to "configure". +specifying the @samp{--disable-shared} option to @file{configure}. @end example @node Versioning @@ -2546,7 +2570,7 @@ This table describes when libtool was last known to be tested on platforms where it claims to support shared libraries: @example -@include platforms.texi +@include PLATFORMS @end example @node Platform quirks @@ -2567,7 +2591,6 @@ improve libtool, or write your own. * Compilers:: Creating object files from source files. * Reloadable objects:: Binding object files together. * Archivers:: Programs that create static archives. -* Strip:: Removing unnecessary linkage information. @end menu @node References @@ -2662,32 +2685,6 @@ On all known systems, if there is a program named @code{ranlib}, then it must be used to ``bless'' the created library before linking against it, with the @kbd{ranlib lib@var{name}.a} command. -@node Strip -@subsection The @code{strip} program - -Stripping a library is essentially the same problem as stripping an -object file. Only local and debugging symbols must be removed, or else -linking against a stripped library will fail. - -With GNU @code{strip}, the @samp{--discard-all} (or equivalent -@samp{-x}) flag will do the appropriate stripping, for both shared and -static libraries. - -Here is a list of some other operating systems, and what their bundled -@code{strip} programs will do: - -@c FIXME complete this section - -@table @code -@item netbsd* -The @samp{-x} flag works for shared libraries, but fails with -``Inappropriate file type or format'' when used on static libraries. - -@item hpux10* -HP-UX @code{strip} requires the @samp{-r} and @samp{-x} flags in order -to strip libraries. -@end table - @node libtool script contents @section @code{libtool} script contents @cindex Implementation of libtool @@ -2758,6 +2755,11 @@ Whether libtool should build static libraries on this system. Set to @samp{yes} or @samp{no}. @end defvar +@defvar echo +An @code{echo(1)} program which does not interpret backslashes as an +escape character. +@end defvar + @defvar export_dynamic_flag_spec Compiler link flag that allows a dlopened shared library to reference symbols that are defined in the program. @@ -2768,12 +2770,16 @@ Commands to tell the dynamic linker how to find shared libraries in a specific directory. @end defvar -@defvar global_symbol_cmd +@defvar finish_eval +Same as @var{finish_cmds}, except the commands are not displayed. +@end defvar + +@defvar global_symbol_pipe A pipeline that takes the output of @var{NM}, and produces a listing of raw symbols followed by their C names. For example: @example -$ @kbd{$NM | $global_symbol_cmd} +$ @kbd{$NM | $global_symbol_pipe} @var{symbol1} @var{C-symbol1} @var{symbol2} @var{C-symbol2} @var{symbol3} @var{C-symbol3} @@ -2811,12 +2817,6 @@ hardcodes directories specified by @samp{-L} flags into the resulting executable. @end defvar -@defvar hardcode_runpath_var -Set to @samp{yes} or @samp{no}, depending on whether the linker -hardcodes directories by writing the contents of @samp{$runpath_var} -into the resulting executable. -@end defvar - @defvar hardcode_shlibpath_var Set to @samp{yes} or @samp{no}, depending on whether the linker hardcodes directories by writing the contents of @samp{$shlibpath_var} @@ -2831,6 +2831,12 @@ For information purposes, set to the specified and canonical names of the system that libtool was configured for. @end defvar +@defvar libname_spec +The format of a library name prefix. On all Unix systems, static +libraries are called @samp{lib@var{name}.a}, but on some systems (such +as OS/2 or MS-DOS), the library is just called @samp{@var{name}.a}. +@end defvar + @defvar library_names_spec A list of shared library names. The first is the name of the file, the rest are symbolic links to the file. The name in the list is @@ -2847,6 +2853,12 @@ Compiler flag to disable builtin functions that conflict with declaring external global symbols as @code{char}. @end defvar +@defvar no_undefined_flag +The flag that is used by @samp{archive_cmds} in order to declare that +there will be no unresolved symbols in the resulting shared library. +Empty, if no such flag is required. +@end defvar + @defvar pic_flag Any additional compiler flags for building library object files. @end defvar @@ -2876,14 +2888,6 @@ The name coded into shared libraries, if different from the real name of the file. @end defvar -@defvar striplib -@defvarx old_striplib -Programs to strip shared and static libraries, respectively.@footnote{In -the current implementation, libtool does not use any programs to strip -libraries. Support will be added after it is clear how to write a -portable test for library stripping programs.} -@end defvar - @defvar version_type The library version numbering type. One of @samp{libtool}, @samp{linux}, @samp{osf}, @samp{sunos}, or @samp{none}. @@ -2894,10 +2898,10 @@ The C compiler flag that allows libtool to pass a flag directly to the linker. Used as: @samp{$@{wl@}@var{some-flag}}. @end defvar -Variables ending in @samp{_cmds} contain a semicolon-separated list of -commands that are @code{eval}ed one after another. If any of the -commands return a nonzero exit status, libtool generally exits with an -error message. +Variables ending in @samp{_cmds} or @samp{_eval} contain a +semicolon-separated list of commands that are @code{eval}ed one after +another. If any of the commands return a nonzero exit status, libtool +generally exits with an error message. Variables ending in @samp{_spec} are @code{eval}ed before being used by libtool. diff --git a/libtool.m4 b/libtool.m4 index 9a81a9690..1dc570801 100644 --- a/libtool.m4 +++ b/libtool.m4 @@ -21,44 +21,25 @@ ## configuration script generated by Autoconf, you may include it under ## the same distribution terms that you use for the rest of that program. -# serial 19 AM_PROG_LIBTOOL +# serial 20 AM_PROG_LIBTOOL AC_DEFUN(AM_PROG_LIBTOOL, -[AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([AC_PROG_RANLIB]) -AC_REQUIRE([AC_PROG_CC]) -AC_REQUIRE([AM_PROG_LD]) -AC_REQUIRE([AM_PROG_NM]) -AC_REQUIRE([AC_PROG_LN_S]) - +[AC_REQUIRE([AM_ENABLE_SHARED])dnl +AC_REQUIRE([AM_ENABLE_STATIC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_RANLIB])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AM_PROG_LD])dnl +AC_REQUIRE([AM_PROG_NM])dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +dnl # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL) - -dnl Allow the --disable-shared flag to stop us from building shared libs. -AC_ARG_ENABLE(shared, -[ --enable-shared build shared libraries [default=yes]], -[if test "$enableval" = no; then - libtool_enable_shared=no -else - libtool_enable_shared=yes -fi]) -test -n "$libtool_enable_shared" && enable_shared="$libtool_enable_shared" -libtool_shared= -test "$enable_shared" = no && libtool_shared=" --disable-shared" +AC_SUBST(LIBTOOL)dnl -dnl Allow the --disable-static flag to stop us from building static libs. -AC_ARG_ENABLE(static, -[ --enable-static build static libraries [default=yes]], -[if test "$enableval" = no; then - libtool_enable_static=no -else - libtool_enable_static=yes -fi]) -test -n "$libtool_enable_static" && enable_static="$libtool_enable_static" -libtool_static= -test "$enable_static" = no && libtool_static=" --disable-static" - -libtool_flags="$libtool_shared$libtool_static" +# Check for any special flags to pass to ltconfig. +libtool_flags= +test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" +test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" test "$silent" = yes && libtool_flags="$libtool_flags --silent" test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" @@ -99,6 +80,51 @@ $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ || AC_MSG_ERROR([libtool configure failed]) ]) +# AM_ENABLE_SHARED - implement the --enable-shared flag +# Usage: AM_ENABLE_SHARED[(DEFAULT)] +# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to +# `yes'. +AC_DEFUN(AM_ENABLE_SHARED, +[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE(shared, +changequote(<<, >>)dnl +<< --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT], +changequote([, ])dnl +[if test "$enableval" = no; then + enable_shared=no +else + enable_shared=yes +fi], +enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl +]) + +# AM_DISABLE_SHARED - set the default shared flag to --disable-static +AC_DEFUN(AM_DISABLE_SHARED, +[AM_ENABLE_SHARED(no)]) + +# AM_DISABLE_STATIC - set the default static flag to --disable-static +AC_DEFUN(AM_DISABLE_STATIC, +[AM_ENABLE_STATIC(no)]) + +# AM_ENABLE_STATIC - implement the --enable-static flag +# Usage: AM_ENABLE_STATIC[(DEFAULT)] +# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to +# `yes'. +AC_DEFUN(AM_ENABLE_STATIC, +[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE(static, +changequote(<<, >>)dnl +<< --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT], +changequote([, ])dnl +[if test "$enableval" = no; then + enable_static=no +else + enable_static=yes +fi], +enable_static=AM_ENABLE_STATIC_DEFAULT)dnl +]) + + # AM_PROG_LD - find the path to the GNU or non-GNU linker AC_DEFUN(AM_PROG_LD, [AC_ARG_WITH(gnu-ld, diff --git a/libtool.spec b/libtool.spec index 2787e0f33..29e2825d4 100644 --- a/libtool.spec +++ b/libtool.spec @@ -2,7 +2,7 @@ Summary: GNU Libtool - shared library support for source packages # $Format: "Name: $Project$"$ Name: libtool # $Format: "Version: $ProjectMajorVersion$"$ -Version: 1.0j +Version: 1.1 Release: 1 Copyright: GPL Group: Development/Build diff --git a/ltconfig.in b/ltconfig.in index 4277c3e7a..972082922 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -58,7 +58,7 @@ fi Xsed='sed -e s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' -# Same as above, but don't quote variable references. +# Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # The name of this program. @@ -127,7 +127,7 @@ Generate a system-specific libtool script. --help display this help and exit --no-verify do not verify that HOST is a valid host type --quiet same as \`--silent' - --silent don't print informational messages + --silent do not print informational messages --srcdir=DIR find \`config.guess' in DIR --version output version information and exit --with-gcc assume that the GNU C compiler will be used @@ -296,10 +296,10 @@ else host_alias=$host fi -# Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts. -case "$host" in -*-*-linux-gnu*) ;; -*-*-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` +# Transform linux* to *-*-linux-gnu*, to support old configure scripts. +case "$host_os" in +linux-gnu*) ;; +linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` esac host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` @@ -441,14 +441,12 @@ compiler="$2" echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 pic_flag= -profile_flag_pattern= special_shlib_compile_flags= wl= link_static_flag= no_builtin_flag= if test "$with_gcc" = yes; then - profile_flag_pattern='-pg?' wl='-Wl,' link_static_flag='-static' no_builtin_flag=' -fno-builtin' @@ -544,7 +542,7 @@ if test -n "$pic_flag"; then # Append any errors to the config.log. cat conftest.err 1>&5 - # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also + # On HP-UX, the stripped-down bundled CC does not accept +Z, but also # reports no error. So, we need to grep stderr for (Bundled). if grep '(Bundled)' conftest.err >/dev/null; then echo "$ac_t"no 1>&6 @@ -623,7 +621,7 @@ if test -z "$LD"; then test -z "$LD" && LD="$ac_prog" ;; "") - # If it fails, then pretend we aren't using GCC. + # If it fails, then pretend we are not using GCC. ac_prog=ld ;; *) @@ -670,7 +668,7 @@ if test -z "$LD"; then fi fi -# Check to see if it really is or isn't GNU ld. +# Check to see if it really is or is not GNU ld. echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then @@ -684,6 +682,7 @@ echo "$ac_t$with_gnu_ld" 1>&6 echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 allow_undefined_flag= +no_undefined_flag= archive_cmds= old_archive_from_new_cmds= export_dynamic_flag_spec= @@ -751,7 +750,7 @@ else # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o - # doesn't break anything, and helps significantly (at the cost of a little + # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib$libobjs /usr/lib/c++rt0.o' @@ -761,7 +760,7 @@ else hardcode_shlibpath_var=no ;; - # Unfortunately, older versions of FreeBSD 2 don't have this feature. + # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_direct=yes @@ -794,11 +793,10 @@ else export_dynamic_flag_spec='${wl}-E' ;; -# FIXME: reimplement IRIX shared libraries. -# irix5* | irix6*) -# archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs' -# hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' -# ;; + irix5* | irix6*) + archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + ;; netbsd*) # Tested with NetBSD 1.2 ld @@ -836,7 +834,8 @@ else ;; solaris2*) - archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs' + no_undefined_flag=' -z text' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no @@ -1045,7 +1044,7 @@ else fi $rm conftest* -# Don't use the global_symbol_pipe unless it works. +# Do not use the global_symbol_pipe unless it works. echo "$ac_t$pipe_works" 1>&6 test "$pipe_works" = yes || global_symbol_pipe= @@ -1069,7 +1068,7 @@ if test -n "$hardcode_libdir_flag_spec" || \ elif test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" != yes; then - # We can't hardcode anything. + # We cannot hardcode anything. hardcode_action=unsupported else # We can only hardcode existing directories. @@ -1228,12 +1227,6 @@ esac echo "$ac_t$dynamic_linker" test "$dynamic_linker" = no && can_build_shared=no -# FIXME add checks for striplib and old_striplib here. -# strip -x works for most platforms, though not for static libraries on NetBSD -# HP-UX requires "-r" for library stripping -striplib= -old_striplib= - # Report the final consequences. echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 @@ -1279,11 +1272,11 @@ ltecho="$echo" for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \ link_static_flag no_builtin_flag export_dynamic_flag_spec \ - profile_flag_pattern libname_spec library_names_spec soname_spec RANLIB \ + libname_spec library_names_spec soname_spec RANLIB \ old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \ - allow_undefined_flag finish_cmds finish_eval global_symbol_pipe \ - striplib old_striplib \ + allow_undefined_flag no_undefined_flag \ + finish_cmds finish_eval global_symbol_pipe \ hardcode_libdir_flag_spec hardcode_libdir_separator; do case "$var" in @@ -1326,7 +1319,7 @@ Xsed="sed -e s/^X//" # if CDPATH is set. if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi -# An echo program that doesn't interpret backslashes. +# An echo program that does not interpret backslashes. echo="$ltecho" # The version of $progname that generated this script. @@ -1382,9 +1375,6 @@ no_builtin_flag="$no_builtin_flag" # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec="$export_dynamic_flag_spec" -# Pattern to match compiler flags for creating libNAME_p libraries: -profile_flag_pattern="$profile_flag_pattern" - # Library versioning type. version_type=$version_type @@ -1415,6 +1405,9 @@ postuninstall_cmds="$postuninstall_cmds" # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag="$allow_undefined_flag" +# Flag that forces no undefined symbols. +no_undefined_flag="$no_undefined_flag" + # Commands used to finish a libtool library installation in a directory. finish_cmds="$finish_cmds" @@ -1424,10 +1417,6 @@ finish_eval="$finish_eval" # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe="$global_symbol_pipe" -# How to strip a library file. -striplib="$striplib" -old_striplib="$old_striplib" - # This is the shared library runtime path variable. runpath_var=$runpath_var diff --git a/ltmain.in b/ltmain.in index d82d37283..839524d64 100644 --- a/ltmain.in +++ b/ltmain.in @@ -269,6 +269,9 @@ if test -z "$show_help"; then # Recognize several different file suffixes. xform='[cCFSfms]' case "$libobj" in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; @@ -342,8 +345,8 @@ if test -z "$show_help"; then fi fi - # Create an invalid libtool object if no PIC, so that we don't accidentally - # link it into a program. + # Create an invalid libtool object if no PIC, so that we do not + # accidentally link it into a program. if test "$build_libtool_libs" != yes; then $show "echo timestamp > $libobj" $run eval "echo timestamp > \$libobj" || exit $? @@ -735,7 +738,7 @@ if test -z "$show_help"; then finalize_shlibpath="$finalize_shlibpath$libdir:" finalize_command="$finalize_command -l$name" else - # We can't seem to hardcode it, guess we'll fake it. + # We cannot seem to hardcode it, guess we'll fake it. finalize_command="$finalize_command -L$libdir -l$name" fi else @@ -982,8 +985,8 @@ if test -z "$show_help"; then build_old_libs=yes fi else - # Clear the flag. - allow_undefined_flag= + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" fi if test "$build_libtool_libs" = yes; then @@ -1340,7 +1343,12 @@ EOF if test -d $objdir; then : else $show "$mkdir $objdir" - $run $mkdir $objdir || exit $? + $run $mkdir $objdir + status=$? + if test $status -eq 0 || test -d $objdir; then : + else + exit $status + fi fi if test -n "$shlibpath_var"; then @@ -1371,7 +1379,7 @@ EOF finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi - if test -n "$runpath_var"; then + if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do @@ -1788,12 +1796,6 @@ EOF $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? test "X$dlname" = "X$realname" && dlname= - # Support stripping libraries. - if test -n "$stripme" && test -n "$striplib"; then - $show "$striplib $destdir/$realname" - $run $striplib $destdir/$realname || exit $? - fi - if test $# -gt 0; then # Delete the old symlinks. rmcmd="$rm" @@ -1957,12 +1959,6 @@ EOF $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? - # Support stripping libraries. - if test -n "$stripme" && test -n "$old_striplib"; then - $show "$old_striplib $oldlib" - $run $old_striplib $oldlib || exit $? - fi - # Do each command in the postinstall commands. cmds=`eval \\$echo \"$old_postinstall_cmds\"` IFS="${IFS= }"; save_ifs="$IFS"; IFS=';' diff --git a/tests/ChangeLog b/tests/ChangeLog index 9497982d0..9cda708ba 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +Sat Feb 7 10:52:55 1998 Gordon Matzigkeit + + * suffix.test (extensions): Added GNAT (GNU Ada Translator) + suffices, `.ada', `.ads', `.adb'. From Samuel Tardieu. + Fri Jan 23 01:28:06 1998 Gordon Matzigkeit * Makefile.am (TESTS_ENVIRONMENT): Export some important @@ -182,7 +187,7 @@ Fri Jan 3 23:15:22 1997 Gordon Matzigkeit Thu Jan 2 13:03:41 1997 Gordon Matzigkeit * suffix.test: New test to guarantee that libtool compile - recognizes valid source file suffixes. + recognizes valid source file suffices. Sun Dec 8 14:43:15 1996 Gordon Matzigkeit diff --git a/tests/suffix.test b/tests/suffix.test index 86bfc63d4..321fff1bb 100755 --- a/tests/suffix.test +++ b/tests/suffix.test @@ -1,8 +1,9 @@ #! /bin/sh # suffix.test - check that libtool knows how to transform source suffices. -# Extensions taken from the ones that Automake recognizes, plus Objective C. -extensions="C F S asm c c++ cc cpp cxx f f90 for m s" +# Extensions taken from the ones that Automake recognizes, plus Objective C, +# and GNU Ada. +extensions="C F S ada ads adb asm c c++ cc cpp cxx f f90 for m s" bad_names="foo." # Test script header.