]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* ltmain.in (generate dlsyms): Backport of func_generate_dlsyms
authorCharles Wilson <cygwin@cwilson.fastmail.fm>
Fri, 25 Nov 2005 18:34:36 +0000 (18:34 +0000)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Fri, 25 Nov 2005 18:34:36 +0000 (18:34 +0000)
fixes from HEAD.

ChangeLog
ltmain.in

index fea58e7aa06de3e11f71f1e4e331c27ac66ab52f..4d6140bb7ce9edc890cfef79a3afc3d12c1c8b9a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-11-25  Charles Wilson  <cygwin@cwilson.fastmail.fm>,
+           Peter Ekberg  <peda@lysator.liu.se>,
+           Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+       * ltmain.in (generate dlsyms): Backport of func_generate_dlsyms
+       fixes from HEAD.
+
 2005-11-25  Charles Wilson  <cygwin@cwilson.fastmail.fm>
 
        * ltmain.in (link mode): add foo/bin for every foo/lib in
index 44faae60984155701f5daf89eb32437478ad7c38..39efed73abb154b3fd09f53f61cc5ce9146ff725 100644 (file)
--- a/ltmain.in
+++ b/ltmain.in
@@ -4428,10 +4428,22 @@ extern \"C\" {
              export_symbols="$output_objdir/$outputname.exp"
              $run $rm $export_symbols
              $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+              case $host in
+              *cygwin* | *mingw* )
+               $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+               $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+                ;;
+              esac
            else
-             $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+             $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
              $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
              $run eval 'mv "$nlist"T "$nlist"'
+              case $host in
+              *cygwin* | *mingw* )
+               $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+               $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+                ;;
+              esac
            fi
          fi
 
@@ -4556,8 +4568,21 @@ static const void *lt_preloaded_setup() {
          $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
 
          # Transform the symbol file into the correct name.
-         compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+          case $host in
+          *cygwin* | *mingw* )
+            if test -f "$output_objdir/${outputname}.def" ; then
+              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
+              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
+            else
+              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+             fi
+            ;;
+          * )
+            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+            ;;
+          esac
          ;;
        *)
          $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2