diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2014-06-13 12:38:00 -0700 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2014-06-13 12:38:00 -0700 |
commit | 54f1b3cf509cd889905287cb8ce6c5ae33911a21 (patch) | |
tree | e39b1a7fa04db86a8215b7f9d4656d74e394aec0 /binutils-2.25/gold/README | |
parent | 2a6558a8ecfb81d75215b4ec7dc61113e12cfd5f (diff) | |
download | toolchain_binutils-54f1b3cf509cd889905287cb8ce6c5ae33911a21.zip toolchain_binutils-54f1b3cf509cd889905287cb8ce6c5ae33911a21.tar.gz toolchain_binutils-54f1b3cf509cd889905287cb8ce6c5ae33911a21.tar.bz2 |
Add upstream binutils-2.25 snapshot 4/4 2014
For MIPS -mmsa support
Change-Id: I08c4f002fa7b33dec85ed75956e6ab551bb03c96
Diffstat (limited to 'binutils-2.25/gold/README')
-rw-r--r-- | binutils-2.25/gold/README | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/binutils-2.25/gold/README b/binutils-2.25/gold/README new file mode 100644 index 0000000..0fccc13 --- /dev/null +++ b/binutils-2.25/gold/README @@ -0,0 +1,69 @@ +gold is an ELF linker. It is intended to have complete support for +ELF and to run as fast as possible on modern systems. For normal use +it is a drop-in replacement for the older GNU linker. + +gold is part of the GNU binutils. See ../binutils/README for more +general notes, including where to send bug reports. + +gold was originally developed at Google, and was contributed to the +Free Software Foundation in March 2008. At Google it was designed by +Ian Lance Taylor, with major contributions by Cary Coutant, Craig +Silverstein, and Andrew Chatham. + +The existing GNU linker manual is intended to be accurate +documentation for features which gold supports. gold supports most of +the features of the GNU linker for ELF targets. Notable +omissions--features of the GNU linker not currently supported in +gold--are: + * MRI compatible linker scripts + * cross-reference reports (--cref) + * various other minor options + + +Notes on the code +================= + +These are some notes which may be helpful to people working on the +source code of gold itself. + +gold is written in C++. It is a GNU program, and therefore follows +the GNU formatting standards as modified for C++. Source documents in +order of decreasing precedence: + http://www.gnu.org/prep/standards/ + http://gcc.gnu.org/onlinedocs/libstdc++/manual/source_code_style.html + http://www.zembu.com/eng/procs/c++style.html + +The linker is intended to have complete support for cross-compilation, +while still supporting the normal case of native linking as fast as +possible. In order to do this, many classes are actually templates +whose parameter is the ELF file class (e.g., 32 bits or 64 bits). The +C++ code is the same, but we don't pay the execution time cost of +always using 64-bit integers if the target is 32 bits. Many of these +class templates also have an endianness parameter: true for +big-endian, false for little-endian. + +The linker is multi-threaded. The Task class represents a single unit +of work. Task objects are stored on a single Workqueue object. Tasks +communicate via Task_token objects. Task_token objects are only +manipulated while holding the master Workqueue lock. Relatively few +mutexes are used. + + +Build requirements +================== + +The gold source code uses templates heavily. Building it requires a +recent version of g++. g++ 4.0.3 and 4.1.3 are known to work. g++ +3.2, 3.4.3, and 4.1.2 are known to fail. + +The linker script parser uses features which are only in newer +versions of bison. bison 2.3 is known to work. bison 1.26 is known +to fail. If you are building gold from an official binutils release, +the bison output should already be included. + + +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. |