[PATCH] configure.ac: allow expressing dwarf version in CFLAGS and CROSSCFLAGS

Eric Pouech eric.pouech at gmail.com
Thu Oct 21 10:20:25 CDT 2021


any news on this one ?
TIA
A+

On Mon, 4 Oct 2021 at 18:37, Eric Pouech <eric.pouech at gmail.com> wrote:

> 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 at 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,"")
>
>

-- 
-- 
Eric Pouech
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20211021/36d94fdd/attachment.htm>


More information about the wine-devel mailing list