summaryrefslogtreecommitdiffstats
path: root/binutils-2.25/gold/README
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2014-06-13 12:38:00 -0700
committerAndrew Hsieh <andrewhsieh@google.com>2014-06-13 12:38:00 -0700
commit54f1b3cf509cd889905287cb8ce6c5ae33911a21 (patch)
treee39b1a7fa04db86a8215b7f9d4656d74e394aec0 /binutils-2.25/gold/README
parent2a6558a8ecfb81d75215b4ec7dc61113e12cfd5f (diff)
downloadtoolchain_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/README69
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.