Commit Graph

109 Commits

Author SHA1 Message Date
Andriy Gapon
517d9fc653 binutils/ld: fix incorrect placement of __start_SECNAME in some cases
__start_SECNAME and __stop_SECNAME symbols are automatically generated
by ld for orphan sections, i.e. those not explicitely referenced by a
linker script.  The symbols are supposed to be placed correspondingly
at the start and the end of the section in output file.  In some cases
__start_SECNAME may be placed at the address after the end of the
previous section (if any) and before the start the section.  This
happens when following conditions are met:
1. the orphan section is found in more than one input file
2. the orphan section has different alignment requirements across input
files
3. the first instance of the section encountered doesn't have the
greatest alignment requirement
In these conditions resulting output section will be placed at address
after the end of the previous section aligned to the greatest alignment
requirement in the inputs, but __start_SECNAME will be placed at address
after the end of the previous section aligned to the alignment
requirement of the first input in which the section is encountered.

See commit message of r196118 for a concrete example of problems caused
by this bug.

The fix is to place __start_SECNAME inside the section and use ABSOLUTE
directive, rather than placing __start_SECNAME outside the section and
trying to guess address alignment.

This fix is in line with upstream binutils change/fix made between
versions 2.19 and 2.20 in revision of 1.307 ldlang.c.

MFC after:	3 weeks
2010-07-19 18:20:44 +00:00
Nathan Whitehorn
2cf64c8006 Teach our toolchain how to generate 64-bit PowerPC binaries. This fixes
a variety of bugs in binutils related to handling of 64-bit PPC ELF,
provides a GCC configuration for 64-bit PowerPC on FreeBSD, and
associated build systems tweaks.

Obtained from:	projects/ppc64
2010-07-10 02:29:22 +00:00
Warner Losh
d9964624bd Push mips support into the tree. 2008-12-11 08:22:20 +00:00
David E. O'Brien
de582f44b4 This commit was generated by cvs2svn to compensate for changes in r179404,
which included commits to RCS files with non-trunk default branches.
2008-05-29 02:29:59 +00:00
David E. O'Brien
b7e4108c6b Import of Binutils from the FSF 2.15 branch (just post-.0 release).
These bits are taken from the FSF anoncvs repo on 23-May-2004 04:41:00 UTC.
2008-05-29 02:29:59 +00:00
David E. O'Brien
e74f71ff7f Import of Binutils from the FSF 2.15 branch (just post-.0 release).
These bits are taken from the FSF anoncvs repo on 23-May-2004 04:41:00 UTC.
2004-07-06 19:16:23 +00:00
David E. O'Brien
3cc52aa5e0 This commit was generated by cvs2svn to compensate for changes in r131722,
which included commits to RCS files with non-trunk default branches.
2004-07-06 19:16:23 +00:00
David E. O'Brien
6c81463f56 Update HEAD with the stock binutils_2_15_20040523 file. 2004-06-16 06:55:49 +00:00
David E. O'Brien
a7c7527613 Merge rev 1.2 (teach `ld' how to access FreeBSD's ld ELF hints) into
Binutils 2.15.
2004-06-16 06:09:06 +00:00
David E. O'Brien
56f1abf2e4 Merge rev 1.2 (FreeBSD a.out configuration support) into Binutils 2.15. 2004-06-16 06:03:34 +00:00
David E. O'Brien
da03bc7002 Import of Binutils from the FSF 2.15 branch (just post-.0 release).
These bits are taken from the FSF anoncvs repo on 23-May-2004 04:41:00 UTC.
2004-06-16 05:45:41 +00:00
David E. O'Brien
ad6e3f2b73 This commit was generated by cvs2svn to compensate for changes in r130561,
which included commits to RCS files with non-trunk default branches.
2004-06-16 05:45:41 +00:00
David E. O'Brien
18dcca33ad Things that never should have been imported. 2003-03-02 19:10:30 +00:00
David E. O'Brien
78ffae804d This commit was generated by cvs2svn to compensate for changes in r111756,
which included commits to RCS files with non-trunk default branches.
2003-03-02 19:10:30 +00:00
David E. O'Brien
a46000f2ca Update HEAD with the stock files. 2002-12-02 09:39:02 +00:00
David E. O'Brien
fc91886f96 Merge rev 1.2 (teach `ld' how to access FreeBSD's ld ELF hints)
into the Binutils 2.13.2 20021128 snap.
2002-12-02 09:31:42 +00:00
David E. O'Brien
ca88f70eac GC some stuff I thought was long gone. 2002-12-02 09:14:25 +00:00
David E. O'Brien
898696a8b3 Import of Binutils from the FSF 2.13 branch (just pre-.2 release).
These bits are taken from the FSF anoncvs repo on 27-Oct-2002 21:12:00 EST.
2002-12-02 09:06:04 +00:00
David E. O'Brien
6c3a332e94 This commit was generated by cvs2svn to compensate for changes in r107492,
which included commits to RCS files with non-trunk default branches.
2002-12-02 09:06:04 +00:00
David E. O'Brien
e4c6a19966 Try to keep CVS from pissing over the next binutils import by returning
to purely stock files.
2002-12-02 08:42:08 +00:00
David E. O'Brien
4b929acc3a Use the stock version of this. 2002-10-11 06:19:00 +00:00
David E. O'Brien
9c471f24a5 Merge rev 1.2 (teach `ld' how to access FreeBSD's ld ELF hints)
into Binutils 2.13.1 snap.
2002-10-11 06:15:47 +00:00
David E. O'Brien
905effa7f9 Bring the binutils_2_13_20021110_snap version of this to the HEAD branch. 2002-10-11 06:14:49 +00:00
David E. O'Brien
20a2e75fd9 Bring the 2.13 snap version of this to the HEAD branch. 2002-10-11 06:13:48 +00:00
David E. O'Brien
30727853c0 Use the stock 2.13.1 snapshot version of this. 2002-10-11 06:13:25 +00:00
David E. O'Brien
5842e6136c Merge rev 1.2 (FreeBSD a.out configuration support) into the
Binutils 2.13_20021110 snap.
2002-10-11 06:13:00 +00:00
David E. O'Brien
88e5f95a93 Import of Binutils from the FSF 2.13 branch (just pre-.1 release).
These bits are taken from the FSF anoncvs repo on 11-Oct-2002 22:39:35 PDT.
2002-10-11 06:01:20 +00:00
David E. O'Brien
8febaae8e2 This commit was generated by cvs2svn to compensate for changes in r104834,
which included commits to RCS files with non-trunk default branches.
2002-10-11 06:01:20 +00:00
David E. O'Brien
c06f26c5b8 Remove these Bintuils 2.11 files that aren't part of 2.12. 2002-09-01 17:51:18 +00:00
David E. O'Brien
f862c555e6 Import of Binutils from the FSF 2.12 branch (post-.1 release). 2002-08-31 20:20:07 +00:00
David E. O'Brien
a00bb00510 This commit was generated by cvs2svn to compensate for changes in r102729,
which included commits to RCS files with non-trunk default branches.
2002-08-31 20:20:07 +00:00
David E. O'Brien
89b2e0c349 Merge rev 1.2 (FreeBSD a.out configuration support) into the
Binutils 2.12_20020622 snap.
2002-07-05 20:44:29 +00:00
David E. O'Brien
aabeabed7c Use the stock 2.12.1 snapshot version of this. 2002-07-05 20:42:13 +00:00
David E. O'Brien
ec2cc9b872 Use the stock version of this. 2002-07-05 20:37:36 +00:00
David E. O'Brien
c7549e32a4 Import of Binutils from the FSF 2.12 branch (just post-.1 release).
These bits are taken from the FSF anoncvs repo on 22-June-2002 23:28:00 EDT.
2002-07-05 20:16:34 +00:00
David E. O'Brien
95cd50e6d7 This commit was generated by cvs2svn to compensate for changes in r99461,
which included commits to RCS files with non-trunk default branches.
2002-07-05 20:16:34 +00:00
David E. O'Brien
1fd0912fbd Use the stock 2.12 snapshot version of this. 2002-04-12 19:55:38 +00:00
David E. O'Brien
8ce8f99278 Merge rev 1.2 (FreeBSD a.out configuration support) into the
Binutils 2.12_20020410 snap.
2002-04-12 19:54:53 +00:00
David E. O'Brien
0aecce1e34 Import of Binutils from the FSF 2.12 branch.
(this fixes several linker problems and coredumps)
These bits are taken from the FSF anoncvs repo on 10-April-2002 13:24 Zulu
2002-04-12 19:33:52 +00:00
David E. O'Brien
d31ed8e471 This commit was generated by cvs2svn to compensate for changes in r94536,
which included commits to RCS files with non-trunk default branches.
2002-04-12 19:33:52 +00:00
David E. O'Brien
694ba608d4 Merge rev 1.2 (teach `ld' how to access FreeBSD's ld ELF hints)
into Binutils 2.12.0.
2002-03-20 22:04:42 +00:00
David E. O'Brien
0b17d82867 Use the stock version of this. 2002-03-20 22:03:53 +00:00
David E. O'Brien
76d0de241e Bring the 2.12.0 release version of this to the HEAD branch. 2002-03-20 22:02:35 +00:00
David E. O'Brien
55ba99bb8d Import of Binutils from the FSF 2.12 branch (just post-.0 release).
These bits are taken from the FSF anoncvs repo on 20-March-2002 13:33:33 PST.
2002-03-20 21:37:13 +00:00
David E. O'Brien
771ecfb273 This commit was generated by cvs2svn to compensate for changes in r92828,
which included commits to RCS files with non-trunk default branches.
2002-03-20 21:37:13 +00:00
David E. O'Brien
9d34368f3a Merge rev 1.2 (teach `ld' how to access FreeBSD's ld ELF hints)
into Binutils 2.12_20020221_snap.
2002-02-22 04:52:00 +00:00
David E. O'Brien
dd23d95f1b Bring the binutils_2_12_20020221_snap version of this to the HEAD branch. 2002-02-22 04:51:15 +00:00
David E. O'Brien
a6c1198cb5 Merge rev 1.2 (FreeBSD a.out configuration support) into
Binutils 2.12_20020221_snap.
2002-02-22 04:49:49 +00:00
David E. O'Brien
eb1d121cb5 Import of Binutils from the FSF 2.12 branch (pre-.0 release).
These bits are taken from the FSF anoncvs repo on 21-Feburary-2002 20:15 PST.
2002-02-22 04:18:42 +00:00
David E. O'Brien
9e68b78882 This commit was generated by cvs2svn to compensate for changes in r91041,
which included commits to RCS files with non-trunk default branches.
2002-02-22 04:18:42 +00:00