--no-undefined-version

Ian Lance Taylor iant@google.com
Wed Jan 6 05:25:00 GMT 2010


"H.J. Lu" <hjl.tools@gmail.com> writes:

> On Tue, Jan 5, 2010 at 5:04 PM, Ian Lance Taylor <iant@google.com> wrote:
>> The GNU ld option --no-undefined-version is defined as follows:
>>
>>    Normally when a symbol has an undefined version, the linker will
>>    ignore it.  This option disallows symbols with undefined version
>>    and a fatal error will be issued instead.
>>
>> As far as I can tell, what the option actually does is this:
>>
>> For each version defined in a version script:
>>  for each global symbol pattern in that version listed in the script:
>>    if the pattern is a literal string--not a wildcard pattern:
>>      if the pattern does not match any symbol defined in the link:
>>        give an error.
>>
>> In other words, the option does not check for symbols with undefined
>> versions.  It checks for cases where a version script explicitly lists
>> a symbol, but the symbol is not defined.
>>
>
> That is what I meant by "a symbol has an undefined version".
> A version script declares a symbol with multiple versions. This
> option checks if any version of such a symbol is undefined.

Well, OK, I guess, but I still find the current text to be quite hard
to understand.  When I think of a symbol with an undefined version, I
think of an undefined reference to SYM@VER.

Anyhow, thanks for confirming that I've understood the code correctly.

Ian



More information about the Binutils mailing list