Edit

kc3-lang/libffi/patches/debug-build

Branch :

  • Show log

    Commit

  • Author : Anthony Green
    Date : 2010-08-05 14:56:53
    Hash : 00d0b59c
    Message : Fix debug build for windows

  • patches/debug-build
  • Index: libffi/ChangeLog
    ===================================================================
    --- libffi.orig/ChangeLog
    +++ libffi/ChangeLog
    @@ -1,3 +1,10 @@
    +2010-08-05  Dan Witte  <dwitte@mozilla.com>
    +
    +        * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
    +        debug CRT when --enable-debug is given.
    +        * configure.ac: Define it.
    +        * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
    +
     2010-08-04  Dan Witte  <dwitte@mozilla.com>
     
     	* src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
    Index: libffi/Makefile.am
    ===================================================================
    --- libffi.orig/Makefile.am
    +++ libffi/Makefile.am
    @@ -178,6 +178,14 @@ libffi_convenience_la_SOURCES = $(libffi
     nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
     
     AM_CFLAGS = -Wall -g -fexceptions
    +if FFI_DEBUG
    +# Build debug. Define FFI_DEBUG on the commandline so that, when building with
    +# MSVC, it can link against the debug CRT.
    +AM_CFLAGS += -DFFI_DEBUG
    +else
    +# Build opt.
    +AM_CFLAGS += -O2
    +endif
     
     libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
     
    Index: libffi/configure.ac
    ===================================================================
    --- libffi.orig/configure.ac
    +++ libffi/configure.ac
    @@ -16,10 +16,14 @@ AM_INIT_AUTOMAKE
     # We must force CC to /not/ be precious variables; otherwise
     # the wrong, non-multilib-adjusted value will be used in multilibs.
     # As a side effect, we have to subst CFLAGS ourselves.
    +# Also save and restore CFLAGS, since AC_PROG_CC will come up with
    +# defaults of its own if none are provided.
     
     m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
     m4_define([_AC_ARG_VAR_PRECIOUS],[])
    +save_CFLAGS=$CFLAGS
     AC_PROG_CC
    +CFLAGS=$save_CFLAGS
     m4_undefine([_AC_ARG_VAR_PRECIOUS])
     m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
     
    @@ -400,6 +404,7 @@ AC_ARG_ENABLE(debug,
       if test "$enable_debug" = "yes"; then
         AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
       fi)
    +AM_CONDITIONAL(FFI_DEBUG, test "$enable_debug" = "yes")
     
     AC_ARG_ENABLE(structs,
     [  --disable-structs       omit code for struct support],
    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"
    @@ -67,13 +67,25 @@ do
           safeseh=
           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
         ;;
    @@ -110,8 +122,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/Makefile.in
    ===================================================================
    --- libffi.orig/Makefile.in
    +++ libffi/Makefile.in
    @@ -62,6 +62,11 @@ target_triplet = @target@
     @SH64_TRUE@am__append_24 = src/sh64/sysv.S src/sh64/ffi.c
     @PA_LINUX_TRUE@am__append_25 = src/pa/linux.S src/pa/ffi.c
     @PA_HPUX_TRUE@am__append_26 = src/pa/hpux32.S src/pa/ffi.c
    +# Build debug. Define FFI_DEBUG on the commandline so that, when building with
    +# MSVC, it can link against the debug CRT.
    +@FFI_DEBUG_TRUE@am__append_27 = -DFFI_DEBUG
    +# Build opt.
    +@FFI_DEBUG_FALSE@am__append_28 = -O2
     subdir = .
     DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
     	$(srcdir)/Makefile.in $(srcdir)/doc/stamp-vti \
    @@ -482,7 +487,7 @@ nodist_libffi_la_SOURCES = $(am__append_
     	$(am__append_24) $(am__append_25) $(am__append_26)
     libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
     nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
    -AM_CFLAGS = -Wall -g -fexceptions
    +AM_CFLAGS = -Wall -g -fexceptions $(am__append_27) $(am__append_28)
     libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
     AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
     AM_CCASFLAGS = $(AM_CPPFLAGS)
    Index: libffi/configure
    ===================================================================
    --- libffi.orig/configure
    +++ libffi/configure
    @@ -748,6 +748,8 @@ LTLIBOBJS
     LIBOBJS
     toolexeclibdir
     toolexecdir
    +FFI_DEBUG_FALSE
    +FFI_DEBUG_TRUE
     TARGETDIR
     TARGET
     HAVE_LONG_DOUBLE
    @@ -3189,9 +3191,12 @@ am__tar='${AMTAR} chof - "$$tardir"'; am
     # We must force CC to /not/ be precious variables; otherwise
     # the wrong, non-multilib-adjusted value will be used in multilibs.
     # As a side effect, we have to subst CFLAGS ourselves.
    +# Also save and restore CFLAGS, since AC_PROG_CC will come up with
    +# defaults of its own if none are provided.
     
     
     
    +save_CFLAGS=$CFLAGS
     ac_ext=c
     ac_cpp='$CPP $CPPFLAGS'
     ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
    @@ -4172,6 +4177,7 @@ else
     fi
     
     
    +CFLAGS=$save_CFLAGS
     
     
     
    @@ -5044,13 +5050,13 @@ if test "${lt_cv_nm_interface+set}" = se
     else
       lt_cv_nm_interface="BSD nm"
       echo "int some_variable = 0;" > conftest.$ac_ext
    -  (eval echo "\"\$as_me:5047: $ac_compile\"" >&5)
    +  (eval echo "\"\$as_me:5053: $ac_compile\"" >&5)
       (eval "$ac_compile" 2>conftest.err)
       cat conftest.err >&5
    -  (eval echo "\"\$as_me:5050: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
    +  (eval echo "\"\$as_me:5056: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
       (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
       cat conftest.err >&5
    -  (eval echo "\"\$as_me:5053: output\"" >&5)
    +  (eval echo "\"\$as_me:5059: output\"" >&5)
       cat conftest.out >&5
       if $GREP 'External.*some_variable' conftest.out > /dev/null; then
         lt_cv_nm_interface="MS dumpbin"
    @@ -6256,7 +6262,7 @@ ia64-*-hpux*)
       ;;
     *-*-irix6*)
       # Find out which ABI we are using.
    -  echo '#line 6259 "configure"' > conftest.$ac_ext
    +  echo '#line 6265 "configure"' > conftest.$ac_ext
       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
       (eval $ac_compile) 2>&5
       ac_status=$?
    @@ -7782,11 +7788,11 @@ else
        -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
        -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
        -e 's:$: $lt_compiler_flag:'`
    -   (eval echo "\"\$as_me:7785: $lt_compile\"" >&5)
    +   (eval echo "\"\$as_me:7791: $lt_compile\"" >&5)
        (eval "$lt_compile" 2>conftest.err)
        ac_status=$?
        cat conftest.err >&5
    -   echo "$as_me:7789: \$? = $ac_status" >&5
    +   echo "$as_me:7795: \$? = $ac_status" >&5
        if (exit $ac_status) && test -s "$ac_outfile"; then
          # The compiler can only warn and ignore the option if not recognized
          # So say no if there are warnings other than the usual output.
    @@ -8121,11 +8127,11 @@ else
        -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
        -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
        -e 's:$: $lt_compiler_flag:'`
    -   (eval echo "\"\$as_me:8124: $lt_compile\"" >&5)
    +   (eval echo "\"\$as_me:8130: $lt_compile\"" >&5)
        (eval "$lt_compile" 2>conftest.err)
        ac_status=$?
        cat conftest.err >&5
    -   echo "$as_me:8128: \$? = $ac_status" >&5
    +   echo "$as_me:8134: \$? = $ac_status" >&5
        if (exit $ac_status) && test -s "$ac_outfile"; then
          # The compiler can only warn and ignore the option if not recognized
          # So say no if there are warnings other than the usual output.
    @@ -8226,11 +8232,11 @@ else
        -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
        -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
        -e 's:$: $lt_compiler_flag:'`
    -   (eval echo "\"\$as_me:8229: $lt_compile\"" >&5)
    +   (eval echo "\"\$as_me:8235: $lt_compile\"" >&5)
        (eval "$lt_compile" 2>out/conftest.err)
        ac_status=$?
        cat out/conftest.err >&5
    -   echo "$as_me:8233: \$? = $ac_status" >&5
    +   echo "$as_me:8239: \$? = $ac_status" >&5
        if (exit $ac_status) && test -s out/conftest2.$ac_objext
        then
          # The compiler can only warn and ignore the option if not recognized
    @@ -8281,11 +8287,11 @@ else
        -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
        -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
        -e 's:$: $lt_compiler_flag:'`
    -   (eval echo "\"\$as_me:8284: $lt_compile\"" >&5)
    +   (eval echo "\"\$as_me:8290: $lt_compile\"" >&5)
        (eval "$lt_compile" 2>out/conftest.err)
        ac_status=$?
        cat out/conftest.err >&5
    -   echo "$as_me:8288: \$? = $ac_status" >&5
    +   echo "$as_me:8294: \$? = $ac_status" >&5
        if (exit $ac_status) && test -s out/conftest2.$ac_objext
        then
          # The compiler can only warn and ignore the option if not recognized
    @@ -10651,7 +10657,7 @@ else
       lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
       lt_status=$lt_dlunknown
       cat > conftest.$ac_ext <<_LT_EOF
    -#line 10654 "configure"
    +#line 10660 "configure"
     #include "confdefs.h"
     
     #if HAVE_DLFCN_H
    @@ -10747,7 +10753,7 @@ else
       lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
       lt_status=$lt_dlunknown
       cat > conftest.$ac_ext <<_LT_EOF
    -#line 10750 "configure"
    +#line 10756 "configure"
     #include "confdefs.h"
     
     #if HAVE_DLFCN_H
    @@ -12465,6 +12471,14 @@ $as_echo "#define FFI_DEBUG 1" >>confdef
       fi
     fi
     
    + if test "$enable_debug" = "yes"; then
    +  FFI_DEBUG_TRUE=
    +  FFI_DEBUG_FALSE='#'
    +else
    +  FFI_DEBUG_TRUE='#'
    +  FFI_DEBUG_FALSE=
    +fi
    +
     
     # Check whether --enable-structs was given.
     if test "${enable_structs+set}" = set; then :
    @@ -12763,6 +12777,10 @@ if test -z "${PA64_HPUX_TRUE}" && test -
     Usually this means the macro was only invoked conditionally." "$LINENO" 5
     fi
     
    +if test -z "${FFI_DEBUG_TRUE}" && test -z "${FFI_DEBUG_FALSE}"; then
    +  as_fn_error "conditional \"FFI_DEBUG\" was never defined.
    +Usually this means the macro was only invoked conditionally." "$LINENO" 5
    +fi
     
     : ${CONFIG_STATUS=./config.status}
     ac_write_fail=0