From: Gordon Matzigkeit Date: Thu, 27 Nov 1997 16:57:00 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: release-1-0~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5368cd4ce3c754f2d8a5fe4c4eb1280a1133553a;p=thirdparty%2Flibtool.git *** empty log message *** --- diff --git a/ChangeLog b/ChangeLog index 2645e7fdd..36890302d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ Thu Nov 27 08:53:05 1997 Gordon Matzigkeit + * Makefile.am (maintainer-checkin, maintainer-release): New + commands to reap the full benefit of using PRCS to maintain + libtool version numbers. + * ltconfig.in, ltmain.in (global_symbol_pipe): Explicitly cast all addresses to __ptr_t. This fixes a bug due to a strict IRIX compiler. Suggested by Kaveh R. Ghazi. diff --git a/Makefile.am b/Makefile.am index 1023c0016..acef55e1b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -96,26 +96,29 @@ $(srcdir)/demo/aclocal.m4: demo/configure.in demo/acinclude.m4 # maintainer-checkin whenever I feel like it, then I run a maintainer-release # after changing the project major version number in my project file. # -# This works because of the special `$Format ...$' string I have in my +# This works because of the special `$Format: ...$' string I have in my # `configure.in'. PRCS = prcs +.PHONY: maintainer-checkin maintainer-check-versions maintainer-release maintainer-checkin: cd $(top_srcdir) && $(PRCS) checkin $(PACKAGE) -maintainer-release: distcheck - cd $(top_srcdir) && $(PRCS) checkin $(PACKAGE) - @newver=`grep '^(Parent-Version[ ]' $(srcdir)/$(PACKAGE).prj | \ +maintainer-check-versions: + @newver=`grep '^(Project-Version[ ]' $(srcdir)/$(PACKAGE).prj | \ sed 's/^.*[ ]\+\([^ ]\+\)[ ]\+[0-9]\+).*$$/\1/'`; \ if test "X$$newver" = "X$(VERSION)"; then \ - echo "Parent-Version \`$$newver' is the same as the released version." 1>&2; \ - echo "You must change the Project-Version major number in $(top_srcdir)/$(PACKAGE).prj before releasing." 1>&2; \ + echo "Project-Version major \`$$newver' is the same as the released version." 1>&2; \ + echo "You must change Project-Version in $(top_srcdir)/$(PACKAGE).prj before releasing." 1>&2; \ exit 1; \ - fi; \ - echo "============================="; \ + fi + +maintainer-release: maintainer-check-versions distcheck + cd $(top_srcdir) && $(PRCS) checkin $(PACKAGE) + cd $(top_srcdir) && $(PRCS) rekey $(PACKAGE) configure.in + echo "============================="; \ echo "Congratulations! $(PACKAGE)-$(VERSION) is now complete."; \ echo; \ echo "Distribute \`$(PACKAGE)-$(VERSION).tar.gz' to the masses, and start thinking about"; \ - echo "how you're going to tackle $(PACKAGE)-$$newver!"; \ + echo "the next development cycle."; \ echo "=============================" - cd $(top_srcdir) && $(PRCS) rekey $(PACKAGE) configure.in diff --git a/NEWS b/NEWS index 4e03685ff..d24308204 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,8 @@ NEWS - list of user-visible changes between releases of GNU Libtool +New in 1.0x - 1997-XX-XX, Gordon Matzigkeit: +* Bug fixes. + New in 1.0f - 1997-11-08, Gordon Matzigkeit: * Bug fixes. * New `-all-static' flag to prevent any dynamic linking. The regular diff --git a/TODO b/TODO index fc0f53ba8..b4dd0438a 100644 --- a/TODO +++ b/TODO @@ -24,6 +24,8 @@ so I got to remove it for now. However, the manual does not explain what the debugging difficulty is, and so, I wonder what problems I will meet.'' +* Document the change from `-allow-undefined' to `-no-undefined'. + * Some packages, such as GIMP, choose to put a note about `--disable-shared' in their README: @@ -59,6 +61,10 @@ underscore; not starting with a digit) are exported." 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. + * 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 diff --git a/configure.in b/configure.in index b018572e0..0ef2f0b77 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ dnl `Makefile.am.' It uses PRCS, which is like CVS, except better... get dnl `prcs.README' from your nearest GNU mirror. dnl $Format: "AM_INIT_AUTOMAKE($Project$,$ProjectMajorVersion$)"$ -AM_INIT_AUTOMAKE(libtool,1.2b) +AM_INIT_AUTOMAKE(libtool,1.2c) pkgdatadir='${datadir}/libtool' AC_SUBST(pkgdatadir) diff --git a/ltconfig.in b/ltconfig.in index 8415541d6..cd24f4bb2 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -26,8 +26,34 @@ # A lot of this script is taken from autoconf-2.10. +echo=echo +if test "X`$echo '\t'`" = 'X\t'; then : +else + # The Solaris and AIX default echo program unquotes backslashes. + # This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # So, we emulate echo with printf '%s\n' + echo='printf %s\n' + if test "X`$echo '\t'`" = 'X\t'; then : + else + # Oops. We have no working printf. Try to find a not-so-buggy echo. + echo=echo + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + save_PATH="$PATH" + PATH="$PATH":/usr/ucb + for dir in $PATH; do + if test -f $dir/echo && test "X`$dir/echo '\t'`" = 'X\t'; then + echo="$dir/echo" + break + fi + done + IFS="$save_ifs" + PATH="$save_PATH" + fi +fi + # The name of this program. -progname=`echo "$0" | sed 's%^.*/%%'` +progname=`$echo "$0" | sed 's%^.*/%%'` # Constants: PROGRAM=ltconfig @@ -668,12 +694,14 @@ if test "$with_gnu_ld" = yes; then case "$host_os" in sunos4*) ld_shlibs=yes + archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs' hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs' runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes @@ -684,7 +712,6 @@ if test "$with_gnu_ld" = yes; then esac if test "$ld_shlibs" = yes; then - archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs$deplibs' hardcode_libdir_flag_spec='${wl}-rpath $wl$libdir' export_dynamic_flag_spec='${wl}-export-dynamic' fi @@ -693,7 +720,7 @@ else case "$host_os" in aix3*) allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE$deplibs;$AR cru $lib $objdir/$soname' + archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$LD -o $objdir/$soname$libobjs -bE:$lib.exp -T512 -H512 -bM:SRE;$AR cru $lib $objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes @@ -706,7 +733,7 @@ else aix4*) allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry$deplibs;$AR cru $lib $objdir/$soname' + archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' > $lib.exp;$CC -o $objdir/$soname$libobjs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry;$AR cru $lib $objdir/$soname' hardcode_direct=yes hardcode_minus_L=yes ;; @@ -716,7 +743,7 @@ else # doesn't break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs /usr/lib/c++rt0.o' + archive_cmds='$LD -Bshareable -o $lib$libobjs /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_minus_L=yes @@ -725,7 +752,7 @@ else # Unfortunately, older versions of FreeBSD 2 don't have this feature. freebsd2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no @@ -733,7 +760,7 @@ else # FreeBSD 3, at last, uses gcc -shared to do shared libraries. freebsd3*) - archive_cmds='$CC -shared -o $lib$libobjs$deplibs' + archive_cmds='$CC -shared -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_minus_L=yes @@ -741,21 +768,23 @@ else ;; hpux9*) - archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs$deplibs;mv $objdir/$soname $lib' + archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;mv $objdir/$soname $lib' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' ;; hpux10*) - archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs$deplibs' + archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_direct=yes hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' ;; irix5* | irix6*) - archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs$deplibs' + archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ;; @@ -768,7 +797,7 @@ else ;; openbsd*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' + archive_cmds='$LD -Bshareable -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no @@ -778,7 +807,7 @@ else hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported - archive_cmds='echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;echo DATA >> $objdir/$libname.def;echo " SINGLE NONSHARED" >> $objdir/$libname.def;echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def' + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def;$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def;$echo DATA >> $objdir/$libname.def;$echo " SINGLE NONSHARED" >> $objdir/$libname.def;$echo EXPORTS >> $objdir/$libname.def;emxexp$libobjs >> $objdir/$libname.def;$CC -Zdll -Zcrtdll -o $lib$libobjs $objdir/$libname.def' old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' ;; @@ -790,12 +819,12 @@ else ;; sco3.2v5*) - archive_cmds='$LD -G -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -o $lib$libobjs' hardcode_direct=yes ;; solaris2*) - archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs' hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no ;; @@ -809,7 +838,7 @@ else ;; uts4*) - archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs' + archive_cmds='$LD -G -h $soname -o $lib$libobjs' hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=no hardcode_minus_L=no @@ -950,7 +979,7 @@ struct { dld_preloaded_symbols[] = { EOF - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> conftest.c + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c cat <<\EOF >> conftest.c {0}, }; @@ -1223,10 +1252,10 @@ for var in old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ old_postinstall_cmds | old_postuninstall_cmds | archive_cmds | \ postinstall_cmds | postuninstall_cmds | finish_cmds) # Double-quote double-evaled strings. - eval "$var=\`echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`" + eval "$var=\`$echo \"\$$var\" | sed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`" ;; *) - eval "$var=\`echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" + eval "$var=\`$echo \"\$$var\" | sed \"\$sed_quote_subst\"\`" ;; esac done @@ -1405,7 +1434,7 @@ EOF ;; *) cat <> $ofile # Find the path to this script. -thisdir=\`echo "\$0" | sed -e 's%/[^/]*\$%%'\` +thisdir=\`$echo "\$0" | sed -e 's%/[^/]*\$%%'\` test "X\$0" = "X\$thisdir" && thisdir=. # Execute the libtool backend. diff --git a/ltmain.in b/ltmain.in index 43e3ef1e5..cfecfd471 100644 --- a/ltmain.in +++ b/ltmain.in @@ -22,8 +22,7 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -#FIXME: echo=echo -echo='printf %s\n' +echo=echo if test "X`$echo '\t'`" = 'X\t'; then : else # The Solaris and AIX default echo program unquotes backslashes. @@ -76,14 +75,14 @@ if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi if test "${LANG+set}" = set; then LANG=C; export LANG; fi if test "$LTCONFIG_VERSION" != "$VERSION"; then - $echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$progname: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - $echo "$progname: not configured to build any kind of library" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "$progname: not configured to build any kind of library" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi @@ -131,7 +130,7 @@ do ;; --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION" + echo "$PROGRAM (GNU $PACKAGE) $VERSION" exit 0 ;; @@ -140,16 +139,16 @@ do ;; --features) - $echo "host: $host" + echo "host: $host" if test "$build_libtool_libs" = yes; then - $echo "enable shared libraries" + echo "enable shared libraries" else - $echo "disable shared libraries" + echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - $echo "enable static libraries" + echo "enable static libraries" else - $echo "disable static libraries" + echo "disable static libraries" fi exit 0 ;; @@ -369,8 +368,8 @@ if test -z "$show_help"; then # Create an invalid libtool object if no PIC, so that we don't accidentally # link it into a program. if test "$build_libtool_libs" != yes; then - $show "$echo timestamp > $libobj" - $run eval "\$echo timestamp > \$libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > \$libobj" || exit $? fi exit 0 @@ -380,7 +379,7 @@ if test -z "$show_help"; then link) progname="$progname: link" CC="$nonopt" - allow_undefined=no + allow_undefined=yes compile_command="$CC" finalize_command="$CC" @@ -468,7 +467,8 @@ if test -z "$show_help"; then ;; -allow-undefined) - allow_undefined=yes + # FIXME: remove this flag sometime in the future. + $echo "$progname: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; @@ -513,6 +513,11 @@ if test -z "$show_help"; then -l*) deplibs="$deplibs $arg" ;; + -no-undefined) + allow_undefined=no + continue + ;; + -o) prev=output ;; -rpath) @@ -778,8 +783,10 @@ if test -z "$show_help"; then esac # Now actually substitute the argument into the commands. - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi done if test -n "$prev"; then @@ -943,7 +950,7 @@ if test -z "$show_help"; then *) $echo "$progname: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 ;; esac @@ -1082,8 +1089,8 @@ if test -z "$show_help"; then if test "$build_libtool_libs" != yes; then # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. - $show "$echo timestamp > $libobj" - $run eval "\$echo timestamp > $libobj" || exit $? + $show "echo timestamp > $libobj" + $run eval "echo timestamp > $libobj" || exit $? exit 0 fi @@ -1203,7 +1210,7 @@ if test -z "$show_help"; then if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" wcout=`wc "$nlist" 2>/dev/null` - count=`$echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` + count=`echo "$wcout" | sed 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` (test "$count" -ge 0) 2>/dev/null || count=-1 else $rm "$nlist"T @@ -1230,7 +1237,7 @@ EOF if test -f "$nlist"; then sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$objdir/$dlsyms" else - $echo '/* NONE */' >> "$objdir/$dlsyms" + echo '/* NONE */' >> "$objdir/$dlsyms" EOF fi @@ -1258,7 +1265,7 @@ dld_preloaded_symbols[] = EOF if test -f "$nlist"; then - sed 's/^\(.*\) \(.*\)$/ {"\1", \&\2},/' < "$nlist" >> "$objdir/$dlsyms" + sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" fi cat <<\EOF >> "$objdir/$dlsyms" @@ -1272,7 +1279,7 @@ EOF ;; *) - echo "$progname: unknown suffix for \`$dlsyms'" 1>&2 + $echo "$progname: unknown suffix for \`$dlsyms'" 1>&2 exit 1 ;; esac @@ -1475,7 +1482,7 @@ EOF # The program doesn't exist. \$echo "\$0: error: \$progdir/\$program does not exist" 1>&2 \$echo "This script is just a wrapper for \$program." 1>&2 - \$echo "See the $PACKAGE documentation for more information." 1>&2 + echo "See the $PACKAGE documentation for more information." 1>&2 exit 1 fi fi @@ -1995,11 +2002,11 @@ EOF done fi - $echo "To link against installed libraries in LIBDIR, users may have to:" + echo "To link against installed libraries in LIBDIR, users may have to:" if test -n "$shlibpath_var"; then - $echo " - add LIBDIR to their \`$shlibpath_var' environment variable" + echo " - add LIBDIR to their \`$shlibpath_var' environment variable" fi - $echo " - use the \`-LLIBDIR' linker flag" + echo " - use the \`-LLIBDIR' linker flag" exit 0 ;; @@ -2341,12 +2348,12 @@ a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all - -allow-undefined allow a libtool library to reference undefined symbols -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to dld_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME + -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -rpath LIBDIR the created library will eventually be installed in LIBDIR -static do not do any dynamic linking of libtool libraries @@ -2392,7 +2399,7 @@ EOF ;; esac -$echo +echo $echo "Try \`$progname --help' for more information about other modes." exit 0