This is the mail archive of the binutils@sources.redhat.com 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: Linkerscript


It is defined as:
#define SECTION_vectors(_region_, _vma_, _lma_)        \
  .vectors _vma_ : _lma_                                              \
  { FORCE_OUTPUT; KEEP(*(.vectors)) }         \
  > _region_

And FORCE_OUTPUT = _. = ._

But if FORCE_OUTPUT is left away it still will generate a output in my
opinion....

-----Original Message-----
From: Nick Clifton [mailto:nickc@redhat.com]
Sent: vrijdag 8 oktober 2004 09:22
To: Meulendijks, J.
Cc: 'binutils@sources.redhat.com'
Subject: Re: Linkerscript


Hi jeroen,

> I have a question about the linkerscript automatically generated by eCos. 

For which particular target ?

> On a
> couple of lines the expression ". = .;" is used. What is de meaning of this?
> What does it do?

Nothing - it is a null operation.

> Example:
>     .vectors 0x00400000 : { . = .; KEEP(*(.vectors)) } > ram

The source for this particular linker script appears to be eCos 
specific, since I did not find it in the binutils repository.  My guess 
would be that in the original source there is an extra expression which 
can be conditionally included as part of this assignment.  eg something 
like:

  .vectors 0x00400000 : { . = . $(VECTOR_OFFSET);

where VECTOR_OFFSET might be defined as "" under some circumstances and 
as say "+ 0x1000" under other circumstances.  (I am just guessing here).

Cheers
   Nick


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