binutils-gdb/ld/scripttempl
Jozef Lawrynowicz 64b63c2993 MSP430: Fix alignment of __*_array_start symbols in default linker script
__{preinit,init,fini}_array_start symbols must be word aligned in
linker scripts. If the section preceding the __*_array_start symbol
has an odd size, then a NULL byte will be present between the start
symbol and the .*_array section itself, when the section gets
automatically word-aligned.

This results in a branch to an invalid address when the CRT startup
code tries to run through the functions listed in the array sections.

Some MSP430 linker scripts do not align the __*_array start symbols, so
this added warning will catch that problem and help the user avoid
the potential incorrect execution of the program.

ld/ChangeLog:

	* emultempl/msp430.em (input_section_exists): New.
	(check_array_section_alignment): New.
	(gld${EMULATION_NAME}_finish): New.
	* scripttempl/elf32msp430.sc: Add ALIGN directives before the
	definition of __*_array_start symbols.
	* testsuite/ld-msp430-elf/finiarray-warn.ld: New test.
	* testsuite/ld-msp430-elf/finiarray-warn.r: New test.
	* testsuite/ld-msp430-elf/initarray-nowarn.ld: New test.
	* testsuite/ld-msp430-elf/initarray-warn.ld: New test.
	* testsuite/ld-msp430-elf/initarray-warn.r: New test.
	* testsuite/ld-msp430-elf/initarray.s: New test.
	* testsuite/ld-msp430-elf/msp430-elf.exp: Run new tests.
	* testsuite/ld-msp430-elf/preinitarray-warn.ld: New test.
	* testsuite/ld-msp430-elf/preinitarray-warn.r: New test.
2020-08-28 14:01:10 +01:00
..
aix.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
alpha.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
alphavms.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
aout.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
arclinux.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
armbpabi.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
avr.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
crisaout.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
dlx.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
DWARF.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf32cr16.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf32crx.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf32msp430.sc MSP430: Fix alignment of __*_array_start symbols in default linker script 2020-08-28 14:01:10 +01:00
elf32xc16x.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf32xc16xl.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf32xc16xs.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf64bpf.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf64hppa.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf_chaos.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf.sc ld: optionally emit _etext last, before .data 2020-07-19 06:08:07 +02:00
elfarc.sc ARC: Fix ld/pr24511 test 2020-07-31 12:15:17 +03:00
elfarcv2.sc [ARC][committed] Use DWARF.sc in elf linker script templates. 2020-01-13 11:16:47 +02:00
elfd10v.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elfd30v.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elfm9s12z.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elfm68hc11.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elfm68hc12.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elfmicroblaze.sc microblaze-linux XPASS ld-elf/var1 2020-06-30 13:32:04 +09:30
elfxgate.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elfxtensa.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
epiphany_4x4.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ft32.sc Add SORT_NONE to .init and .fini in scripts 2019-03-21 22:19:20 +10:30
hppaelf.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
i386beos.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
i386go32.sc [PATCH 1/2] coff-go32: update ldscript 2020-04-17 13:12:31 +01:00
i386msdos.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ia64vms.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ip2k.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
iq2000.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
mcorepe.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
mep.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
mips.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
mipsbsd.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
mmo.sc mmix ld: move .init (and _init) first. 2020-07-17 00:56:17 +02:00
moxie.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
nds32elf.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
pdp11.sc Fixes for the magic number used in PDP11 AOUT binaries. 2020-04-14 14:41:27 +01:00
pe.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
pep.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
pj.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
pru.sc Use the correct names for the init and fini array start symbols in the default Pru linker script. 2019-05-09 10:26:11 +01:00
README Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
sh.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
tic4xcoff.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
tic30coff.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
tic54xcoff.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
v850_rh850.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
v850.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
vanilla.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
visium.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
xstormy16.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
z80.sc Add support for the GBZ80, Z180, and eZ80 variants of the Z80 architecure. Add an ELF based target for these as well. 2020-01-02 14:14:59 +00:00
z8000.sc Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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-2020 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.