]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
Merge branch 'master' into pr-msvc-support
authorPeter Rosin <peda@lysator.liu.se>
Wed, 9 Sep 2009 10:36:23 +0000 (12:36 +0200)
committerPeter Rosin <peda@lysator.liu.se>
Wed, 9 Sep 2009 10:36:23 +0000 (12:36 +0200)
1  2 
ChangeLog
Makefile.am
NEWS
doc/libtool.texi
libltdl/config/ltmain.m4sh
libltdl/m4/libtool.m4
tests/static.at

diff --cc ChangeLog
Simple merge
diff --cc Makefile.am
index cdd6984d689916933c8cdbc3777c3fa2815bfd0f,bdfad2ed67458c17137593d3a35d7511606f380c..dbd3718f35569d011f79b9d442a5554193241aec
@@@ -472,8 -472,8 +473,9 @@@ TESTSUITE_AT       = tests/testsuite.at 
                  tests/cwrapper.at \
                  tests/infer-tag.at \
                  tests/localization.at \
 +                tests/nocase.at \
                  tests/install.at \
+                 tests/versioning.at \
                  tests/destdir.at \
                  tests/old-m4-iface.at \
                  tests/am-subdir.at \
diff --cc NEWS
index e6bffd8d5136e389bd26a3c642136ce78b78ef30,c7d3016cc2228cd456b991eeb1386e83fac84c07..25d977730f28f230f13b1621d7bed1d225e70586
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -18,7 -21,9 +21,10 @@@ New in 2.2.8 2009-??-??: git version 2.
    - Improved support for 64bit Windows (mingw64).
    - Improved support for cegcc (Windows CE/PocketPC).
    - Support for GNU/kOpenSolaris (kopensolaris*-gnu).
+   - Initial support for compilers on BlueGene BG/L.
+   - Improved support for Atari FreeMiNT.
+   - With binutils 2.19.50+, shared libraries can be built on AIX.
 +  - Initial support for Microsoft Visual C w/o wrapper scripts.
  
  * Bug fixes:
  
index 624f414b3b00b7ae56a503ad22345e2d7ed5b41d,18b9a97aad39fc146179ef7a9ea717d8da1c70bd..610117edc8fdaf67040b5e970ac5c3c246586505
@@@ -5765,10 -5738,11 +5833,15 @@@ these commands, libtool will proceed t
  instead of @var{soname}.
  @end defvar
  
+ @defvar lock_old_archive_extraction
+ Set to @samp{yes} if the extraction of a static library requires locking
+ the library file.  This is required on Darwin.
+ @end defvar
 +@defvar archiver_list_spec
 +How to feed a file listing to the archiver.
 +@end defvar
 +
  @defvar build
  @defvarx build_alias
  @defvarx build_os
index 392145a4cf539b63244b274769fe7390f646feb5,4633ff21e5e4e9a8be2f58de1c30e80fb8a6b748..40ff9d38311f6718c8189a3d318dd0e1925ed46a
@@@ -2277,15 -2226,19 +2281,20 @@@ func_extract_an_archive (
      $opt_debug
      f_ex_an_ar_dir="$1"; shift
      f_ex_an_ar_oldlib="$1"
 -    if test "$lock_old_archive_extraction" = yes; then
 -      lockfile=$f_ex_an_ar_oldlib.lock
 -      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
 -      func_echo "Waiting for $lockfile to be removed"
 -      sleep 2
 +    if test "X$ar_extract_one_by_one" != "Xyes"; then
-       func_show_eval "(cd \$f_ex_an_ar_dir && $AR ${AR_XFLAGS}${AR_SEP}\"\$f_ex_an_ar_oldlib\")" 'exit $?'
++      func_show_eval "(cd \$f_ex_an_ar_dir && $AR ${AR_XFLAGS}${AR_SEP}\"\$f_ex_an_ar_oldlib\")" \
++                   'stat=$?; rm -f "$lockfile"; exit $stat'
 +    else
 +      $AR ${AR_TFLAGS}${AR_SEP}"$f_ex_an_ar_oldlib" | while read name
 +      do
-       func_show_eval "(cd \$f_ex_an_ar_dir && $AR ${AR_XFLAGS}${AR_SEP}\$name \"\$f_ex_an_ar_oldlib\")" 'exit $?'
++      func_show_eval "(cd \$f_ex_an_ar_dir && $AR ${AR_XFLAGS}${AR_SEP}\$name \"\$f_ex_an_ar_oldlib\")" \
++                     'stat=$?; rm -f "$lockfile"; exit $stat'
        done
      fi
 -    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
 -                 'stat=$?; rm -f "$lockfile"; exit $stat'
+     if test "$lock_old_archive_extraction" = yes; then
+       $opt_dry_run || rm -f "$lockfile"
+     fi
 -    if ($AR "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
 +    if ($AR ${AR_TFLAGS}${AR_SEP}"$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
       :
      else
        func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
index 2da617ec2f00bd25b7588e120c007e3bfc466eed,662a88b12abd61b6b3d277fadf045226874d37e8..1a2d7d4221b4ce28d0abcde294789544d35bbd02
@@@ -4730,11 -4680,16 +4812,16 @@@ _LT_EO
          # -berok will link without error, but may produce a broken library.
          _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
          _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-         # Exported symbols can be pulled into shared objects from archives
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+         if test "$with_gnu_ld" = yes; then
+           # We only use this code for GNU lds that support --whole-archive.
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+         else
+           # Exported symbols can be pulled into shared objects from archives
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+         fi
          _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
          # This is similar to how AIX traditionally builds its shared libraries.
 -        _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
 +        _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS$AR_SEP$output_objdir/$libname$release.a $output_objdir/$soname'
        fi
        fi
        ;;
@@@ -5776,77 -5662,29 +5852,78 @@@ if test "$_lt_caught_CXX_error" != yes
          ;;
  
        cygwin* | mingw* | pw32* | cegcc*)
 -        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
 -        # as there is no search path for DLLs.
 -        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
 -        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
 -        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 -        _LT_TAGVAR(always_export_symbols, $1)=no
 -        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
 -
 -        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
 -          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 -          # If the export-symbols file already is a .def file (1st line
 -          # is EXPORTS), use it as is; otherwise, prepend...
 -          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
 -          cp $export_symbols $output_objdir/$soname.def;
 -          else
 -          echo EXPORTS > $output_objdir/$soname.def;
 -          cat $export_symbols >> $output_objdir/$soname.def;
 -          fi~
 -          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 -        else
 -          _LT_TAGVAR(ld_shlibs, $1)=no
 -        fi
 -        ;;
 +      case $GXX,$cc_basename in
 +      ,cl* | no,cl*)
 +        # Native MSVC
 +        # hardcode_libdir_flag_spec is actually meaningless, as there is
 +        # no search path for DLLs.
 +        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
 +        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 +        _LT_TAGVAR(always_export_symbols, $1)=yes
 +        _LT_TAGVAR(file_list_spec, $1)='@'
 +        # Tell ltmain to make .lib files, not .a files.
 +        libext=lib
 +        # Tell ltmain to make .dll files, not .so files.
 +        shrext_cmds=".dll"
 +        # FIXME: Setting linknames here is a bad hack.
 +        _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -link -dll~linknames='
 +        _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
 +            $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
 +          else
 +            $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
 +          fi~
 +          $CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs @$output_objdir/$soname.exp -link -DLL~
 +          linknames='
 +        # The linker will not automatically build a static lib if we build a DLL.
 +        # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
 +        case $host_os in
 +        # Not needed on MinGW
 +          cygwin*) _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' ;;
 +        esac
 +        _LT_TAGVAR(dashL_envvar, $1)=LINK
 +        _LT_TAGVAR(dashL_envvar_spec, $1)='-LIBPATH:'
 +        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
 +        # Don't use ranlib
 +        _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
 +        _LT_TAGVAR(compile_tag, $1)=-TP
 +        _LT_TAGVAR(dashl_xform, $1)='s/\(.*\)/\1.lib/'
 +        _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
 +          case "$lt_outputfile" in
 +            *.[[eE][xX][eE]]) ;;
 +            *) lt_outputfile="$lt_outputfile.exe" ;;
 +          esac~
 +          if test -e "$lt_outputfile.manifest"; then
 +            mt -manifest "$lt_outputfile.manifest" -outputresource:"$lt_outputfile" || exit 1;
 +            $RM "$lt_outputfile.manifest";
 +          fi'
 +        ;;
 +      *)
 +        # g++
 +        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
 +        # as there is no search path for DLLs.
 +        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
++        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
 +        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 +        _LT_TAGVAR(always_export_symbols, $1)=no
 +        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
 +
 +        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
 +          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 +          # If the export-symbols file already is a .def file (1st line
 +          # is EXPORTS), use it as is; otherwise, prepend...
 +          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
 +            cp $export_symbols $output_objdir/$soname.def;
 +          else
 +            echo EXPORTS > $output_objdir/$soname.def;
 +            cat $export_symbols >> $output_objdir/$soname.def;
 +          fi~
 +          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 +        else
 +          _LT_TAGVAR(ld_shlibs, $1)=no
 +        fi
 +        ;;
 +      esac
 +      ;;
        darwin* | rhapsody*)
          _LT_DARWIN_LINKER_FEATURES($1)
        ;;
diff --cc tests/static.at
Simple merge