History log of /freebsd-10.2-release/gnu/usr.bin/binutils/ld/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
285830 23-Jul-2015 gjb

- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
builds.
- Update newvers.sh to reflect RC1.
- Update __FreeBSD_version to reflect 10.2.
- Update default pkg(8) configuration to use the quarterly branch.[1]

Discussed with: re, portmgr [1]
Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

257662 04-Nov-2013 brooks

MFC r257530

Reimplement r257525 such that it work with the historic FreeBSD make
implementation. This fixes the toolchain and kernel-toolchain targets
when building from older FreeBSD versions where make is fmake.

Sponsored by: DARPA/AFRL
Approved by: re (glebius)


257459 31-Oct-2013 brooks

MFC r257268:

Enable the --sysroot=/foo option in ld by always building with a sysroot
defined. When not building as a cross linker, the sysroot is set to "/".

Exp-run by: bdrewery (ports/183206)
Approved by: re (gjb)


256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


245101 06-Jan-2013 andrew

Set the correct relocation type for R_ARM_TARGET2 to R_ARM_GOT_PREL. The
TARGET2 relocation is unused in the current ABI but this change is
required for EABI support.


239272 15-Aug-2012 gonzo

Merging of projects/armv6, part 3

r238211:
Support TARGET_ARCH=armv6 and TARGET_ARCH=armv6eb

This adds a new TARGET_ARCH for building on ARM
processors that support the ARMv6K multiprocessor
extensions. In particular, these processors have
better support for TLS and mutex operations.

This mostly touches a lot of Makefiles to extend
existing patterns for inferring CPUARCH from ARCH.
It also configures:
* GCC to default to arm1176jz-s
* GCC to predefine __FreeBSD_ARCH_armv6__
* gas to default to ARM_ARCH_V6K
* uname -p to return 'armv6'
* make so that MACHINE_ARCH defaults to 'armv6'
It also changes a number of headers to use
the compiler __ARM_ARCH_XXX__ macros to configure
processor-specific support routines.

Submitted by: Tim Kientzle <kientzle@freebsd.org>


234782 29-Apr-2012 kib

Add src.conf option WITH_SHARED_TOOLCHAIN to enable building the
toolchain binaries as dynamically linked. Option is disabled by
default.

Reviewed by: ru (previous version)
MFC after: 2 weeks


227739 19-Nov-2011 andreast

Rename the linker emulation name for powerpc and powerc64. This is needed that
we can also use the upstream binutils linker where we have to have a unique
name for the FreeBSD emulation.


219876 22-Mar-2011 marcel

Change the load address from offset 0 in region 1 to offset 4G in region 0.
This (almost) gives us the address space back (at the bottom) that we lost
at the top.

Region 0 has traditionally been reserved for IA-32 emulation, which has not
been of great interest. By starting 64-bit processes at the 4G boundary we
at least preserve some of the advantages:
1. Any invalid pointer cast (from int to pointer and back) will still
always fail and not only when more than 4GB of memory is in use.
2. Memory sharing between 64-bit and 32-bit processes is still possibly
by using addresses < 4G.


219875 22-Mar-2011 marcel

Branch from contrib/binutils/ld/emulparams/elf64_ia64_fbsd.s so that
we can modify it.


219811 21-Mar-2011 marcel

Fix typo: s/LIBSERACHPATH/LIBSEARCHPATH/g


218822 18-Feb-2011 dim

Merge binutils 2.17.50 to head. This brings a number of improvements to
x86 CPU support, better support for powerpc64, some new directives, and
many other things. Bump __FreeBSD_version, and add a note to UPDATING.

Thanks to the many people that have helped to test this.

Obtained from: projects/binutils-2.17


217123 07-Jan-2011 imp

Retire TARGET_ABI.

Implement MACHINE_ARCH=mips64e[lb] to build N64 images. This replaces
MACHINE_ARCH=mipse[lb] TARGET_ABI=n64.

MACHINE_ARCH=mipsn32e[lb] has been added, but currently requires
WITHOUT_CDDL due to atomic issues in libzfs. I've not investigated
this much, but implemented this to preserve as much of the TARGET_ABI
functionality that I could. Since its presence doesn't affect the
working cases, I've kept it in for now.

Added mips64e[lb] to make universe, so more kernels build.

And I think this (finally) closes the curtain on the tbemd tree.


215439 17-Nov-2010 tijl

Let gcc and ld know where to find 32 bit libraries on amd64.

Reviewed by: arch@
Approved by: kib (mentor)


215082 10-Nov-2010 imp

Complete the integration of tbemd branch into head.

TARGET_BIG_ENDIAN is now completely dead, except where it was
originally supposed to be used (internally in the toolchain building).

TARGET_ARCH has changed in three cases:
(1) Little endian mips has changed to mipsel.
(2) Big endian mips has changed to mipseb.
(3) Big endian arm has changed to armeb.

Some additional changes are needed to make 'make universe' work on arm
and mips after this change, so those are commented out for now.

UPDATING information will be forthcoming. Any remaining rough edges
will be hammered out in -current.


209867 10-Jul-2010 nwhitehorn

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


209520 25-Jun-2010 jchandra

Add an alignment of 8 for sections in the n32 ABI. The default alignment
of of 4 causes _end to be word aligned, which will be returned by sbrk.

malloc(3), when compiled for n32, expects sbrk to return an 8-byte aligned
value.

Approved by: rrs (mentor)


208737 02-Jun-2010 jmallett

Add/improve mips64r2, Octeon, n32 and n64 support in the toolchain.

o) Add TARGET_ABI to the MIPS toolchain build process. This sets the default
ABI to one of o32, n32 or n64. If it is not set, o32 is assumed as that is
the current default.
o) Set the default GCC cpu type to any specified TARGET_CPUTYPE. This is
necessary to have a working "cc" if e.g. mips64 is specified, as binutils
will refuse to link objects using different ISAs in some cases.
o) Add support for n32 and n64 ABIs to binutils and GCC.
o) Add additional required libgcc2 stubs for n32 and n64.
o) Add support for the "mips64r2" architecture to GCC. Add the "octeon"
o) When static linking, wrap default libraries in --start-group and
--end-group. This is required for static linking to work on n64 with the
interdependencies between libraries there. This is what other OSes that
support n64 seem to do, as well.
o) Fix our GCC spec to define __mips64 for 64-bit targets, not __mips64__, the
former being what libgcc, etc., check and the latter seemingly being a
misspelling of a hand merge from a Linux spec.
o) When no TARGET_CPUTYPE is specified at build time, make GCC take the default
ISA from the ABI. Our old defaults were too liberal and assumed that 64-bit
ABIs should default to the MIPS64 ISA and that 32-bit ABIs should default to
the MIPS32 ISA, when we are supporting or will support some systems based on
earlier 32-bit and 64-bit ISAs, most notably MIPS-III.
o) Merge a new opcode file (and support code) from a later version of binutils
and add flags and code necessary to support Octeon-specific instructions.
This should also make merging opcodes for other modern architectures easier.

Reviewed by: imp


204685 04-Mar-2010 imp

Make the n32 scripts actually generate, ummm, n32 binaries... <blush>

Submitted by: jmallet


204548 02-Mar-2010 imp

Add n32 ABI generators...

Submitted by: neel, jmallet


203435 03-Feb-2010 imp

Remove alpha support from here too. FreeBSD 6 was the last branch to
support it.


201851 08-Jan-2010 imp

Merge r195575 and 195530 from projects/mips to head by hand:

r195575 | imp | 2009-07-10 12:24:02 -0600 (Fri, 10 Jul 2009) | 2 lines
quick hack for the problem gonzo is seeing.

r195530 | imp | 2009-07-10 01:18:30 -0600 (Fri, 10 Jul 2009) | 5 lines
Always build all 4 emulators into the mips toolchain.
# I think we have a gcc spec file issue with abi=64 since I have to do other
# hacks to get it mostly kinda right.


185923 11-Dec-2008 imp

Push mips support for ld into the tree.


172326 26-Sep-2007 marcel

Force -O1 compilation when targeted for ia64. GCC 4 generates
bad code at -O2. Since this is likely caused by the low-level
optimizer, testing TARGET_ARCH rather than MACHINE_ARCH should
handle ia64 cross-compilation as well. With this work-around
in place, we can release using the current GCC and Binutils
code at the default optimization level on ia64.

Approved by: re (kensmith)


172243 19-Sep-2007 obrien

Reduce diff to vendor for maintance purposes.

Approved by: re(ken)


172241 19-Sep-2007 thomas

In the case of a native build, set NATIVE to yes so that the code circuits
that need to be activated specifically for the case of a native linker
actually are enabled. Specifically, this makes ld(1) look for shared
libraries in LD_LIBRARY_PATH in the native case, as documented in the
man page.

PR: gnu/96481
Approved by: re (kensmith)
MFC after: 2 weeks


162301 14-Sep-2006 imp

scripts for the arm port.

Submitted by: cognet@
Reviewed by: obrien and kan


162300 14-Sep-2006 imp

Fix the build and minor cleanup.


162241 12-Sep-2006 obrien

Build 'ld' supporting a big endian ARM if "TARGET_BIG_ENDIAN" is defined.


160578 22-Jul-2006 obrien

Be consistent in quoting.


160576 22-Jul-2006 obrien

Create a genscripts driver based on the PowerPC one.


139112 21-Dec-2004 ru

NOSHARED -> NO_SHARED


131832 08-Jul-2004 obrien

MAJOR cleanup of the Bmake framework.
This includes removing all vestiges of the old not-really supported
ability to build cross tools targeting non-FreeBSD systems, such as
m68k Lynx and NetBSD. Move as much duplicated code from platform
Makefiles into the shared Makefiles. Add a simple mechanism for
specifying ELF 'ldscripts'. Also share as many .h files as possible
(now a single bfd.h vs. one per platform).


130757 20-Jun-2004 obrien

Our 'TOOLS_PREFIX' and not 'DESTDIR' matches what the stock GNU build
framework wants.


130575 16-Jun-2004 obrien

Updated Bmake framework for Binutils 2.15.


126197 24-Feb-2004 johan

style.Makefile(5):
Use WARNS?= instead of WARNS=

For this to work properly for all part is the subdirectories
the WARNS assignments in Makefile.inc0 are moved to the correspondning
Makefile.inc.

Approved by: obrien (binutils maintainer)
Tested by: make universe


119136 19-Aug-2003 obrien

Properly quote the lib path.


119051 17-Aug-2003 obrien

Stage 3 of dynamic root support, con't.
'ld' should also search /lib for dynamic libraries.


119050 17-Aug-2003 obrien

s/x86_64/amd64/g where possible.


117130 01-Jul-2003 obrien

Add elf_i386_fbsd emulation.

Obtained from: p4


114050 26-Apr-2003 obrien

The AMD64 Hammer bits.


114049 26-Apr-2003 obrien

Remove first attempt at x86-64 bits. We're going to call it "amd64" now.

Sponsored by: Microsoft


113398 12-Apr-2003 ru

Removed invasion into these makefiles by the "legacy" stuff;
I have a better fix in the works.


113369 11-Apr-2003 ru

libbinutils.a needs basename(3); when the latter is provided
by -legacy, liblegacy.a should come last in the LDADD list.


113136 05-Apr-2003 imp

Migrate to a new way of dealing with building from old revisions of
FreeBSD. This method attempts to centralize all the necessary hacks
or work arounds in one of two places in the tree (src/Makefile.inc1
and src/tools/build). We build a small compatibility library
(libbuild.a) as well as selectively installing necessary include
files. We then include this directory when building host binaries.

This removes all the past release compatibilty hacks from various
places in the tree. We still build on tip of stable and current. I
will work with those that want to support more, although I anticipate
it will just work.

Many thanks to ru@, obrien@ and jhb@ for providing valuable input at
various stage of implementation, as well as for working together to
positively effect a change for the better.


109618 21-Jan-2003 obrien

The PowerPC-specfic scripttempl file was depreciated in favor of the generic
ELF one.


107643 05-Dec-2002 obrien

Change the default emulation to elf64_sparc_fbsd. This emulation knows the
correct spelling of our rtld.


107641 05-Dec-2002 obrien

Change the default emulation to elf64_ia64_fbsd. This knows the proper
spelling of our rtld.


107504 02-Dec-2002 obrien

Update for the Binutils 2.13.2 20021127 snapshot import.


105502 20-Oct-2002 obrien

We HAVE_STPCPY now.


104961 12-Oct-2002 obrien

Update for 2.13 10-Oct-2002 import.


104878 11-Oct-2002 obrien

Sync with 2.13. Reduce forking by using multiple sed expressions rather
than piping thru tr(1). Also prefer case over for+test, as case will
handle regex's nicely.

Note we can't exactly follow the real 2.13 genscripts.sh as we wind up with
multiple "'s in search paths. It is too late tonight to track down why.


104876 11-Oct-2002 obrien

witch over to the new FreeBSD bfd vec and emulation


104875 11-Oct-2002 obrien

Switch over to the new FreeBSD emulation and bfd vec


100872 29-Jul-2002 ru

Drop support for COPY, -c has been the default mode of install(1)
for a long time now.

Approved by: bde


96853 18-May-2002 obrien

The AMD x86-64 Hammer bits.


96780 17-May-2002 obrien

Update to Binutils 2.12.0 and stick to the native emulation for now.
This lets us get on the with the task at hand -- porting FreeBSD.
We can get fancy later on.


93361 29-Mar-2002 obrien

Make it easier to change the native emulation.

Tested on: alpha, i386, sparc64


92840 20-Mar-2002 obrien

Update to Binutils 2.12.0 release.


92306 15-Mar-2002 obrien

Uggg!! LD ME HARDER!!
Rev 1.2 changed the default emulation from ``elf64_sparc'' to ``elf32_sparc''
and I never noticed it after my review of rev 1.1. Backing the change of
the default emulation out, and Wa-la!, I can now build a native [and usable]
binutils. WTF, the "-m elf64_sparc" parameter handed to `ld' by `gcc'
wasn't DTRT is beyond me.


92237 13-Mar-2002 obrien

Support linking with -z combreloc (combine and sort reloc sections) and with
--shared -z combreloc (shared library, combine & sort relocs)

Submitted by: peter
Bribed by: peter
Fixes: IA-64, Kaffe, and QT
Doesn't fix ports by: kris
Tested on: make(1) release w/docproj
Desired for: 5.0-DP#1
Approved by: murray
Seconded by: jhb


92206 13-Mar-2002 obrien

Turn up WARNS as high as possible.

Tested by: gcc31, gcc32, /usr/bin/cc


90330 07-Feb-2002 obrien

Set the SCRIPTDIR to be rooted at TOOLS_PREFIX rather than DESTDIR.
(the two may be different (ie, build vs. runtime))
Allow ldscript's SEARCH_DIR do be rooted somewhere other than `/'.
(in this case at TOOLS_PREFIX)

These changes are most helpful during `make buildworld' so that the shared
libs built in the middle of `make buildworld' are used vs. the ones in
/usr/lib on the build machine.

Submitted by: ru


89886 27-Jan-2002 obrien

Change the way the version strings are handled.


84954 15-Oct-2001 obrien

Binutils 2.11.2 build framework for the FreeBSD/IA-64 target.


84914 14-Oct-2001 obrien

You know the last revision will work better if the TARGET_TUPLE is set
conditionally....


84913 14-Oct-2001 obrien

Allow easier override of the configure tuple, in case you wanted to build
as "powerpc-obrien-freebsd" rahter than "powerpc-unknown-freebsd" for example.


84911 14-Oct-2001 obrien

Clean up a little bit more.


84910 14-Oct-2001 obrien

Clean up the formatting.


84909 14-Oct-2001 obrien

We do "sparc64", not "sparc".


83877 24-Sep-2001 ru

Fixed the buildworld breakage in cross-tools caused by
misuse of /usr/src/include headers. This REALLY fixes
the 20010919 src/UPDATING entry.

With this patch the 4.2-RELEASE box was able to survive
the 5.0-CURRENT "make world".

Beat over the head with this patch: obrien


77571 01-Jun-2001 obrien

Minor style reformatting.


77570 01-Jun-2001 obrien

Upgrade to Binutils 2.11.0.


77324 28-May-2001 obrien

Upgrade to Binutils 2.11.0.


76253 03-May-2001 obrien

Total hack to fix broken bootstrap. Add -I/usr/src/include at the tail
end of the include searching. We really need a real fix for the issue of
which set of headers to use in compiling the cross-tools -- /usr/include,
or /usr/src/include.


75400 11-Apr-2001 obrien

Remove MIPS support.
It has rotted quite badly and no one has provided updates for it.


73218 28-Feb-2001 obrien

Allow "NOSHARED" to be overridden.

Submitted by: bde


73146 27-Feb-2001 obrien

Make critical toolchain binaries staticly linked in this development
version of the OS.


72798 21-Feb-2001 obrien

Our OS name is "freebsd", not "freebsdelf"


69164 25-Nov-2000 obrien

`stringify.sed' has been replaced by `astring.sed' [on ANSI-C systems].


60777 22-May-2000 obrien

Pull the switch and activate our Binutils to a snapshot of the up and
comming 2.10 release.


58959 03-Apr-2000 steve

Build and install the elf32_sparc ld(1) scripts and make elf32_sparc
the default emulation.


58953 02-Apr-2000 steve

First cut at the (non-contrib) bits needed to build the binutils
distribution for FreeBSD/Sparc64.

Reviewed by: obrien


58947 02-Apr-2000 steve

The ld directory is in ${SRCDIR} not ${BINUTILSDISTDIR}.


58683 27-Mar-2000 bde

Use `${dir}/libfoo.a' instead of `-L${dir} -lfoo' for local static
libraries in LDADD so that `make checkdpadd' doesn't report non-errors.

Fixed some style bugs (the usual ones for DPADD and LDADD, and misformatting
of $FreeBSD$).


54748 17-Dec-1999 marcel

s/MACHINE_ARCH/TARGET_ARCH/g

The target machine is represented by TARGET_ARCH. MACHINE_ARCH always
represents the host machine. When TARGET_ARCH is not defined, it is
assumed to be equal to MACHINE_ARCH. This means that we're building a
native toolset by default. We're creating cross-compilation tools when
MACHINE_ARCH != TARGET_ARCH.

TARGET_ARCH is defined when building binutils as part of the bootstrap
build and is set to reflect the architecture we're currently cross-
building. With this change binutils is ready for cross-building.


52957 07-Nov-1999 jb

Replace freebsdelf with freebsd in most places.

Requested by: obrien


52943 06-Nov-1999 jb

Add support for additional architectures.


52941 06-Nov-1999 jb

Use the simplified genscripts.sh and set the cross-compiled library
directory to /usr/cross/${MACHINE_ARCH}-freebsdelf/usr/lib so that
the cross tools behave the same way that the host versions do. When
building cross tools, Cygnus doesn't set the default library directory.
This doesn't suit FreeBSD IMHO.

Add WinNT emulation support too. You only get this if you've set
BINUTILSDISTDIR because the contrib/binutils repository doesn't
contain the required sources.


52940 06-Nov-1999 jb

Use the simplified genscripts.sh and set the cross-compiled library
directory to /usr/cross/${MACHINE_ARCH}-freebsdelf/usr/lib so that
the cross tools behave the same way that the host versions do. When
building cross tools, Cygnus doesn't set the default library directory.
This doesn't suit FreeBSD IMHO.


52939 06-Nov-1999 jb

This is a simplified version of the binutils script which better suits
the (few) things that the FreeBSD makefiles need to specify.


52938 06-Nov-1999 jb

Add a BINUTILSDISTDIR hook here too.


50472 27-Aug-1999 peter

$Id$ -> $FreeBSD$


45904 21-Apr-1999 imp

TARGET was being defined wrong, causing ld to always fail. It is the
name of the bfd target, not the gnu-standard target name. Corrected
to be elf32-{big,little}mips from mipse[bl]-unknown-freebsd.

DEFAULT_EMULATION was bogusly defined, causing ld to always fail (this
was masked by the TARGET bogosity). Define correctly as elf32bmip and
elf32lmip. Mips doesn't follow the same conventions as i386 and alpha
do in this area.

ld now appears to work correctly for the uncommitted mips changes to
egcs.


44360 01-Mar-1999 imp

Add TARGET_ARCH=mipsel and TARGET_ARCH=mipseb as a valid targets.
Unlike the unisex architecutres we've had so far, mips is bisexual.
These tools can produce either byte sex, and the compiler/make
determines the proper gender to use. Otherwise, we'd have to have had
mipsel and mipseb in all the places that we have just mips. And there
are other complications with doing that (binutils doesn't like to
build mips tools without both byte genders, it seems).

Introduced BINUTIL_ARCH so that other bisexual architectures can a
generic mechanism.

We cannot just define MACHINE_ARCH as mips because we need to
differentiate big and little endian types of binaries. Discussions on
freebsd-arch have hashed out this issue (and the parallel libc
issues). NetBSD is moving towards mipsel and mipseb for their two
flavors of mips ports (in time for 1.4, if this change hasn't already
been accomplished).

I've been building i386 worlds with this tree for a three months with
these files in place with no ill effects.


38892 06-Sep-1998 jdp

Update for import of binutils-2.9.1.

Submitted by: Doug Rabson <dfr>


36627 04-Jun-1998 bde

Removed superfluous beforedepends. Their files were already in SRCS.


36623 04-Jun-1998 bde

Don't use beforedepend; just put generated headers in SRCS. ldgram.h
was already put in SRCS by the general yacc rules. Putting ldemul-list.h
in SRCS fixes races in `make -jN' when .depend hasn't been made.

Don't forget to clean ldemul-list.h.


36615 03-Jun-1998 peter

Add missing DPADD's.


35946 11-May-1998 jb

The yacc makefile changes don't seem to know when to generate the
header file and when not to, so for the time being make sure the
sucker gets generated up front.


35717 04-May-1998 jb

Work out the list of emulations based on the cross-architectures
defined. The TARGET is now set from an included makefile.


35716 04-May-1998 jb

Add cross-architecture support.


35692 04-May-1998 bde

Fixed races in `make -jN' using new yacc rules. This also fixes plain
`make' (without a previous `make depend').


34955 30-Mar-1998 jdp

Give up on a.out support in binutils. It has too many problems to
be worth much effort. Install all i386 binutils programs in
"/usr/libexec/elf". Disable a.out support in libbfd. It's too
dangerous to leave it in. Some of the utilities think they can
handle a.out, but they generate bad object files.


34495 12-Mar-1998 jdp

Restructure the binutils hierarchy somewhat in order to better
support building it for variant architectures. It was already
becoming clear that the former structure was too rigid and didn't
scale well.

The usual sort of makefile magic arranges to .include an architecture
specific makefile "Makefile.${MACHINE_ARCH}" in each directory
where it exists. Also, sources will be found in each subdirectory
"${MACHINE_ARCH}" that exists. This is all taken care of automatically
by the top level "Makefile.inc0".

This all seems to work right for the i386 now. I have also converted
those alpha pieces already present to the new schema as best I
could.

Also: change the BINDIR on the i386 to /usr/libexec/elf for "ar"
and "ranlib". They are not object format independent enough to
put into /usr/bin.