The attached patch allows compilers without unistd.h to generate
executables on windows 32 and 64-bit. This may not be the desired
version since it will be active on at least the MINGW host. On the
other hand, MINGW will support the code so it may not be a big deal.

Note: The relevant hunks of the patch are 2, 3, and 4.

Chris
Index: libltdl/config/ltmain.m4sh
===================================================================
RCS file: /sources/libtool/libtool/libltdl/config/ltmain.m4sh,v
retrieving revision 1.71
diff -u -r1.71 ltmain.m4sh
--- libltdl/config/ltmain.m4sh	25 Mar 2007 12:12:42 -0000	1.71
+++ libltdl/config/ltmain.m4sh	3 Apr 2007 18:29:55 -0000
@@ -5485,7 +5485,7 @@
 
 	# Create links to the real library.
 	for linkname in $linknames; do
-	  if test "$realname" != "$linkname"; then
+	  if test "$realname" != "$linkname" && ! -e "$output_objdir/$linkname";then
 	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
 	  fi
 	done
@@ -5961,7 +5961,12 @@
 	    cat >> $cwrappersource<<"EOF"
 #include <stdio.h>
 #include <stdlib.h>
-#include <unistd.h>
+#if defined(_WIN32) || defined(_WIN64)
+# include <direct.h>
+# define getcwd(a,b) _getcwd(a,b)
+#else
+# include <unistd.h>
+#endif
 #include <malloc.h>
 #include <stdarg.h>
 #include <assert.h>
@@ -5982,8 +5987,8 @@
 # define PATH_SEPARATOR ':'
 #endif
 
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
+#if defined (_WIN32) || defined (_WIN64) || defined (__MSDOS__) || \
+  defined (__DJGPP__) || defined (__OS2__)
 # define HAVE_DOS_BASED_FILE_SYSTEM
 # ifndef DIR_SEPARATOR_2
 #  define DIR_SEPARATOR_2 '\\'
@@ -6134,7 +6139,11 @@
 #if defined (S_IXGRP)
        ((st.st_mode & S_IXGRP) == S_IXGRP) ||
 #endif
+#if defined (S_IXUSR)
        ((st.st_mode & S_IXUSR) == S_IXUSR))
+#else
+       1)
+#endif
       )
     return 1;
   else
@@ -6591,6 +6600,11 @@
 	  do
 	    last_oldobj=$obj
 	  done
+      if test "x$with_msvc_ld" = "xyes";then
+        oldobjs=" $last_oldobj"
+        func_show_eval "$old_archive_cmds"
+        objlist=" $oldlib"
+      fi
 	  for obj in $save_oldobjs
 	  do
 	    oldobjs="$objlist $obj"
@@ -6607,7 +6621,11 @@
 	      fi
 	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
 	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-	      objlist=
+          if test "x$with_msvc_ld" = "xyes";then
+            objlist=" $oldlib"
+          else
+            objlist=
+          fi
 	    fi
 	  done
 	  RANLIB=$save_RANLIB
_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool

Reply via email to