README revision 1.1.1.1.2.1 1 1.1 christos README for LD
2 1.1 christos
3 1.1 christos This is the GNU linker. It is distributed with other "binary
4 1.1 christos utilities" which should be in ../binutils. See ../binutils/README for
5 1.1 christos more general notes, including where to send bug reports.
6 1.1 christos
7 1.1 christos There are many features of the linker:
8 1.1 christos
9 1.1 christos * The linker uses a Binary File Descriptor library (../bfd)
10 1.1 christos that it uses to read and write object files. This helps
11 1.1 christos insulate the linker itself from the format of object files.
12 1.1 christos
13 1.1 christos * The linker supports a number of different object file
14 1.1 christos formats. It can even handle multiple formats at once:
15 1.1 christos Read two input formats and write a third.
16 1.1 christos
17 1.1 christos * The linker can be configured for cross-linking.
18 1.1 christos
19 1.1 christos * The linker supports a control language.
20 1.1 christos
21 1.1 christos * There is a user manual (ld.texinfo), as well as the
22 1.1 christos beginnings of an internals manual (ldint.texinfo).
23 1.1 christos
24 1.1 christos Installation
25 1.1 christos ============
26 1.1 christos
27 1.1 christos See ../binutils/README.
28 1.1 christos
29 1.1 christos If you want to make a cross-linker, you may want to specify
30 1.1 christos a different search path of -lfoo libraries than the default.
31 1.1 christos You can do this by setting the LIB_PATH variable in ./Makefile
32 1.1 christos or using the --with-lib-path configure switch.
33 1.1 christos
34 1.1 christos To build just the linker, make the target all-ld from the top level
35 1.1 christos directory (one directory above this one).
36 1.1 christos
37 1.1 christos Porting to a new target
38 1.1 christos =======================
39 1.1 christos
40 1.1 christos See the ldint.texinfo manual.
41 1.1 christos
42 1.1 christos Reporting bugs etc
43 1.1 christos ===========================
44 1.1 christos
45 1.1 christos See ../binutils/README.
46 1.1 christos
47 1.1 christos Known problems
48 1.1 christos ==============
49 1.1 christos
50 1.1 christos The Solaris linker normally exports all dynamic symbols from an
51 1.1 christos executable. The GNU linker does not do this by default. This is
52 1.1 christos because the GNU linker tries to present the same interface for all
53 1.1 christos similar targets (in this case, all native ELF targets). This does not
54 1.1 christos matter for normal programs, but it can make a difference for programs
55 1.1 christos which try to dlopen an executable, such as PERL or Tcl. You can make
56 1.1 christos the GNU linker export all dynamic symbols with the -E or
57 1.1 christos --export-dynamic command line option.
58 1.1 christos
59 1.1 christos HP/UX 9.01 has a shell bug that causes the linker scripts to be
60 1.1 christos generated incorrectly. The symptom of this appears to be "fatal error
61 1.1 christos - scanner input buffer overflow" error messages. There are various
62 1.1 christos workarounds to this:
63 1.1 christos * Build and install bash, and build with "make SHELL=bash".
64 1.1 christos * Update to a version of HP/UX with a working shell (e.g., 9.05).
65 1.1 christos * Replace "(. ${srcdir}/scripttempl/${SCRIPT_NAME}.sc)" in
66 1.1 christos genscripts.sh with "sh ${srcdir}..." (no parens) and make sure the
67 1.1 christos emulparams script used exports any shell variables it sets.
68 1.1.1.1.2.1 pgoyette
70 1.1.1.1.2.1 pgoyette Copyright (C) 2012-2015 Free Software Foundation, Inc.
71 1.1.1.1.2.1 pgoyette
72 1.1.1.1.2.1 pgoyette Copying and distribution of this file, with or without modification,
73 1.1.1.1.2.1 pgoyette are permitted in any medium without royalty provided the copyright
74 notice and this notice are preserved.
75