[PATCH,V4 9/9] ld: bfd: sframe: Update section size also for relocatable links
Jan Beulich
jbeulich@suse.com
Fri Jun 27 08:00:32 GMT 2025
More information about the Binutils mailing list
Fri Jun 27 08:00:32 GMT 2025
- Previous message (by thread): [PATCH, V4 9/9] ld: bfd: sframe: Update section size also for relocatable links
- Next message (by thread): [PATCH,V4 9/9] ld: bfd: sframe: Update section size also for relocatable links
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 19.06.2025 08:24, Indu Bhagat wrote: > From: Jens Remus <jremus@linux.ibm.com> > > For relocatable links the output .sframe section size may be wrong. > This can be observed when dumping the SFrame information from the x86-64 > sframe-reloc-1 test: > > Name Address Off Size > .sframe 0000000000000000 000110 00007f > > Offset Type Symbol's Value Symbol's Name + Addend > 000000000000001c R_X86_64_PC32 0000000000000000 .text + 1c > 0000000000000030 R_X86_64_PC32 0000000000000000 .text + 65 > > 0x00000000 e2de0201 0300f800 02000000 08000000 ................ > 0x00000010 1e000000 00000000 28000000 00000000 ........(....... > 0x00000020 35000000 00000000 04000000 00000000 5............... > 0x00000030 00000000 25000000 0f000000 04000000 ....%........... > offset 1st FRE---^^^^^^^^ ^^^^^^^^---number of FREs > 0x00000040 00000000 00030801 0510f004 0410f034 ...............4 > FDE info---^^ | begin of FDEs > 0x00000050 0508f000 03080105 10f00404 10f02405 ..............$. > 11111112222222223333333334444---FRE 1, 2, 3, 4 > 0x00000060 08f00000 00000000 00000000 00000000 ................ > 4444^^^^... > 0x00000070 00000000 00000000 00000000 000000 ............... > ...^^^^^^---excessive section > > When running the x86-64 test cross build on a big-endian system, such > as s390x, objdump and readelf fail to dump the SFrame information with > the following error message: > > Error: SFrame decode failure: Buffer does not contain SFrame data. > > This is because the following check in flip_sframe() fails, which gets > only invoked if the endianness of the SFrame data is different from the > host system one: > > /* All FDEs and FREs must have been endian flipped by now. */ > if ((j != ihp->sfh_num_fres) || (bytes_flipped != (buf_size - hdrsz))) > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > With: > j=8, ihp->sfh_num_fres=8, bytes_flipped=70, buf_size=127, hdrsz=28 > > While at it, remove the incorrect code comment. There is no > relationship between "do not update size" and the fact that the > "contents have not been relocated". > > bfd/ > * elf-sframe.c (_bfd_elf_write_section_sframe): Update section > size also for relocatable links. > > Signed-off-by: Jens Remus <jremus@linux.ibm.com> Okay, provided my understanding is correct that Jens' subsequent reply indicates an independent issue, not one with the change here. Jan
- Previous message (by thread): [PATCH, V4 9/9] ld: bfd: sframe: Update section size also for relocatable links
- Next message (by thread): [PATCH,V4 9/9] ld: bfd: sframe: Update section size also for relocatable links
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list