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*)¶meters->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
next prev parent 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).