[MIPS] Is it legal for the assembler to generate more than 64K sections?
Jack Carter
Jack.Carter@imgtec.com
Mon Feb 3 20:51:00 GMT 2014
________________________________________
From: Richard Sandiford [rdsandiford@googlemail.com]
Sent: Monday, February 03, 2014 12:29 PM
To: Jack Carter
Cc: H.J. Lu; binutils@sourceware.org
Subject: Re: [MIPS] Is it legal for the assembler to generate more than 64K sections?
>>
>> Does this mean everywhere in binutils and glibc for MIPS that there is a
>> data structure that could store a section index that it needs to be
>> increased to 32 bits?
>
>See:
>
> http://www.sco.com/developers/gabi/latest/ch4.eheader.html
>
>specifically:
>
>e_shnum
> This member holds the number of entries in the section header
> table. Thus the product of e_shentsize and e_shnum gives the section
> header table's size in bytes. If a file has no section header table,
> e_shnum holds the value zero.
>
> If the number of sections is greater than or equal to SHN_LORESERVE
> (0xff00), this member has the value zero and the actual number of
> section header table entries is contained in the sh_size field of
> the section header at index 0. (Otherwise, the sh_size member of the
> initial entry contains 0.)
>
>What's the problem you're seeing exactly? I wasn't sure from your
>original message.
>
>Thanks,
>Richard
We have a "canadian_cross" build of LLVM and have been getting off and on link time errors from one of the input object files RecursiveASTVisitorTest.o. :
(.text._ZN4llvm25SmallVectorTemplateCommonIN5clang19RecursiveASTVisitorINS1_11AttrVisitorEE10EnqueueJobEvE4backEv[_ZN4llvm25SmallVectorTemplateCommonIN5clang19RecursiveASTVisitorINS1_11AttrVisitorEE10EnqueueJobEvE4backEv]+0x64): relocation truncated to fit: R_MIPS_GOT16 against `no symbol'
Basically building LLVM with a MIPS GCC. I noticed that the section count was way above 16 bits and seized on that as being the culprit.
>From the information you and H.J. have pointed me to, I need to dig further. Why I never knew about this trap door for section overflow is beyond me :-| Probably since I never hit the limit myself.
Thanks,
Jack
More information about the Binutils
mailing list