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: LD script: global symbols and multiple defintions


On Thu, Dec 18, 2014 at 05:24:04PM +0000, Ted Carter wrote:
> No, not using PROVIDE since the symbol would use the definition from the program.  I'm interested in what should happen when linker script variables conflict with symbols in the program.  The only reference in the ld docs I could find on this topic was the example in PROVIDE.  From the example:
> 
>      SECTIONS
>      {
>        .text :
>          {
>            *(.text)
>            _etext = .;
>            PROVIDE(etext = .);
>          }
>      }
> 
> "In this example, if the program defines `_etext' (with a leading underscore), the linker will give a multiple definition error."

Ah, sorry, I was being a little dense.

> If I replace _etext with foo and link with an object file that defines foo, like in my snippet, shouldn't I get an error?

According to the documentation, I guess so.  The source however has
this:
	      /* FIXME: Should we worry if the symbol is already
		 defined?  */
It's been that way for a long time.

-- 
Alan Modra
Australia Development Lab, IBM


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