This is the mail archive of the 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: [GOLD] How can I add a undefined symbol in target implementation, not by "-u SYM" from command line ?

On Mon, Aug 13, 2012 at 8:30 PM, Jiong WANG <> wrote:
> 2012/8/13 Ian Lance Taylor <>:
>> On Mon, Aug 13, 2012 at 3:25 AM, Jiong WANG <> 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.


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