[PATCH v4 00/15] sframe: Enhancements to SFrame info generation

Jens Remus jremus@linux.ibm.com
Thu Jun 27 08:28:36 GMT 2024


Am 24.06.2024 um 16:23 schrieb Jens Remus:
> Patches 1 and 2 (updated) are minor cleanups/enhancements to the
> existing SFrame support on AArch64 and x86 AMD64.
> 
> Patch 3 enables readelf/objdump to dump the SFrame fixed offsets from
> CFA to the frame pointer (FP) and return address (RA).
> 
> Patch 4 changes readelf/objdump to display 'f' in the SFrame
> RA tracking column, if the architecture is using a fixed RA offset.
> Additionally it corrects the logic to display 'u' in the SFrame
> FP tracking column.
> 
> Patch 5 (updated) enhances an SFrame warning message to print the human
> readable DWARF call frame instruction name.
> 
> Patches 6 and 7 resolve issues that cause the assembler to either
> generate bad SFrame FDE or to silently skip it. Both issues would be
> triggered by s390-specific SFrame error test cases introduced by the
> separate patch series.
> 
> Patch 8 refactors SFrame CFI opcode DW_CFA_register processing into a
> separate function. This harmonizes the CFI opcode processing.
> 
> Patch 9 (updated) adds verbose assembler warning messages when
> generation of SFrame FDE is skipped.
> 
> Patch 10 (updated) resolves an issue that causes the assembler to
> generate bad SFrame FDE in case the FP without RA was saved on the
> stack, which the SFrame format cannot represent. I will send two
> alternative solution proposals as RFC.
> 
> Patch 11 (updated) skips SFrame FDE for .cfi_window_save on all
> architectures except AArch64, which multiplexed it with
> .cfi_negate_ra_state.
> 
> Patches 12 and 13 (updated) resolve issues where generation of SFrame
> FDE was unnecessarily skipped.
> 
> Patch 14 adds tests for the SFrame RA tracking predicate to places where
> it was missing to align the logic.
> 
> Patch 15 (updated) is a minor enhancement to add checks that the
> architecture-dependent RA tracking is correctly configured.

...

> Jens Remus (15):
>    x86: Remove unused SFrame CFI RA register variable
>    gas: Enhance arch-specific SFrame configuration descriptions
>    readelf/objdump: Dump SFrame CFA fixed FP and RA offsets
>    readelf/objdump: Display SFrame fixed RA offset as 'f' in dump
>    gas: Print DWARF call frame insn name in SFrame warning message
>    gas: Skip SFrame FDE if CFI specifies non-FP/SP base register
>    gas: Warn if SFrame FDE is skipped due to non-default return column
>    gas: Refactor SFrame CFI opcode DW_CFA_register processing
>    gas: User readable warnings if SFrame FDE is not generated
>    gas: Skip SFrame FDE if FP without RA on stack
>    gas: Skip SFrame FDE if .cfi_window_save
>    gas: Don't skip SFrame FDE if .cfi_register specifies RA w/o tracking
>    gas: Don't skip SFrame FDE if .cfi_register specifies SP register
>    gas: Test predicate whether SFrame RA tracking is used
>    gas: Validate SFrame RA tracking and fixed RA offset
> 
>   gas/config/tc-aarch64.c                       |   6 +-
>   gas/config/tc-aarch64.h                       |  12 +-
>   gas/config/tc-i386.c                          |   6 +-
>   gas/config/tc-i386.h                          |  10 +-
>   gas/gen-sframe.c                              | 246 +++++++++++++++---
>   gas/gen-sframe.h                              |   2 +
>   .../gas/cfi-sframe/cfi-sframe-common-1.d      |   2 +
>   .../gas/cfi-sframe/cfi-sframe-common-2.d      |   2 +
>   .../gas/cfi-sframe/cfi-sframe-common-3.d      |   2 +
>   .../gas/cfi-sframe/cfi-sframe-common-4.d      |   6 +-
>   .../gas/cfi-sframe/cfi-sframe-common-5.d      |   6 +-
>   .../gas/cfi-sframe/cfi-sframe-common-6.d      |   6 +-
>   .../gas/cfi-sframe/cfi-sframe-common-7.d      |   6 +-
>   .../gas/cfi-sframe/cfi-sframe-common-8.d      |   4 +-
>   .../gas/cfi-sframe/cfi-sframe-x86_64-1.d      |   9 +-
>   gas/testsuite/gas/cfi-sframe/common-empty-1.d |   4 +-
>   gas/testsuite/gas/cfi-sframe/common-empty-2.d |   4 +-
>   gas/testsuite/gas/cfi-sframe/common-empty-3.d |   3 +
>   .../gas/scfi/x86_64/scfi-cfi-sections-1.d     |  11 +-
>   .../gas/scfi/x86_64/scfi-dyn-stack-1.d        |  11 +-
>   ld/testsuite/ld-sframe/discard.s              |   1 -
>   ld/testsuite/ld-x86-64/sframe-plt-1.d         |   9 +-
>   ld/testsuite/ld-x86-64/sframe-simple-1.d      |  17 +-
>   libsframe/sframe-dump.c                       |  18 +-
>   24 files changed, 305 insertions(+), 98 deletions(-)

Thank you for the review, Indu!

Can I go ahead and commit the series to mainline, with the review 
feedback implemented and the offending trailers removed?

Thanks and regards,
Jens
-- 
Jens Remus
Linux on Z Development (D3303) and z/VSE Support
+49-7031-16-1128 Office
jremus@de.ibm.com

IBM

IBM Deutschland Research & Development GmbH; Vorsitzender des 
Aufsichtsrats: Wolfgang Wendt; Geschäftsführung: David Faller; Sitz der 
Gesellschaft: Böblingen; Registergericht: Amtsgericht Stuttgart, HRB 243294
IBM Data Privacy Statement: https://www.ibm.com/privacy/


More information about the Binutils mailing list