On 2/4/2026 1:49 AM, H. Peter Anvin wrote: > On 2026-02-03 09:19, Jens Remus wrote: >> - >> +#if defined(__x86_64__) && defined(CONFIG_AS_SFRAME)
My understanding is that you would like above changed to: #ifdef CONFIG_AS_SFRAME >> + .cfi_sections .eh_frame, .debug_frame, .sframe >> +#else >> .cfi_sections .eh_frame, .debug_frame >> +#endif >> > > It would be better to: > > #undef CONFIG_AS_SFRAME /* i386 doesn't support .sframe */ > > in fake_32bit_build.h. Due to (binutils 2.46 pre-release) GNU assembler supporting --gsframe-3, but only for x86-64 not for x86-32 (nor x32) CONFIG_AS_SFRAME is enabled even for my i386 cross build attempt. This then wrongly causes the .cfi_sections with .sframe to be selected (verified by adding an #error for testing). IIUC the .cfi_sections is there to have DWARF in both .eh_frame and .debug_frame. For .sframe it basically has the same effect as specifying the common assembler option --gsframe. Given the more specific option --gsframe-3 is explicitly specified I think it would be better to drop the changes to both dwarf2.h and fake_32bit_build.h and solely rely on --gsframe-3. Josh, Indu, do you agree? Thanks and rRegards, Jens -- Jens Remus Linux on Z Development (D3303) [email protected] / [email protected] IBM Deutschland Research & Development GmbH; Vorsitzender des Aufsichtsrats: Wolfgang Wendt; Geschäftsführung: David Faller; Sitz der Gesellschaft: Ehningen; Registergericht: Amtsgericht Stuttgart, HRB 243294 IBM Data Privacy Statement: https://www.ibm.com/privacy/
