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: binutils 2.19.92 linker broke with --as-needed flag


Hi Richard,

I appreciate if you can take a look at this issue.

TIA,

Vincent


On Thu, Mar 28, 2013 at 5:49 PM, David Daney <ddaney.cavm@gmail.com> wrote:
> On 03/28/2013 04:21 PM, Vincent Wen wrote:
>>
>> Eric,
>>
>> Thanks a lot for clarification!
>>
>> Alan,
>>
>> So I am testing the following patch per our discussion. Please let me
>> know if anything missing.
>>
>
> It may be worth having Richard Sandiford look at this.  He has been doing
> most of the MIPS patch reviews of late...
>
>
> David Daney
>
>
>
>> Thanks,
>>
>> Vincent
>>
>> --- a/bfd/elfxx-mips.c    2013-02-10 16:50:56.000000000 -0800
>> +++ b/bfd/elfxx-mips.c    2013-02-10 17:14:06.000000000 -0800
>> @@ -4681,12 +4681,9 @@
>>     h->non_elf = 0;
>>     h->def_regular = 1;
>>     h->type = STT_OBJECT;
>> +  h->other = STV_HIDDEN;
>>     elf_hash_table (info)->hgot = h;
>>
>> -  if (info->shared
>> -      && ! bfd_elf_link_record_dynamic_symbol (info, h))
>> -    return FALSE;
>> -
>>     amt = sizeof (struct mips_got_info);
>>     g = bfd_alloc (abfd, amt);
>>     if (g == NULL)
>>
>> On Thu, Mar 28, 2013 at 3:02 PM, Eric Christopher <echristo@gmail.com>
>> wrote:
>>>
>>> On Wed, Mar 27, 2013 at 7:36 PM, Alan Modra <amodra@gmail.com> wrote:
>>>>
>>>> On Wed, Mar 27, 2013 at 06:54:39PM -0700, Vincent Wen wrote:
>>>>>
>>>>> Alan,
>>>>>
>>>>> Who is the MIPS maintainer?
>>>>
>>>>
>>>> Theoretically Eric Christopher, but binutils/MAINTAINERS lists an
>>>> old email address and it's been a while since we've seen him around
>>>> here.  Eric, can you comment on the code below?
>>>>
>>>
>>> Yeah, it's been a while. Sorry about that. I'll update everything at some
>>> point
>>> though I'm no longer doing anything with MIPS (or mn10300) so while I can
>>> pitch in on occasion I could also move myself to write-after-approval
>>> if you'd like.
>>>
>>>>> On Wed, Mar 27, 2013 at 5:02 PM, Alan Modra <amodra@gmail.com> wrote:
>>>>>>
>>>>>> On Wed, Mar 27, 2013 at 10:24:51AM -0700, Vincent Wen wrote:
>>>>>>>
>>>>>>> Alan,
>>>>>>>
>>>>>>> I'd like to know whether the patch for this issue is accepted or not?
>>>>>>
>>>>>>
>>>>>> That really is up to one of the MIPS maintainers.  As I said in
>>>>>> http://sourceware.org/ml/binutils/2013-02/msg00159.html the MIPS
>>>>>> backend
>>>>>> wants _GLOBAL_OFFSET_TABLE_ dynamic for some reason.
>>>>>>
>>>>>>    bh = NULL;
>>>>>>    if (! (_bfd_generic_link_add_one_symbol
>>>>>>           (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s,
>>>>>>            0, NULL, FALSE, get_elf_backend_data (abfd)->collect,
>>>>>> &bh)))
>>>>>>      return FALSE;
>>>>>>
>>>>>>    h = (struct elf_link_hash_entry *) bh;
>>>>>>    h->non_elf = 0;
>>>>>>    h->def_regular = 1;
>>>>>>    h->type = STT_OBJECT;
>>>>>>    elf_hash_table (info)->hgot = h;
>>>>>>
>>>>>>    if (info->shared
>>>>>>        && ! bfd_elf_link_record_dynamic_symbol (info, h))
>>>>>>      return FALSE;
>>>>>>
>>>>>> I think that is just plain wrong, but I don't know the history of this
>>>>>> code.
>>>
>>>
>>> It's been that way since the original revision and that's a long long
>>> time
>>> ago. :) I think I noticed it at one point and thought it odd, but I'm not
>>> sure
>>> what it was actually for... some oddity on SGI machines that depended
>>> upon a dynamic _GLOBAL_OFFSET_TABLE_ that only appeared if there
>>> were entries? If there's anything weird the easiest assumption is "SGI
>>> was weird".
>>>
>>> Sorry I couldn't be more help.
>>>
>>> -eric
>>
>>
>>
>


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