An assignment to dot in an output section that allocates space of course keeps the output section. Here, I'm changing the behaviour for assignments that don't allocate space. The idea is not so much to allow people to force output of an empty section with ". = .", but to fix cases where an otherwise empty section has padding added by an alignment expression that changes with relaxation or .eh_frame editing. Such a section might have zero size before relaxation and so be stripped incorrectly. ld/ * ld.texinfo (Output Section Discarding): Mention assigning to dot as a way of keeping otherwise empty sections. * ldexp.c (is_dot, is_value, is_sym_value, is_dot_ne_0, is_dot_plus_0, is_align_conditional): New predicates. (exp_fold_tree_1): Set SEC_KEEP when assigning to dot inside an output section, except for some special cases. * scripttempl/elfmicroblaze.sc: Use canonical form to align at end of .heap and .stack. ld/testsuite/ * ld-shared/elf-offset.ld: Align end of .bss with canonical form of ALIGN that allows an empty .bss to be removed. * ld-arm/arm-dyn.ld: Likewise. * ld-arm/arm-lib.ld: Likewise. * ld-elfvsb/elf-offset.ld: Likewise. * ld-mips-elf/mips-dyn.ld: Likewise. * ld-mips-elf/mips-lib.ld: Likewise. * ld-arm/arm-no-rel-plt.ld: Remove duplicate ALIGN. * ld-powerpc/vle-multiseg-1.ld: Remove ALIGN at start of section. ALIGN address of section instead. * ld-powerpc/vle-multiseg-2.ld: Likewise. * ld-powerpc/vle-multiseg-3.ld: Likewise. * ld-powerpc/vle-multiseg-4.ld: Likewise. * ld-powerpc/vle-multiseg-6.ld: Likewise. * ld-scripts/empty-aligned.d: Check section headers not program headers. Remove xfail and notarget. * ld-scripts/empty-aligned.t: Use canonical ALIGN for end of .text2. |
||
---|---|---|
.. | ||
DWARF.sc | ||
README | ||
aix.sc | ||
alpha.sc | ||
alphavms.sc | ||
aout.sc | ||
armaout.sc | ||
armbpabi.sc | ||
armcoff.sc | ||
avr.sc | ||
crisaout.sc | ||
delta68.sc | ||
dlx.sc | ||
elf.sc | ||
elf32cr16.sc | ||
elf32cr16c.sc | ||
elf32crx.sc | ||
elf32msp430.sc | ||
elf32msp430_3.sc | ||
elf32sh-symbian.sc | ||
elf32xc16x.sc | ||
elf32xc16xl.sc | ||
elf32xc16xs.sc | ||
elf64hppa.sc | ||
elf_chaos.sc | ||
elfd10v.sc | ||
elfd30v.sc | ||
elfi370.sc | ||
elfm68hc11.sc | ||
elfm68hc12.sc | ||
elfmicroblaze.sc | ||
elfxgate.sc | ||
elfxtensa.sc | ||
epiphany_4x4.sc | ||
epocpe.sc | ||
h8300.sc | ||
h8300h.sc | ||
h8300hn.sc | ||
h8300s.sc | ||
h8300sn.sc | ||
h8300sx.sc | ||
h8300sxn.sc | ||
h8500.sc | ||
h8500b.sc | ||
h8500c.sc | ||
h8500m.sc | ||
h8500s.sc | ||
hppaelf.sc | ||
i386beos.sc | ||
i386coff.sc | ||
i386go32.sc | ||
i386msdos.sc | ||
i860coff.sc | ||
i960.sc | ||
ia64vms.sc | ||
ip2k.sc | ||
iq2000.sc | ||
m68kaux.sc | ||
m68kcoff.sc | ||
m88kbcs.sc | ||
mcorepe.sc | ||
mep.sc | ||
mips.sc | ||
mipsbsd.sc | ||
mmo.sc | ||
moxie.sc | ||
nds32elf.sc | ||
nw.sc | ||
or32.sc | ||
pe.sc | ||
pep.sc | ||
pj.sc | ||
ppcpe.sc | ||
psos.sc | ||
riscix.sc | ||
sh.sc | ||
sparccoff.sc | ||
st2000.sc | ||
tic4xcoff.sc | ||
tic30aout.sc | ||
tic30coff.sc | ||
tic54xcoff.sc | ||
tic80coff.sc | ||
v850.sc | ||
v850_rh850.sc | ||
vanilla.sc | ||
w65.sc | ||
xstormy16.sc | ||
z80.sc | ||
z8000.sc |
README
The files in this directory are linker script templates.
genscripts.sh sets some shell variables, then sources
EMULATION.sc, to generate EMULATION.{x,xr,xu,xn,xbn} -- the script
files for default, -r, -Ur, -n, -N.
Copyright (C) 2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.