[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