7571f3f826a23a7efd91a8adb310dc1c9682f604
[libffi.git] / patches / debug-build
1 Index: libffi/ChangeLog
2 ===================================================================
3 --- libffi.orig/ChangeLog
4 +++ libffi/ChangeLog
5 @@ -225,6 +225,13 @@
6         * testsuite/libffi.call/cls_longdouble.c: Likewise.
7         * testsuite/libffi.call/huge_struct.c: Likewise.
8  
9 +2010-08-05  Dan Witte  <dwitte@mozilla.com>
10 +
11 +        * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
12 +        debug CRT when --enable-debug is given.
13 +        * configure.ac: Define it.
14 +        * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
15 +
16  2010-08-04  Dan Witte  <dwitte@mozilla.com>
17  
18         * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
19 Index: libffi/Makefile.am
20 ===================================================================
21 --- libffi.orig/Makefile.am
22 +++ libffi/Makefile.am
23 @@ -180,6 +180,14 @@ libffi_convenience_la_SOURCES = $(libffi
24  nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
25  
26  AM_CFLAGS = -Wall -g -fexceptions
27 +if FFI_DEBUG
28 +# Build debug. Define FFI_DEBUG on the commandline so that, when building with
29 +# MSVC, it can link against the debug CRT.
30 +AM_CFLAGS += -DFFI_DEBUG
31 +else
32 +# Build opt.
33 +AM_CFLAGS += -O2
34 +endif
35  
36  libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
37  
38 Index: libffi/configure.ac
39 ===================================================================
40 --- libffi.orig/configure.ac
41 +++ libffi/configure.ac
42 @@ -16,10 +16,14 @@ AM_INIT_AUTOMAKE
43  # We must force CC to /not/ be precious variables; otherwise
44  # the wrong, non-multilib-adjusted value will be used in multilibs.
45  # As a side effect, we have to subst CFLAGS ourselves.
46 +# Also save and restore CFLAGS, since AC_PROG_CC will come up with
47 +# defaults of its own if none are provided.
48  
49  m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
50  m4_define([_AC_ARG_VAR_PRECIOUS],[])
51 +save_CFLAGS=$CFLAGS
52  AC_PROG_CC
53 +CFLAGS=$save_CFLAGS
54  m4_undefine([_AC_ARG_VAR_PRECIOUS])
55  m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
56  
57 @@ -400,6 +404,7 @@ AC_ARG_ENABLE(debug,
58    if test "$enable_debug" = "yes"; then
59      AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
60    fi)
61 +AM_CONDITIONAL(FFI_DEBUG, test "$enable_debug" = "yes")
62  
63  AC_ARG_ENABLE(structs,
64  [  --disable-structs       omit code for struct support],
65 Index: libffi/Makefile.in
66 ===================================================================
67 --- libffi.orig/Makefile.in
68 +++ libffi/Makefile.in
69 @@ -62,6 +62,11 @@ target_triplet = @target@
70  @SH64_TRUE@am__append_24 = src/sh64/sysv.S src/sh64/ffi.c
71  @PA_LINUX_TRUE@am__append_25 = src/pa/linux.S src/pa/ffi.c
72  @PA_HPUX_TRUE@am__append_26 = src/pa/hpux32.S src/pa/ffi.c
73 +# Build debug. Define FFI_DEBUG on the commandline so that, when building with
74 +# MSVC, it can link against the debug CRT.
75 +@FFI_DEBUG_TRUE@am__append_27 = -DFFI_DEBUG
76 +# Build opt.
77 +@FFI_DEBUG_FALSE@am__append_28 = -O2
78  subdir = .
79  DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
80         $(srcdir)/Makefile.in $(srcdir)/doc/stamp-vti \
81 @@ -489,7 +494,7 @@ nodist_libffi_la_SOURCES = $(am__append_
82         $(am__append_24) $(am__append_25) $(am__append_26)
83  libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
84  nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
85 -AM_CFLAGS = -Wall -g -fexceptions
86 +AM_CFLAGS = -Wall -g -fexceptions $(am__append_27) $(am__append_28)
87  libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
88  AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
89  AM_CCASFLAGS = $(AM_CPPFLAGS)
90 Index: libffi/configure
91 ===================================================================
92 --- libffi.orig/configure
93 +++ libffi/configure
94 @@ -617,6 +617,8 @@ LTLIBOBJS
95  LIBOBJS
96  toolexeclibdir
97  toolexecdir
98 +FFI_DEBUG_FALSE
99 +FFI_DEBUG_TRUE
100  TARGETDIR
101  TARGET
102  HAVE_LONG_DOUBLE
103 @@ -3123,9 +3125,12 @@ am__tar='${AMTAR} chof - "$$tardir"'; am
104  # We must force CC to /not/ be precious variables; otherwise
105  # the wrong, non-multilib-adjusted value will be used in multilibs.
106  # As a side effect, we have to subst CFLAGS ourselves.
107 +# Also save and restore CFLAGS, since AC_PROG_CC will come up with
108 +# defaults of its own if none are provided.
109  
110  
111  
112 +save_CFLAGS=$CFLAGS
113  ac_ext=c
114  ac_cpp='$CPP $CPPFLAGS'
115  ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
116 @@ -4105,6 +4110,7 @@ else
117  fi
118  
119  
120 +CFLAGS=$save_CFLAGS
121  
122  
123  
124 @@ -13335,6 +13341,14 @@ $as_echo "#define FFI_DEBUG 1" >>confdef
125    fi
126  fi
127  
128 + if test "$enable_debug" = "yes"; then
129 +  FFI_DEBUG_TRUE=
130 +  FFI_DEBUG_FALSE='#'
131 +else
132 +  FFI_DEBUG_TRUE='#'
133 +  FFI_DEBUG_FALSE=
134 +fi
135 +
136  
137  # Check whether --enable-structs was given.
138  if test "${enable_structs+set}" = set; then :
139 @@ -13649,6 +13663,10 @@ if test -z "${PA64_HPUX_TRUE}" && test -
140  Usually this means the macro was only invoked conditionally." "$LINENO" 5
141  fi
142  
143 +if test -z "${FFI_DEBUG_TRUE}" && test -z "${FFI_DEBUG_FALSE}"; then
144 +  as_fn_error $? "conditional \"FFI_DEBUG\" was never defined.
145 +Usually this means the macro was only invoked conditionally." "$LINENO" 5
146 +fi
147  
148  : "${CONFIG_STATUS=./config.status}"
149  ac_write_fail=0