This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [MIPS] Is it legal for the assembler to generate more than 64K sections?
- From: Andrew Pinski <pinskia at gmail dot com>
- To: Jack Carter <Jack dot Carter at imgtec dot com>
- Cc: Richard Sandiford <rdsandiford at googlemail dot com>, "H.J. Lu" <hjl dot tools at gmail dot com>, "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Mon, 3 Feb 2014 13:37:52 -0800
- Subject: Re: [MIPS] Is it legal for the assembler to generate more than 64K sections?
- Authentication-results: sourceware.org; auth=none
- References: <4CEFBC1BE64A8048869F799EF2D2EEEE4C6F2880 at BADAG02 dot ba dot imgtec dot org> <CAMe9rOrtyAQYyzRx4AbcmtCSKMr-rzjUcHEHsCAm60j_PhP5Uw at mail dot gmail dot com> <4CEFBC1BE64A8048869F799EF2D2EEEE4C6F2AA2 at BADAG02 dot ba dot imgtec dot org> <87mwi87xeu dot fsf at talisman dot default> <4CEFBC1BE64A8048869F799EF2D2EEEE4C6F2B73 at BADAG02 dot ba dot imgtec dot org> <87iosv9alm dot fsf at talisman dot default> <4CEFBC1BE64A8048869F799EF2D2EEEE4C6F2BA0 at BADAG02 dot ba dot imgtec dot org>
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
>