Change regcache list to be an hash map
[deliverable/binutils-gdb.git] / ld / README
index f6da8285b1f5c06d8616e944a136870adb490bf5..407e4fbeae27a5c54e1821a57f6d4dbc4207a497 100644 (file)
--- a/ld/README
+++ b/ld/README
@@ -1,51 +1,73 @@
-This is a BETA release of a completely rewritten GNU linker.
-It is distributed with other "binary utilities" which should
-be in ../binutils.  See ../binutils/README for more general notes,
-including where to send bug reports.
+               README for LD
 
-There are many new features of the linker:
+This is the GNU linker.  It is distributed with other "binary
+utilities" which should be in ../binutils.  See ../binutils/README for
+more general notes, including where to send bug reports.
+
+There are many features of the linker:
 
 * The linker uses a Binary File Descriptor library (../bfd)
-that it uses to read and write object files.  This helps
-insulate the linker itself from the format of object files.
+  that it uses to read and write object files.  This helps
+  insulate the linker itself from the format of object files.
 
-* The linker support a number of different object file
-formats.  It can even handle multiple formats at once:
-Read two input formats and write a third.
+* The linker supports a number of different object file
+  formats.  It can even handle multiple formats at once:
+  Read two input formats and write a third.
 
 * The linker can be configured for cross-linking.
 
-* The linker contains a control language.
+* The linker supports a control language.
 
-* There is a manual.
+* There is a user manual (ld.texi), as well as the
+  beginnings of an internals manual (ldint.texi).
 
 Installation
 ============
 
 See ../binutils/README.
+
 If you want to make a cross-linker, you may want to specify
 a different search path of -lfoo libraries than the default.
-You can do this by setting the LIB_PATH variable in ./Makefile.
+You can do this by setting the LIB_PATH variable in ./Makefile
+or using the --with-lib-path configure switch.
+
+To build just the linker, make the target all-ld from the top level
+directory (one directory above this one).
 
 Porting to a new target
 =======================
 
-A new target configuration may need a new linker script (.sc file)
-to specify linker actions (such as the layout of the output).
-See if one of the existing ones are suitable.
-Note that the Makefile generates variants of the standard script
-that are used when ld is passed -r -Ur -N or -n options.
-These variant default scripts are generated from the "master"
-script using sed scripts that may not work in all cases.
-Look at the rules and comments in ld/Makefile.in to make sure
-you stay with the rules.
-
-Otherwise, you may need to add a new "emulation" (a sample of a
-recently added target and emulation is for the SOny 68k News
-family - look for files named *news*).
-
-Also see the notes in ../binutils/README.
+See the ldint.texi manual.
 
 Reporting bugs etc
 ===========================
+
 See ../binutils/README.
+
+Known problems
+==============
+
+The Solaris linker normally exports all dynamic symbols from an
+executable.  The GNU linker does not do this by default.  This is
+because the GNU linker tries to present the same interface for all
+similar targets (in this case, all native ELF targets).  This does not
+matter for normal programs, but it can make a difference for programs
+which try to dlopen an executable, such as PERL or Tcl.  You can make
+the GNU linker export all dynamic symbols with the -E or
+--export-dynamic command line option.
+
+HP/UX 9.01 has a shell bug that causes the linker scripts to be
+generated incorrectly.  The symptom of this appears to be "fatal error
+- scanner input buffer overflow" error messages.  There are various
+workarounds to this:
+  * Build and install bash, and build with "make SHELL=bash".
+  * Update to a version of HP/UX with a working shell (e.g., 9.05).
+  * Replace "(. ${srcdir}/scripttempl/${SCRIPT_NAME}.sc)" in
+    genscripts.sh with "sh ${srcdir}..." (no parens) and make sure the
+    emulparams script used exports any shell variables it sets.
+\f
+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.
This page took 0.024443 seconds and 4 git commands to generate.