As with .text, the idea is to ensure that executable sections are
segregated from the rest. For some reason, firmware modules end up with
a 16-byte PLT. This wasn't the case before LLVM 11 I believe.
Details
Details
- Reviewers
kib jhb - Commits
- rS365796: Move PLTs to the beginning of amd64 kernel modules.
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
Can you show output from readelf -a for that files ? It is very strange to see plt in the result of incremental linking.
Comment Actions
Hm, I see the same .plt section on stable/12 with clang 10.0.1 as well.
There are two PLT32 relocs, but creating plt for them is not the duty of ld -r. Anyway.
Comment Actions
Huh, I don't remember seeing this. Maybe I last checked when llvm was at version 9.
There are two PLT32 relocs, but creating plt for them is not the duty of ld -r. Anyway.
Indeed. In regular modules there are many PLT32 relocs but no .plt, and I don't see any differences in cc/ld flags.