Jacek Caban : configure: Allow specifying cross debug format.

Alexandre Julliard julliard at winehq.org
Thu May 14 16:17:45 CDT 2020


Module: wine
Branch: master
Commit: 8e051c5802e60e37b2187314180e94fc4b5f8071
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=8e051c5802e60e37b2187314180e94fc4b5f8071

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu May 14 16:40:03 2020 +0200

configure: Allow specifying cross debug format.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 Makefile.in  |  1 +
 configure    | 53 +++++++++++++++++++++++++++++++++++++++++++++++------
 configure.ac | 24 +++++++++++++++++-------
 3 files changed, 65 insertions(+), 13 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 0e9b50c8f5..0e1f6cd6ca 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -69,6 +69,7 @@ CONVERT         = @CONVERT@
 ICOTOOL         = @ICOTOOL@
 MSGFMT          = @MSGFMT@
 CROSSTARGET     = @CROSSTARGET@
+CROSSDEBUG      = @CROSSDEBUG@
 SUBDIRS         = @SUBDIRS@
 RUNTESTFLAGS    = -q -P wine
 MAKEDEP         = $(TOOLSDIR)/tools/makedep$(TOOLSEXT)
diff --git a/configure b/configure
index 27fb2fd0ed..f85e18b77f 100755
--- a/configure
+++ b/configure
@@ -705,6 +705,7 @@ X_PRE_LIBS
 X_CFLAGS
 XMKMF
 PTHREAD_LIBS
+CROSSDEBUG
 DELAYLOADFLAG
 CROSSLDFLAGS
 EXTRACROSSCFLAGS
@@ -10520,9 +10521,19 @@ if test "x$ac_cv_crosscflags__Wnonnull" = xyes; then :
 fi ;;
         esac
 
-                for ac_flag in $CROSSCFLAGS; do
-          case $ac_flag in
-            -g) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the cross-compiler supports -gdwarf-2" >&5
+
+        if test -z "$CROSSDEBUG"
+        then
+          for ac_flag in $CROSSCFLAGS; do
+            case $ac_flag in
+             -gdwarf*)    CROSSDEBUG=dwarf ;;
+             -gcodeview)  CROSSDEBUG=pdb ;;
+             -g)          CROSSDEBUG=${CROSSDEBUG:-dwarf} ;;
+            esac
+          done
+        fi
+        case $CROSSDEBUG in
+          *dwarf)  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the cross-compiler supports -gdwarf-2" >&5
 $as_echo_n "checking whether the cross-compiler supports -gdwarf-2... " >&6; }
 if ${ac_cv_crosscflags__gdwarf_2+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -10553,7 +10564,7 @@ $as_echo "$ac_cv_crosscflags__gdwarf_2" >&6; }
 if test "x$ac_cv_crosscflags__gdwarf_2" = xyes; then :
   EXTRACROSSCFLAGS="$EXTRACROSSCFLAGS -gdwarf-2"
 fi
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the cross-compiler supports -gstrict-dwarf" >&5
+                   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the cross-compiler supports -gstrict-dwarf" >&5
 $as_echo_n "checking whether the cross-compiler supports -gstrict-dwarf... " >&6; }
 if ${ac_cv_crosscflags__gstrict_dwarf+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -10584,8 +10595,38 @@ $as_echo "$ac_cv_crosscflags__gstrict_dwarf" >&6; }
 if test "x$ac_cv_crosscflags__gstrict_dwarf" = xyes; then :
   EXTRACROSSCFLAGS="$EXTRACROSSCFLAGS -gstrict-dwarf"
 fi ;;
-          esac
-        done
+          pdb)     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the cross-compiler supports -gcodeview" >&5
+$as_echo_n "checking whether the cross-compiler supports -gcodeview... " >&6; }
+if ${ac_cv_crosscflags__gcodeview+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_wine_try_cflags_saved=$CFLAGS
+ac_wine_try_cflags_saved_cc=$CC
+ac_wine_try_cflags_saved_exeext=$ac_exeext
+CFLAGS="$CFLAGS $EXTRACROSSCFLAGS -nostartfiles -nodefaultlibs -gcodeview"
+CC="$CROSSCC"
+ac_exeext=".exe"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int __cdecl mainCRTStartup(void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_crosscflags__gcodeview=yes
+else
+  ac_cv_crosscflags__gcodeview=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+CFLAGS=$ac_wine_try_cflags_saved
+CC=$ac_wine_try_cflags_saved_cc
+ac_exeext=$ac_wine_try_cflags_saved_exeext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crosscflags__gcodeview" >&5
+$as_echo "$ac_cv_crosscflags__gcodeview" >&6; }
+if test "x$ac_cv_crosscflags__gcodeview" = xyes; then :
+  EXTRACROSSCFLAGS="$EXTRACROSSCFLAGS -gcodeview"
+fi ;;
+        esac
 
         if test "x$enable_werror" = "xyes"
         then
diff --git a/configure.ac b/configure.ac
index 3e0511325c..0dbcb3d095 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1100,13 +1100,23 @@ then
                   WINE_TRY_CROSSCFLAGS([-Wnonnull]) ;;
         esac
 
-        dnl Default to dwarf-2 debug info
-        for ac_flag in $CROSSCFLAGS; do
-          case $ac_flag in
-            -g) WINE_TRY_CROSSCFLAGS([-gdwarf-2])
-                WINE_TRY_CROSSCFLAGS([-gstrict-dwarf]) ;;
-          esac
-        done
+        dnl Determine debug info format
+        AC_SUBST(CROSSDEBUG)
+        if test -z "$CROSSDEBUG"
+        then
+          for ac_flag in $CROSSCFLAGS; do
+            case $ac_flag in
+             -gdwarf*)    CROSSDEBUG=dwarf ;;
+             -gcodeview)  CROSSDEBUG=pdb ;;
+             -g)          CROSSDEBUG=${CROSSDEBUG:-dwarf} ;;
+            esac
+          done
+        fi
+        case $CROSSDEBUG in
+          *dwarf)  WINE_TRY_CROSSCFLAGS([-gdwarf-2])
+                   WINE_TRY_CROSSCFLAGS([-gstrict-dwarf]) ;;
+          pdb)     WINE_TRY_CROSSCFLAGS([-gcodeview]) ;;
+        esac
 
         if test "x$enable_werror" = "xyes"
         then




More information about the wine-cvs mailing list