usage: configure CFLAGS="-gdwarf-4 -O2" will enable dwarf4 compilation
for ELF parts (and CROSSCFLAGS="-gdwarf-4 -O2" for PE parts)
evolution from current behavior:
- when CFLAGS contains "-gdwarf-X", -gdwarf-X option is not tested with
������ WINE_TRY_CFLAGS (the option remains anyway in CFLAGS -so WINE_TRY is
������ useless- and is not copied in EXTRACFLAGS) (ditto for CROSSCFLAGS)
- using CROSSCFLAGS=-gdwarf is no longer converted to Wine's preferred
������ format, but is kepts as is, hence will boil down to compiler's
������ preferred dwarf version
what remains undone (and could be improved):
- no test that the final configuration is suitable for Wine (ie
������ if WINE_TRY_CFLAGS fails on -gdwarf-2, compilation is done with
������ compilers's default format => dwarf5 on Linux)
- using CROSSDEBUG=dwarf-split will compile in dwarf-2, while
������ CROSSDEBUG=split will compile in compiler's default (likely dwarf-5
������ currently)
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
---
������configure.ac |������ ������24 +++++++++++++++++-------
������1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
index 913692c828a..e0ec8fd17d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1024,21 +1024,26 @@ then
������ ������ ������ ������ ������dnl Determine debug info format
������ ������ ������ ������ ������AC_SUBST(CROSSDEBUG)
+������ ������ ������ ������ ac_debug_format_seen=
������ ������ ������ ������ ������if test -z "$CROSSDEBUG"
������ ������ ������ ������ ������then
������ ������ ������ ������ ������ ������for ac_flag in $CROSSCFLAGS; do
������ ������ ������ ������ ������ ������ ������case $ac_flag in
-������ ������ ������ ������ ������ ������ ������-gdwarf*)������ ������ CROSSDEBUG=dwarf ;;
+������ ������ ������ ������ ������ ������ ������-gdwarf-*)������ ������ac_debug_format_seen=yes ;;
+������ ������ ������ ������ ������ ������ ������-g)������ ������ ������ ������ ������ ac_debug_format_seen=${ac_debug_format_seen:-default} ;;
������ ������ ������ ������ ������ ������ ������ -gcodeview)������ CROSSDEBUG=pdb ;;
-������ ������ ������ ������ ������ ������ ������-g)������ ������ ������ ������ ������ CROSSDEBUG=${CROSSDEBUG:-dwarf} ;;
������ ������ ������ ������ ������ ������ ������esac
������ ������ ������ ������ ������ ������done
������ ������ ������ ������ ������fi
������ ������ ������ ������ ������case $CROSSDEBUG in
-������ ������ ������ ������ ������ *dwarf)������ WINE_TRY_CROSSCFLAGS([-gdwarf-2])
-������ ������ ������ ������ ������ ������ ������ ������ ������ ������WINE_TRY_CROSSCFLAGS([-gstrict-dwarf]) ;;
+������ ������ ������ ������ ������ *dwarf)������ ac_debug_format_seen=default ;;
������ ������ ������ ������ ������ ������pdb)������ ������ ������WINE_TRY_CROSSCFLAGS([-gcodeview]) ;;
������ ������ ������ ������ ������esac
+������ ������ ������ ������ if test "x$ac_debug_format_seen" = "xdefault"
+������ ������ ������ ������ then
+������ ������ ������ ������ ������ WINE_TRY_CROSSCFLAGS([-gdwarf-2])
+������ ������ ������ ������ ������ WINE_TRY_CROSSCFLAGS([-gstrict-dwarf])
+������ ������ ������ ������ fi
������ ������ ������ ������ ������WINE_TRY_CROSSCFLAGS([-fexcess-precision=standard],[AC_SUBST(EXCESS_PRECISION_CFLAGS,"-fexcess-precision=standard")])
@@ -2031,13 +2036,18 @@ char*f(const char *h,char n) {return strchr(h,n);}]])],[ac_cv_c_logicalop_noisy=
������ ������ ������ ������*) EXTRACFLAGS="$EXTRACFLAGS $wine_cv_64bit_compare_swap" ;;
������ ������esac
-������ dnl Default to dwarf-2 debug info
+������ dnl Determine debug info format
+������ ac_debug_format_seen=
������ ������for ac_flag in $CFLAGS; do
������ ������ ������case $ac_flag in
-������ ������ ������ -g) WINE_TRY_CFLAGS([-gdwarf-2])
-������ ������ ������ ������ ������ WINE_TRY_CFLAGS([-gstrict-dwarf]) ;;
+������ ������ ������ -gdwarf-*)������ ������ac_debug_format_seen=yes ;;
+������ ������ ������ -g)������ ������ ������ ������ ������ ac_debug_format_seen=${ac_debug_format_seen:-default} ;;
������ ������ ������esac
������ ������done
+������ if test "x$ac_debug_format_seen" = "xdefault"; then
+������ ������ WINE_TRY_CFLAGS([-gdwarf-2])
+������ ������ WINE_TRY_CFLAGS([-gstrict-dwarf])
+������ fi
������ ������dnl Disable gcc builtins except for Mingw
������ ������AC_SUBST(MSVCRTFLAGS,"")