[PATCH v2] gas: Move gas_sframe_check to binutils-common.exp

H.J. Lu hjl.tools@gmail.com
Mon Jul 14 00:15:25 GMT 2025


On Mon, Jul 14, 2025 at 7:34 AM Alan Modra <amodra@gmail.com> wrote:
>
> I'll apply the following in a little while to give you and Indu time
> to comment.
>
> Correct TCL errors trying to access error output file in commit
> ef7a634dc01d.  In fact, get rid of the output file test entirely since
> gas exit status is sufficient.
>
> Also there is no need to firstly check for ELF support.
>
> Set check_as_sframe_result, and remove ld-lib.exp check_as_sframe.
>
> diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp
> index d024bc55150..2da7138e211 100644
> --- a/binutils/testsuite/lib/binutils-common.exp
> +++ b/binutils/testsuite/lib/binutils-common.exp
> @@ -482,10 +482,6 @@ proc supports_dt_relr {} {
>
>  # Whether a target assembler supports --gsframe.
>  proc gas_sframe_check {} {
> -    if { ![is_elf_format] } then {
> -       return 0;
> -    }
> -
>      global check_as_sframe_result
>      global AS
>      global ASFLAGS
> @@ -502,23 +498,16 @@ proc gas_sframe_check {} {
>      remote_download host $as_file
>      verbose -log "Checking SFrame support in AS:"
>
> -    set old_ASFLAGS "$ASFLAGS"
> -    set ASFLAGS "$ASFLAGS --gsframe"
> -
> -    global comp_output
> +    set status [remote_exec host "$AS $ASFLAGS --gsframe $as_file"]
>
> -    set output_file "tmpdir/check_as_sframe.out"
> -    set status [remote_exec host "$AS $ASFLAGS $as_file" "2> $output_file"]
> -    set comp_output [file_contents "$output_file"]
> -    set ASFLAGS "$old_ASFLAGS"
> -
> -    if { ![string match "" $comp_output] } then {
> +    if { [lindex $status 0] != 0 } then {
>         verbose -log "SFrame not supported in AS"
> -       return 0
> +       set check_as_sframe_result 0
>      } else {
>         verbose -log "SFrame supported in AS"
> -       return 1
> +       set check_as_sframe_result 1
>      }
> +    return $check_as_sframe_result
>  }
>
>  # get_relative_path FROM TO
> diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
> index 119410bc523..22d2f987b87 100644
> --- a/ld/testsuite/lib/ld-lib.exp
> +++ b/ld/testsuite/lib/ld-lib.exp
> @@ -1668,36 +1668,6 @@ proc skip_ctf_tests { } {
>      return 1
>  }
>
> -# Check if the assembler supports SFrame.
> -
> -proc check_as_sframe { } {
> -    global check_as_sframe_result
> -    global as
> -    if [info exists check_as_sframe_result] {
> -       return $check_as_sframe_result
> -    }
> -
> -    # SFrame generation needs CFI support
> -    if { ![check_as_cfi] } {
> -       set check_as_sframe_result 0;
> -       return 0
> -    }
> -
> -    set as_file "tmpdir/check_as_sframe.s"
> -    set as_fh [open $as_file w 0666]
> -    puts $as_fh "# Generated file. DO NOT EDIT"
> -    puts $as_fh "\t.cfi_sections \".sframe\""
> -    puts $as_fh "\t.cfi_startproc"
> -    puts $as_fh "\t.cfi_endproc"
> -    close $as_fh
> -    remote_download host $as_file
> -    verbose -log "Checking SFrame:"
> -    set success [ld_assemble $as $as_file "/dev/null"]
> -    #remote_file host delete $as_file
> -    set check_as_sframe_result $success
> -    return $success
> -}
> -
>  proc skip_sframe_tests { } {
>  # FIXME TODO
>  #    global enable_libsframe
> @@ -1706,7 +1676,7 @@ proc skip_sframe_tests { } {
>  #      return 1
>  #    }
>
> -    if [check_as_sframe] {
> +    if [gas_sframe_check] {
>         return 0
>      }
>
>
> --
> Alan Modra

LGTM.   Please mention PR ld/33146 in the commit log for backport tracking
if needed.

Thanks.

-- 
H.J.


More information about the Binutils mailing list