On Tue, Mar 23, 2021, Sami Tolvanen wrote: > On Mon, Mar 22, 2021 at 4:44 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > > > Merge module sections only when using Clang LTO. With gcc-10, merging > > sections does not appear to update the symbol tables for the module, > > e.g. 'readelf -s' shows the value that a symbol would have had, if > > sections were not merged. > > I'm fine with limiting this to LTO only, but it would be helpful to > understand which sections are actually getting merged here. It doesn't appear to matter which sections get merged, the tables only show the correct data if there is no merging whatsoever, e.g. allowing merging for any one of the four types (.bss, .data, .rodata and .text) results in breakage. AFAICT, merging any sections causes the layout to change and throw off the symbol tables. > Are you compiling the kernel with -ffunction-sections and/or -fdata-sections? I tried both. Default off, and forcing those flags by hacking the Makefile had no effect. > Does this issue only happen with gcc 10? gcc-7 shows the same behavior, I haven't checked anything older or anything in between.