+Wed Aug 20 10:51:02 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+
+ * Makefile.am ($(srcdir)/ltconfig): Use lineno.
+
+ * configure.in: Add AM_PROG_AWK for lineno.
+
+ * lineno: New program to automatically put line numbers in
+ ltconfig.
+
+ * libtool.m4, ltconfig.in (AM_PROG_LD): Yet Another Rewrite, which
+ incorporates the results of `gcc -print-program-name=ld'.
+ Suggested by Alexandre Oliva.
+
Thu Aug 14 09:30:47 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
* ltmain.sh.in: Accept `--quiet' and `--silent' flags to turn off
aclocal_macros = libtool.m4
+noinst_SCRIPTS = lineno
EXTRA_DIST = $(aclocal_macros) libtoolize.in ltconfig.in ltmain.sh.in \
libtool.spec libtool.prj
CLEANFILES = libtool libtoolize
# This way, they aren't regenerated after people configure the package.
$(srcdir)/ltconfig: ltconfig.in configure.in
CONFIG_FILES=ltconfig CONFIG_HEADERS= $(top_builddir)/config.status
+ AWK=@AWK@ $(top_srcdir)/lineno --delete ltconfig
chmod +x ltconfig
test "$(srcdir)" = . || mv ltconfig $(srcdir)/ltconfig
* Bug fixes.
* Full support for broken collect2 on AIX 3. Now, shared libraries
can be built with all working versions of GCC.
+* New rules for AM_PROG_LD to use gcc's -print-prog-name flag in order
+ to find ld, if possible.
* Deleted `dlname' mode. Dlopen applications should only use the
runtime search method described in (libtool)Finding the dlname.
* Experimental support for dynamically loaded modules, even on
+For next public release:
+************************
+
* Kenneth Albanowski suggests an `execute' mode, where the paths from
libtool libraries are extracted and put into shlibpath_var, then a
command is executed with the wrapped binary as argument.
Use *db | *dbx as triggers for this mode.
+* Document `execute' mode.
+
+In the future:
+**************
+
* Implement full multi-language support. Currently, this is only for
C++, but there are beginnings of this in the manual (Other Languages).
This includes writing libtool not to be so dependent on the compiler
basename of the library (or is the same size), then the library is
probably static.
-* A better check to detect broken collect2 on AIX, once the bug is
-fixed in GCC.
-
* Need to finalize the documentation, and give a specification of
`.la' files so that people can depend on their format. This also
needs to be done so that DLD uses a public interface to libtool
AM_PROG_NM
AC_PROG_LN_S
+dnl For lineno
+AC_PROG_AWK
+
AC_OUTPUT([Makefile doc/Makefile tests/Makefile])
# Local Variables:
## configuration script generated by Autoconf, you may include it under
## the same distribution terms that you use for the rest of that program.
-# serial 10 AM_PROG_LIBTOOL
+# serial 11 AM_PROG_LIBTOOL
AC_DEFUN(AM_PROG_LIBTOOL,
[AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_PROG_RANLIB])
[AC_ARG_WITH(gnu-ld,
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-if test "$with_gnu_ld" = yes; then
+AC_REQUIRE([AC_PROG_CC])
+ac_prog=ld
+if test "$ac_cv_prog_gcc" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ ac_prog=`($CC -print-prog-name=ld) 2>&5`
+ case "$ac_prog" in
+ # Accept absolute paths.
+ /*) ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
AC_MSG_CHECKING([for GNU ld])
else
AC_MSG_CHECKING([for non-GNU ld])
fi
AC_CACHE_VAL(ac_cv_path_LD,
-[case "$LD" in
+[LD=${LD-$ac_prog}
+case "$LD" in
/*)
ac_cv_path_LD="$LD" # Let the user override the test with a path.
;;
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/ld"; then
- ac_cv_path_LD="$ac_dir/ld"
+ if test -f "$ac_dir/$ac_prog"; then
+ ac_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" = yes && break
+ test "$with_gnu_ld" != no && break
else
test "$with_gnu_ld" != yes && break
fi
Release: 1
Copyright: GPL
Group: Development/Build
-Source: ftp://prep.ai.mit.edu/pub/gnu/libtool-1.1.tar.gz
+Source: ftp://prep.ai.mit.edu/pub/gnu/libtool-%{PACKAGE_VERSION}.tar.gz
BuildRoot: /tmp/libtool.root
%description
#! /bin/sh
# ltconfig - Create a system-specific libtool.
-# When updating this script, search for LINENO and fix line number refs.
# @configure_input@
# Copyright (C) 1996, 1997, Free Software Foundation, Inc.
# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
# Now see if the compiler is really GCC.
with_gcc=no
echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
- # LINENO
- echo "$progname:374: checking whether we are using GNU C" >&5
+ echo "$progname:@LINENO@: checking whether we are using GNU C" >&5
$rm conftest.c
cat > conftest.c <<EOF
yes;
#endif
EOF
- # LINENO
- if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:383: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:@LINENO@: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
with_gcc=yes
fi
$rm conftest.c
echo > conftest.c
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pic_flag -DPIC"
- # LINENO
- echo "$progname:483: checking if $compiler PIC flag $pic_flag works" >&5
- if { (eval echo $progname:484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
+ echo "$progname:@LINENO@: checking if $compiler PIC flag $pic_flag works" >&5
+ if { (eval echo $progname:@LINENO@: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
# Append any errors to the config.log.
cat conftest.err 1>&5
echo 'main(){return(0);}' > conftest.c
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $link_static_flag"
-# LINENO
-echo "$progname:526: checking if $compiler static flag $link_static_flag works" >&5
-if { (eval echo $progname:527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+echo "$progname:@LINENO@: checking if $compiler static flag $link_static_flag works" >&5
+if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
echo $ac_t "$link_static_flag" 1>&6
else
echo $ac_t none 1>&6
fi
fi
-if test "$with_gnu_ld" != yes || test -z "$LD"; then
- if test -z "$LD"; then
- if test "$with_gnu_ld" = yes; then
- echo $ac_n "checking for GNU ld... $ac_c" 1>&6
- else
- echo $ac_n "checking for non-GNU ld... $ac_c" 1>&6
- fi
-
+# Make sure LD is an absolute path.
+case "$LD" in
+/*) ;;
+*)
+ ac_prog=ld
+ if test "$with_gcc" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
+ echo "$progname:@LINENO@: checking for ld used by GCC" >&5
+ ac_prog=`($CC -print-prog-name=ld) 2>&5`
+ case "$ac_prog" in
+ # Accept absolute paths.
+ /*) ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+ elif test "$with_gnu_ld" = yes; then
+ echo $ac_n "checking for GNU ld... $ac_c" 1>&6
+ echo "$progname:@LINENO@: checking for GNU ld" >&5
+ else
+ echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+ echo "$progname:@LINENO@: checking for non-GNU ld" >&5
+ fi
+ LD=${LD-$ac_prog}
+ case "$LD" in
+ /*)
+ ac_cv_path_LD="$LD" # Let the user override the test with a path.
+ ;;
+ *)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/ld"; then
- LD="$ac_dir/ld"
+ if test -f "$ac_dir/$ac_prog"; then
+ LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" = yes && break
+ test "$with_gnu_ld" != no && break
else
test "$with_gnu_ld" != yes && break
fi
fi
done
IFS="$ac_save_ifs"
-
- if test -n "$LD"; then
- echo "$ac_t""$LD" 1>&6
- else
- echo "$ac_t""no" 1>&6
- fi
-
- if test -z "$LD"; then
- echo "$progname: error: no acceptable ld found in \$PATH" 1>&2
- exit 1
- fi
- fi
-
- echo $ac_n "checking whether we are using 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 </dev/null | egrep '(GNU ld|with BFD)' > /dev/null; then
- with_gnu_ld=yes
- fi
+ ;;
+ esac
echo $ac_t "$with_gnu_ld" 1>&6
-fi
+ ;;
+esac
# See if the linker supports building shared libraries.
echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
main(){nm_test_var='a';nm_test_func();return(0);}
EOF
-# LINENO
-echo "$progname:811: checking if global_symbol_pipe works" >&5
-if { (eval echo $progname:812: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
- # Now try to grab the symbols. LINENO
+echo "$progname:@LINENO@: checking if global_symbol_pipe works" >&5
+if { (eval echo $progname:@LINENO@: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then
+ # Now try to grab the symbols.
nlist=conftest.nm
- if { echo "$progname:815: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+ if { echo "$progname:@LINENO@: eval \"$NM conftest.o | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.o | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
save_CFLAGS="$CFLAGS"
LIBS='conftestm.o'
CFLAGS="$CFLAGS$no_builtin_flag"
- # LINENO
- if { (eval echo $progname:864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
pipe_works=yes
else
echo "$progname: failed program was:" >&5