Patch from Peter Hartley to allow Cross-compiling to mingw32:

- MinGW doesn't have struct timespec, so udf_time.c doesn't compile
   (changes lib/udf/udf_time.c, configure.ac, config.h.in)

 - The configure test for bitfield ordering uses AC_TRY_RUN and thus
   doesn't work when cross-compiling; use sneakiness to try and
   determine it at compile time, falling back to the existing runtime
   check if the sneakiness doesn't work
   (changes configure.ac; tested on x86_64-linux-gnu and i586-mingw32
   which are bf_lsbf=1, plus sparc64-linux-gnu which is bf_lsbf=0)

 - The configure test for "extern long timezone" needlessly uses
   AC_TRY_RUN when in fact AC_LINK_IFELSE is all we need to know, and
   that latter works when cross-compiling
   (changes configure.ac)

 - MinGW sys/stat.h doesn't have the *GRP or *OTH macros, nor S_IFLNK
   or S_IFSOCK, nor S_ISUID etc
   (changes lib/udf/udf.c and lib/iso9660/xa.c)

 - MinGW doesn't have <sys/wait.h>, so even the header-inclusion bit
   of the Linux driver doesn't compile unless it's moved inside the
   "ifdef HAVE_LINUX_CDROM"
   (changes lib/driver/gnu_linux.c)

 - Because the man pages cd-info.1 etc depend on the binaries themselves
   (for help2man reasons), the configure options --without-cd-info etc
   don't actually stop them being compiled. Fixed by only depending on
   man pages for programs that are actually built, which also stops
   the installation of man pages of programs which aren't themselves
   installed
   (changes src/Makefile.am)
This commit is contained in:
rocky
2008-04-24 07:28:00 +00:00
parent 8deec6fcc9
commit 62d7731703
8 changed files with 104 additions and 22 deletions

View File

@@ -1,5 +1,5 @@
/*
$Id: udf_time.c,v 1.9 2008/04/18 16:02:10 karl Exp $
$Id: udf_time.c,v 1.10 2008/04/24 07:28:00 rocky Exp $
Copyright (C) 2005, 2008 Rocky Bernstein <rocky@gnu.org>
Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
@@ -148,7 +148,7 @@ udf_stamp_to_time(time_t *dest, long int *dest_usec,
return dest;
}
#ifdef HAVE_STRUCT_TIMESPEC
/*!
Convert a UDF timestamp to a time_t. If microseconds are desired,
use dest_usec. The return value is the same as dest. */
@@ -206,6 +206,7 @@ udf_timespec_to_stamp(const struct timespec ts, udf_timestamp_t *dest)
- (dest->hundreds_of_microseconds * 100) );
return dest;
}
#endif
/*!
Return the modification time of the file.