[MIPS] Is it legal for the assembler to generate more than 64K sections?

Andrew Pinski pinskia@gmail.com
Mon Feb 3 21:37:00 GMT 2014


On Mon, Feb 3, 2014 at 1:12 PM, Jack Carter <Jack.Carter@imgtec.com> wrote:
>>(.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.
>>
>>Ah, OK.  Looks like a multigot failure at face value.  Are you using
>>recent binutils (2.24)?  It has some fixes in that area.
>
> I rebased on Thursday.
>
> Multigot is a good area for me to look since I am mucking with the got with ifunc anyway.


It could also be that the GOT for that object file is just too big.  I
bet that is the case which means you need to use the option -mxgot .
Multigot only works with different object files, it does not work
inside one object file as far as I know.

Thanks,
Andrew Pinski

>
> Cheers,
>
> Jack
>
>>
>>Thanks,
>>Richard
>



More information about the Binutils mailing list