On Wed, 27 Aug 2025, Jakub Jelinek wrote:

> Hi!
> 
> The following patch adds a readelf fallback if objdump nor otool don't
> exist.  All of GNU binutils readelf, eu-readelf and llvm-readelf can
> handle it with those options.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

OK.

> 2025-08-27  Jakub Jelinek  <ja...@redhat.com>
> 
>       PR debug/119367
>       * configure.ac (gcc_cv_as_leb128): Add fallback using readelf.
>       Grammar fix in comment.
>       * configure: Regenerate.
> 
> --- gcc/configure.ac.jj       2025-08-27 13:05:35.153493266 +0200
> +++ gcc/configure.ac  2025-08-27 13:32:51.164032649 +0200
> @@ -3307,8 +3307,8 @@ case $target in
>  esac
>  
>  # Check if we have .[us]leb128, and support symbol arithmetic with it.
> -# Older versions of GAS and some non-GNU assemblers, have a bugs handling
> -# these directives, even when they appear to accept them.
> +# Older versions of GAS and some non-GNU assemblers have bugs in handling
> +# of these directives, even when they appear to accept them.
>  gcc_GAS_CHECK_FEATURE([.sleb128 and .uleb128], gcc_cv_as_leb128,
>  [$check_leb128_asflags],
>  [    .data
> @@ -3330,6 +3330,11 @@ elif test "x$gcc_cv_otool" != x; then
>       | grep '04 80 0a 8e 78 80 80 80 80 80 80 80 80 80 01' >/dev/null; then
>      gcc_cv_as_leb128=yes
>    fi
> +elif test "x$gcc_cv_readelf" != x; then
> +  if $gcc_cv_readelf -x .data conftest.o 2>/dev/null \
> +     | grep '04800a8e 78808080 80808080 808001' >/dev/null; then
> +    gcc_cv_as_leb128=yes
> +  fi
>  else
>    # play safe, assume the assembler is broken.
>    :
> --- gcc/configure.jj  2025-08-27 13:06:16.692947978 +0200
> +++ gcc/configure     2025-08-27 13:33:52.538227681 +0200
> @@ -26500,8 +26500,8 @@ fi
>  esac
>  
>  # Check if we have .[us]leb128, and support symbol arithmetic with it.
> -# Older versions of GAS and some non-GNU assemblers, have a bugs handling
> -# these directives, even when they appear to accept them.
> +# Older versions of GAS and some non-GNU assemblers have bugs in handling
> +# of these directives, even when they appear to accept them.
>  { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .sleb128 and 
> .uleb128" >&5
>  $as_echo_n "checking assembler for .sleb128 and .uleb128... " >&6; }
>  if ${gcc_cv_as_leb128+:} false; then :
> @@ -26535,6 +26535,11 @@ elif test "x$gcc_cv_otool" != x; then
>       | grep '04 80 0a 8e 78 80 80 80 80 80 80 80 80 80 01' >/dev/null; then
>      gcc_cv_as_leb128=yes
>    fi
> +elif test "x$gcc_cv_readelf" != x; then
> +  if $gcc_cv_readelf -x .data conftest.o 2>/dev/null \
> +     | grep '04800a8e 78808080 80808080 808001' >/dev/null; then
> +    gcc_cv_as_leb128=yes
> +  fi
>  else
>    # play safe, assume the assembler is broken.
>    :
> 
>       Jakub
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)

Reply via email to