modpost: NOBITS sections may point beyond the end of the file
authorTejun Heo <tj@kernel.org>
Thu, 5 Feb 2009 15:48:02 +0000 (00:48 +0900)
committerIngo Molnar <mingo@elte.hu>
Thu, 5 Feb 2009 19:25:43 +0000 (20:25 +0100)
commit56fc82c5360cdf0b250b5eb74f38657b0402faa5
treed574e2561849aa76a5caac6cf2e791f524e33b7b
parent130ace11a9dc682541336d1fe5cb3bc7771a149e
modpost: NOBITS sections may point beyond the end of the file

Impact: fix link failure on certain toolchains with specific configs

Recent percpu change made x86_64 split .data.init section into three
separate segments - data.init, percpu and data.init2.  data.init2 gets
.data.nosave and .bss.* and is followed by .notes segment.  Depending
on configuration both segments might contain no data, in which case
the tool chain makes the section header to contain offset beyond the
end of the file.

modpost isn't too happy about it and fails build - as reported by
Pawel Dziekonski:

    Building modules, stage 2.
    MODPOST 416 modules
    FATAL: vmlinux is truncated. sechdrs[i].sh_offset=10354688 >
    sizeof(*hrd)=64
    make[1]: *** [__modpost] Error 1

Teach modpost that NOBITS section may point beyond the end of the file
and that .modinfo can't be NOBITS.

Reported-by: Pawel Dziekonski <dzieko@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
scripts/mod/modpost.c