On 02.03.2023 12:01, Julien Grall wrote: > On 02/03/2023 09:45, Jan Beulich wrote: >> On 01.03.2023 21:38, Julien Grall wrote: >>> I managed to reproduce it. It looks like that after your bug patch, >>> *(.rodata.*) will not be end on a 4-byte boundary. Before your patch, >>> all the messages will be in .rodata.str. Now they are in .bug_frames.*, >>> so there some difference in .rodata.*. >> >> Strings in .bug_frames.*? This sounds like a mistake, which - if indeed >> the case - will want investigating before the conversion series is >> actually considered for committing. > > No. I misread the code. But there are definitely a difference in size: > > Before: > > Section Headers: > [Nr] Name Type Addr Off Size ES Flg > Lk Inf Al > [ 0] NULL 00000000 000000 000000 00 > 0 0 0 > [ 1] .text PROGBITS 00200000 008000 07e7a8 00 WAX > 0 0 32 > [ 2] .rodata PROGBITS 0027f000 087000 02acc8 00 A > 0 0 16 >[...] > After: > > [Nr] Name Type Addr Off Size ES Flg > Lk Inf Al > [ 0] NULL 00000000 000000 000000 00 > 0 0 0 > [ 1] .text PROGBITS 00200000 008000 07e670 00 WAX > 0 0 32 > [ 2] .rodata PROGBITS 0027f000 087000 02b3e8 00 A > 0 0 16
I still find this concerning (as in: at least needing explanation), as the bug frame representation shrinks in size: Entries for assertions remain to be 4 ".long"-s, while all other entries use only two now. So in a release build the size of all .bug_frame.* together should halve, while in debug builds it should shrink at least some. And Oleksii's series doesn't add meaningful other contributions to .rodata, iirc. Jan