This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: PR binutils/12639: nm/readelf failed to detect corrupted symtab


On Tue, Apr 5, 2011 at 10:01 PM, Alan Modra <amodra@gmail.com> wrote:
> On Tue, Apr 05, 2011 at 08:13:48PM -0700, H.J. Lu wrote:
>> Linker will treat main as local no matter what symtab says.
>
> Right.
>
>> For all practical purposes, any symbol before sh_info is
>> a local symbol.
>>
>> > What created this bad object file?
>>
>> They should remain nameless if possible :-).
>
> :-) ?I think you have three options:
> a) Issue an error, and refuse to link the bad object file, or

We do get a linker error today:

[hjl@gnu-6 cq167859]$ make
./ld -o bad tr70098.bad.o start.o
start.o: In function `_start':
(.text+0x1): undefined reference to `main'
make: *** [bad] Error 1
[hjl@gnu-6 cq167859]$

since main is treated as local. But the output of "nm/readelf" looks normal.
My change makes "nm/readelf" to flag the bad symtab.

> b) Create a new target with elf_bad_symtab set for the target, or
> c) Provide some other means of setting elf_bad_symtab.
>
> I really don't like (b). ?(c) is a pain, since it isn't just ld, but
> objcopy, objdump, etc.
>

I don't want (b) nor (c). I want

d) nm/readelf reports error on those bad input files.

That is what my patch implements.


-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]