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]

Overlap error not generated for sections w/o content


We use the following linker script excerpt to define the stack for CR16C
embedded systems:

.stack : { . += 0x600; }

since in our tool chain the input (ELF) files aren't comprised of .stack

If the linker script is erroneously written, so that the .stack load
address is set to a value which overlaps that of another output section,
no error is generated, since the SEC_ALLOC flag isn't set for .stack. E.g.

.data  0x1000 : { *(.data) }
.stack 0x1000 : { . += 600; }

does not cause an error nor a warning. Whereas if an output section data
expression (e.g. BYTE(0);) is used:

.stack 0x1000 : { BYTE(0);  . += 0x600; }

then the following error is generated, and thus users get indication of a
problematic situation:

section .stack [0001000 -> 0001600] overlaps section .data [0001000 -> 0001200]

Should a linker hook function (e.g. ldemul_after_allocation) be used to
generate an error in such a case, or is there a chance that this behavior will
be changed ?


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