public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Ian Lance Taylor <iant@google.com>
To: Jiong WANG <wong.kwongyuan@gmail.com>
Cc: binutils@sourceware.org
Subject: Re: [GOLD] How can I add a undefined symbol in target implementation, not by "-u SYM" from command line ?
Date: Tue, 14 Aug 2012 04:54:00 -0000	[thread overview]
Message-ID: <CAKOQZ8wFMPH80JRfDJze4bcFhK2CtOYOTu6M0RZ3TE8EzKL-pA@mail.gmail.com> (raw)
In-Reply-To: <CA++uP6OCdC0e4NGK9pXE9F3=VUOPi22z_Lv1fcaz0_w=F5PQZA@mail.gmail.com>

On Mon, Aug 13, 2012 at 8:30 PM, Jiong WANG <wong.kwongyuan@gmail.com> wrote:
> 2012/8/13 Ian Lance Taylor <iant@google.com>:
>> On Mon, Aug 13, 2012 at 3:25 AM, Jiong WANG <wong.kwongyuan@gmail.com> wrote:
>>>
>>>   How can I predefine a undefined symbol in target implementation?
>>>
>>>   actually, I am porting gold for tilegx, and our arch's tls
>>> implementation requires predefiniation of "_tls_get_addr" because the
>>> assembler generate relocation which use this symbol implicitly.
>>>
>>>    I know there are interfaces,  "define_in_output_data/segment" to
>>> predefined symbol with value, but there is no interface to predefine
>>> "undefined" symbol ?
>>>
>>>    gold linker do support this by command line "-u SYMBOL",  but it's
>>> a compile time decision not link time.
>>>
>>>    currently, I managed to support this by the following ugly code:
>>>
>>>     options::parse_set(NULL, "_tls_get_addr",
>>> (gold::options::String_set*)&parameters->options().undefined());
>>>
>>>    which is bad, so, could anyone give me some suggestion on this?
>>
>>
>> I assume that the symbol is defined somewhere.  You probably want to
>> add a do_is_defined_by_abi method to your Target.  See the examples in
>> existing targets.
>
> Hi Ian & all, thanks for your suggestion.
>
> I have explored do_is_defined_by_abi, and found it's mostly to avoid
> warning, but not for creating such a symbol
>
> do_is_defined_by_abi has one argument of the type "const Symbol*",  so
> when it's invoked, that symbol should already existed.

> ...

>   basically, I want to create a symbol which is neither against
> section or segment, just a normally external function symbol.

I'm sorry, I don't understand what you mean.

If there is no reference to __tls_get_addr in the object files, why do
you care whether it is defined?

If there is a reference in the object files, then where is it defined?

You seem to be asking how to create an undefined symbol, as though
used with the -u option.  But that makes no sense.  Why would you want
that?  The purpose of the -u option is to add a reference to a symbol
in order to fetch the definition from an archive.

Ian

  reply	other threads:[~2012-08-14  4:40 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-13 10:51 Jiong WANG
2012-08-13 14:11 ` Jiong WANG
2012-08-13 15:39 ` Ian Lance Taylor
2012-08-14  3:39   ` Jiong WANG
2012-08-14  4:54     ` Ian Lance Taylor [this message]
2012-08-14  5:26       ` WANG.Jiong
2012-08-14  5:35         ` Ian Lance Taylor
2012-08-14  6:34           ` WANG.Jiong
2012-08-17  3:54           ` [GOLD] Where can I found other target's test result? WANG.Jiong
2012-08-17  6:29             ` Ian Lance Taylor
2012-08-17  9:32               ` Jiong WANG

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAKOQZ8wFMPH80JRfDJze4bcFhK2CtOYOTu6M0RZ3TE8EzKL-pA@mail.gmail.com \
    --to=iant@google.com \
    --cc=binutils@sourceware.org \
    --cc=wong.kwongyuan@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).