Index: libffi/README =================================================================== --- libffi.orig/README +++ libffi/README @@ -116,9 +116,13 @@ It's also possible to build libffi on Wi Microsoft's Visual C++ compiler. In this case, use the msvcc.sh wrapper script during configuration like so: -path/to/configure --enable-shared --enable-static \ - CC=path/to/msvcc.sh LD=link \ - CPP=\"cl -nologo -EP\" +path/to/configure CC=path/to/msvcc.sh LD=link CPP=\"cl -nologo -EP\" + +For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64". +You may also need to specify --build appropriately. When building with MSVC +under a MingW environment, you may need to remove the line in configure +that sets 'fix_srcfile_path' to a 'cygpath' command. ('cygpath' is not +present in MingW, and is not required when using MingW-style paths.) Configure has many other options. Use "configure --help" to see them all. Index: libffi/msvcc.sh =================================================================== --- libffi.orig/msvcc.sh +++ libffi/msvcc.sh @@ -42,7 +42,7 @@ # format and translated into something sensible for cl or ml. # -args="-nologo" +args="-nologo -W3" md=-MD cl="cl" ml="ml" @@ -65,13 +65,25 @@ do ml="ml64" # "$MSVC/x86_amd64/ml64" shift 1 ;; + -O0) + args="$args -Od" + shift 1 + ;; -O*) - args="$args $1" + # If we're optimizing, make sure we explicitly turn on some optimizations + # that are implicitly disabled by debug symbols (-Zi). + args="$args $1 -OPT:REF -OPT:ICF -INCREMENTAL:NO" shift 1 ;; -g) - # Can't specify -RTC1 or -Zi in opt. -Gy is ok. Use -OPT:REF? - args="$args -D_DEBUG -RTC1 -Zi" + # Enable debug symbol generation. + args="$args -Zi -DEBUG" + shift 1 + ;; + -DFFI_DEBUG) + # Link against debug CRT and enable runtime error checks. + args="$args -RTC1" + defines="$defines $1" md=-MDd shift 1 ;; @@ -108,8 +120,8 @@ do shift 1 ;; -Wall) - # -Wall on MSVC is overzealous. Use -W3 instead. - args="$args -W3" + # -Wall on MSVC is overzealous, and we already build with -W3. Nothing + # to do here. shift 1 ;; -Werror) Index: libffi/ChangeLog =================================================================== --- libffi.orig/ChangeLog +++ libffi/ChangeLog @@ -189,6 +189,11 @@ * man/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. +2010-03-30 Dan Witte + + * msvcc.sh: Disable build warnings. + * README (tested): Clarify windows build procedure. + 2010-03-15 Rainer Orth * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.