Commit graph

1056 commits

Author SHA1 Message Date
Ian Lance Taylor
51b08ebe94 Add support for -Bsymbolic. 2007-10-18 23:20:53 +00:00
Ian Lance Taylor
af4a8a833e Rework section mapping algorithm to handle .data.rel.ro sections. 2007-10-18 19:56:12 +00:00
Ian Lance Taylor
87f9577614 Correctly handle alignment in merge sections. 2007-10-18 17:46:23 +00:00
Ian Lance Taylor
fe9a4c1201 Add infrastructure for threading support. 2007-10-17 06:24:50 +00:00
Ian Lance Taylor
436ca963fd From Cary Coutant: preliminary shared library support. 2007-10-16 23:23:08 +00:00
Ian Lance Taylor
a360aedd0f From Craig Silverstein: check that we get environ right. 2007-10-16 23:09:45 +00:00
Ian Lance Taylor
0c5e9c22aa From Craig Silverstein: implement -Ttext. 2007-10-16 22:38:36 +00:00
Ian Lance Taylor
1b64748bed From Craig Silverstein: support local GOT relocs for i386. 2007-10-16 00:42:36 +00:00
Ian Lance Taylor
72ec287661 From Craig Silverstein: add LD to LE TLS optimizations. 2007-10-15 03:39:16 +00:00
Ian Lance Taylor
5ffcaa866f From Craig Silverstein: call unlink_if_ordinary. 2007-10-15 03:35:35 +00:00
Ian Lance Taylor
cd4662c7e4 Fix exit status. 2007-10-15 03:33:03 +00:00
Ian Lance Taylor
aeddab66fe Keep track of weak aliases, so that overriding environ works. 2007-10-14 15:35:27 +00:00
Ian Lance Taylor
ad435a2465 Adjust linkonce symbol name algorithm to work for
.gnu.linkonce.t.__i686.get_pc_thunk.bx.
2007-10-14 07:27:10 +00:00
Ian Lance Taylor
d20222a1e7 Better multiple definition errors. 2007-10-14 07:10:20 +00:00
Ian Lance Taylor
a0c4fb0ac6 Remove extraneous newlines. 2007-10-14 06:57:58 +00:00
Ian Lance Taylor
ac2d295e92 Remove extraneous newline. 2007-10-14 06:54:56 +00:00
Ian Lance Taylor
75f2446ec3 Run all error handling through an Errors object. Delete output file
on error.
2007-10-14 06:49:14 +00:00
Ian Lance Taylor
eb4dfdd470 Fix typo in comment. 2007-10-14 04:10:25 +00:00
Ian Lance Taylor
27b7985a73 From Craig Silverstein: add some internationalization calls. 2007-10-14 04:06:18 +00:00
Ian Lance Taylor
097ec620e1 Only run static TLS tests on glibc 2.4 or later. 2007-10-14 03:57:22 +00:00
Ian Lance Taylor
8261e3bfa5 From Craig Silverstein: TLS test cleanups. 2007-10-14 03:23:38 +00:00
Ian Lance Taylor
e2305dc04c From Craig Silverstein: always use 32-bit format for gold note. 2007-10-14 03:12:53 +00:00
Ian Lance Taylor
4eff2974c2 From Craig Silverstein: error if we see a dynamic object when the
-static option was given.
2007-10-14 02:52:13 +00:00
Ian Lance Taylor
e041f13d5a From Craig Silverstein: use tls.h in x86_64.cc. 2007-10-13 00:15:07 +00:00
Ian Lance Taylor
e03748586c From Craig Silverstein: expand the TLS test to a second file, to test
IE to LE conversion.
2007-10-12 17:32:20 +00:00
Ian Lance Taylor
cfd73a4e26 Add an option for Stringpools to not copy strings. 2007-10-12 06:06:34 +00:00
Ian Lance Taylor
0ffd9845f2 From Craig Silverstein: improve x86_64 TLS support. 2007-10-12 06:00:55 +00:00
Ian Lance Taylor
e44fcf3bcf Add --stats option to print runtime and memory usage statistics. 2007-10-12 05:51:25 +00:00
Ian Lance Taylor
7d00dcbd9c From Andrew Chatham: exit on relocation error. 2007-10-11 19:13:02 +00:00
Ian Lance Taylor
46738c9aeb From Craig Silverstein: don't permit -s and -r. 2007-10-10 19:30:39 +00:00
Ian Lance Taylor
9e2dcb779c Implement -s and -S options which strip symbols. 2007-10-10 19:02:56 +00:00
Ian Lance Taylor
cec9d2f362 From Craig Silverstein: don't get confused if the same file name
occurs in an archive.
2007-10-10 06:33:56 +00:00
Ian Lance Taylor
4e9d858638 From Craig Silverstein: delete the output file first if it exists and
is non-empty.
2007-10-10 06:29:10 +00:00
Ian Lance Taylor
4f211c8bff Create a note section with the version of gold. 2007-10-09 21:37:55 +00:00
Ian Lance Taylor
e2aacd2c75 Fix soname for library found in search path. 2007-10-09 17:46:15 +00:00
Ian Lance Taylor
e982104129 Make TLS test fail more reliably. 2007-10-08 07:24:21 +00:00
Ian Lance Taylor
e727fa71af Add support for local GOT offsets. 2007-10-08 07:22:21 +00:00
Ian Lance Taylor
af6359d59d From Craig Silverstein: add tls.h, use it in i386.cc. 2007-10-08 05:12:59 +00:00
Ian Lance Taylor
8486ee48e8 Add --version option. 2007-10-07 18:06:27 +00:00
Ian Lance Taylor
f958d5fc53 Test merging of string constants. 2007-10-07 17:20:18 +00:00
Ian Lance Taylor
6eee141ff6 Add a TLS test case. 2007-10-07 17:10:10 +00:00
Ian Lance Taylor
46cf9fa27e Add support for local dynamic relocations. 2007-10-07 17:05:07 +00:00
Ian Lance Taylor
063f12a825 Correct handling of addends in merged sections. 2007-10-06 05:40:44 +00:00
Ian Lance Taylor
2fb69fac7a From Andrew Chatham: fix bug in 64-bit hash. 2007-10-05 17:36:31 +00:00
Ian Lance Taylor
d61c17ea24 From Craig Silverstein: x86_64 TLS support. 2007-10-04 22:28:36 +00:00
Ian Lance Taylor
ad2d6943a4 Full support for --sysroot. 2007-10-04 05:49:04 +00:00
Ian Lance Taylor
ff0065209a From Craig Silverstein: get all x86_64 tests passing. 2007-10-03 20:50:53 +00:00
Ian Lance Taylor
4fb6c25d50 From Craig Silverstein: set symbol value for function pointer
equality across shared library boundaries.
2007-10-03 05:40:11 +00:00
Ian Lance Taylor
6340166c8b Parameterize object_unittest to work for whatever target types are
supported.
2007-10-03 00:34:49 +00:00
Ian Lance Taylor
63402fe413 From Craig Silverstein: don't run function pointer non-PIC tests when
they won't work.
2007-10-02 22:45:07 +00:00
Ian Lance Taylor
e84992bbac From Craig Silverstein: correct x86_64 dynamic tags. 2007-10-02 22:10:10 +00:00
Ian Lance Taylor
51dee2fec3 From Craig Silverstein: add support for searching for input files
named in linker scripts.
2007-10-02 21:24:41 +00:00
Ian Lance Taylor
f5c3f2256f From Craig Silverstein: avoid some signed/unsigned warnings from gcc 4.2. 2007-10-02 20:52:18 +00:00
Ian Lance Taylor
7bb3655e07 Cleanups from Craig Silverstein. 2007-10-01 23:42:58 +00:00
Ian Lance Taylor
e822f2b19a From Craig Silverstein: New version of x86_64.cc. 2007-10-01 22:21:58 +00:00
Ian Lance Taylor
2e30d253b7 From Craig Silverstein: x86_64 support. 2007-10-01 21:30:59 +00:00
Ian Lance Taylor
5b3463d9ee Add Signed_valtype and use it for sign extension. Fix names of rela8. 2007-10-01 21:25:23 +00:00
Ian Lance Taylor
d830e0e0c9 Add RELA versions of the relocation routines. Original patch from
Craig Silverstein, with Symbol_value<> versions added.
2007-10-01 00:05:08 +00:00
Ian Lance Taylor
6df6da4a61 Clean up target handling--only build required files, warn about
unsupported targets.
2007-09-30 23:41:32 +00:00
Ian Lance Taylor
b3b74ddc6e Use parameters to track whether we are doing a static link. Fix up
final_value_is_known for weak undefined symbols.  Pointed out by Cary
Coutant.
2007-09-28 06:36:25 +00:00
Ian Lance Taylor
dfbba8f432 From Andrew Chatham: add signedrel<>, rel32s and friends. 2007-09-28 06:00:26 +00:00
Ian Lance Taylor
9025d29d14 Put size and endianness in parameters. 2007-09-26 07:01:35 +00:00
Ian Lance Taylor
3151305a47 Add basic exception frame header, plus test. 2007-09-26 05:44:38 +00:00
Ian Lance Taylor
d1038c216f Use mmap to read from input files. 2007-09-25 23:08:30 +00:00
Ian Lance Taylor
9eb9fa57c2 Add cache parameter to get_view. Discard uncached views on unlock.
Fix bug this exposed in archive armap symbol name handling.
2007-09-25 17:50:26 +00:00
Ian Lance Taylor
82dcae9de0 Rework File_read interface. Get file size. Use pread when
available.
2007-09-25 06:43:17 +00:00
Ian Lance Taylor
bae3688d8f Remove get_view_and_size. 2007-09-25 05:16:35 +00:00
Ian Lance Taylor
ba45d2478b Break out default pbytes argument to read and get_view routines,
adding new routines.
2007-09-25 00:27:29 +00:00
Ian Lance Taylor
e5851e4e66 From Craig Silverstein: Fix bug when reading large script files. 2007-09-24 17:09:50 +00:00
Ian Lance Taylor
a0fa0c0798 Fix typo in comment. 2007-09-23 19:50:33 +00:00
Ian Lance Taylor
3bd52c2885 Add two file test. 2007-09-23 05:35:51 +00:00
Ian Lance Taylor
ab5c9e90a6 Use special value when we refer a function symbol in some way other
than calling it.
2007-09-23 05:31:48 +00:00
Ian Lance Taylor
cb615bc189 Add static version of constructor test. 2007-09-23 03:25:29 +00:00
Ian Lance Taylor
d50266522c Add constructor test. 2007-09-23 03:18:42 +00:00
Ian Lance Taylor
9d7094e840 Check section index as well as object when looking for input section. 2007-09-23 03:17:38 +00:00
Ian Lance Taylor
c077629be8 Avoid dereferencing map->end(). 2007-09-23 03:16:47 +00:00
Ian Lance Taylor
d98a37563c Correct comment. 2007-09-22 23:37:35 +00:00
Ian Lance Taylor
56ba9a23db Rename t1 to basic_test, add static tests. 2007-09-22 23:36:01 +00:00
Ian Lance Taylor
22dc1b094d Add standalone test case. 2007-09-22 22:44:33 +00:00
Ian Lance Taylor
4991e922ef Change YFLAGS to AM_YFLAGS. 2007-09-22 22:44:04 +00:00
Ian Lance Taylor
6cb15b7f89 Add licensing text to every source file. 2007-09-22 21:02:10 +00:00
Ian Lance Taylor
537b5f51e5 Add bootstrap test. 2007-09-22 20:11:12 +00:00
Ian Lance Taylor
d4f5281bde It's OK to have a version if we have an existing symbol. 2007-09-22 20:08:16 +00:00
Ian Lance Taylor
42e3fe0dd9 We don't need a hash table mapping input locations to strings. 2007-09-22 05:38:12 +00:00
Ian Lance Taylor
e214a02b9b From Andrew Chatham: Make File_read::View::data_ a const pointer. 2007-09-22 05:03:56 +00:00
Ian Lance Taylor
bfd58944a6 Define __start and __stop symbols. 2007-09-22 04:42:09 +00:00
Ian Lance Taylor
306d9ef048 Canonicalize name and version when working with special symbols. 2007-09-22 04:40:13 +00:00
Ian Lance Taylor
cddcc9d6b0 Update. 2007-09-22 04:38:33 +00:00
Ian Lance Taylor
04df9a5751 Fix some errors in symbol placement. 2007-09-22 04:38:13 +00:00
Ian Lance Taylor
377caf49a5 From Craig Silverstein: Only sort for suffixes with -O2. 2007-09-21 15:54:07 +00:00
Ian Lance Taylor
80576242ab Initialize count_ field, tweak parameters testing. 2007-09-21 07:34:51 +00:00
Ian Lance Taylor
7e1edb9089 Add global parameters. 2007-09-21 07:20:01 +00:00
Ian Lance Taylor
be9d5a933e Update for have_code_fill field. 2007-09-21 06:25:35 +00:00
Ian Lance Taylor
6724bacc98 Actually define GOLD_GOLD_H multiple inclusion macro. 2007-09-21 06:25:19 +00:00
Ian Lance Taylor
a8b2552e07 Set Stringpool zero_null option via a call, not a default constructor
argument.
2007-09-21 06:12:32 +00:00
Ian Lance Taylor
ca3a67a5cf From Craig Silverstein: Add -O option. 2007-09-21 05:43:33 +00:00
Ian Lance Taylor
c51e6221b8 Use nops when doing alignment padding between code sections. 2007-09-21 05:31:19 +00:00
Ian Lance Taylor
8c838dbd52 Fix comment. 2007-09-20 19:31:54 +00:00
Ian Lance Taylor
cba134d613 From Cary Coutant: only check for a linkonce section if the SHF_GROUP
flag is clear.
2007-09-20 06:02:06 +00:00
Ian Lance Taylor
a93d6d0708 Rework patch to check by both armap entry and archive offset. Also,
preserve information for --group.
2007-09-20 05:56:14 +00:00
Ian Lance Taylor
e243ffc667 From Craig Silverstein: rework seen handling to be based on archive
offsets rather than entries in archive symbol table.
2007-09-20 05:43:14 +00:00
Ian Lance Taylor
192f9b8501 Fix handling of --eh-frame-hdr option. 2007-09-19 23:50:56 +00:00
Ian Lance Taylor
bc56b3fb3a Note that a Stringpool keeps a copy of a string. 2007-09-19 20:44:15 +00:00
Ian Lance Taylor
835965e646 Better comments for Stringpool. 2007-09-19 17:38:00 +00:00
Ian Lance Taylor
86f2e68346 Let special symbols override existing symbols rather than
reinitializing them.
2007-09-19 06:02:29 +00:00
Ian Lance Taylor
8ae3da9046 Add control over template specialization. 2007-09-19 06:01:35 +00:00
Ian Lance Taylor
614f30a283 Compute string lengths before sorting. From Craig Silverstein. 2007-09-18 05:16:39 +00:00
Ian Lance Taylor
8462ae85e4 Generate a GLOB_DAT reloc for a GOT32 reloc against a symbol defined
in a dynamic object.
2007-09-12 16:38:04 +00:00
Ian Lance Taylor
31365f57ae Don't try to find version definition index when creating an executable. 2007-09-12 00:30:59 +00:00
Ian Lance Taylor
92f0e169b4 Only create a version definition for a shared library. Set the
dynamic symbol index for a version definition when finalizing
versions.
2007-09-11 22:57:35 +00:00
Ian Lance Taylor
15b3cfae2b Add -rpath-link option, currently unused. 2007-09-06 23:37:53 +00:00
Ian Lance Taylor
193a53d920 Add support for --enable-target to control which template
specializations we generate.
2007-09-04 20:00:53 +00:00
Ian Lance Taylor
64707334c7 Ignore VER_NDX_LOCAL for an undefined symbol. 2007-09-04 17:59:53 +00:00
Ian Lance Taylor
429c15693c Any symbol which is in both a regular object and a dynamic object
requires an entry in the dynamic symbol table.
2007-08-29 05:48:24 +00:00
Ian Lance Taylor
1ebd95fdf1 Copy in_reg and in_dyn when resolving NAME/VERSION with NAME/NULL. 2007-08-29 03:42:51 +00:00
Ian Lance Taylor
0d4f1889b5 Set in_dyn_ and in_reg_ when overriding a symbol. 2007-08-28 04:12:19 +00:00
Ian Lance Taylor
f4151f8959 Initialize plt_offset_ and has_plt_offset_ in a Symbol. 2007-08-28 04:11:50 +00:00
Ian Lance Taylor
7da52175b6 Recognize and ignore the --eh-frame-hdr option. 2007-08-22 17:07:36 +00:00
Ian Lance Taylor
a6badf5a97 Add support for -E/--export-dynamic. Also clean up --help output a bit. 2007-08-22 05:06:38 +00:00
Ian Lance Taylor
4973341a7d Implement --whole-archive. 2007-08-21 23:37:56 +00:00
chatham
72a2eed757 Make relative references in linker scripts absolute and update a
comment about relocate() being called.
2007-08-21 21:29:12 +00:00
Ian Lance Taylor
0496d5e5b4 Force PT_LOAD segments to be aligned to the page size. 2007-08-21 21:03:50 +00:00
Ian Lance Taylor
41f542e70b Add support for -rpath. 2007-08-21 20:37:32 +00:00
Ian Lance Taylor
b8e6aad960 Add support for SHF_MERGE sections. 2007-05-16 17:42:48 +00:00
Ian Lance Taylor
008db82ec1 Don't emit symbols seen only in dynamic object, don't read duplicate
dynamic object.
2006-12-06 06:28:56 +00:00
Ian Lance Taylor
91da9340cc gcc 3.2.2 and 4.1.0 portability hacks. 2006-12-06 00:28:03 +00:00
Ian Lance Taylor
14b3174058 Generate version information. 2006-12-06 00:02:36 +00:00
Ian Lance Taylor
6a4699867a gcc 3.2.2 portability hacks. 2006-12-01 16:58:12 +00:00
Ian Lance Taylor
16649710df Can now dynamically link hello, world. 2006-12-01 16:51:25 +00:00
Ian Lance Taylor
1ddbd1e617 gcc 3.2.2 portability hacks. 2006-12-01 00:10:37 +00:00
Ian Lance Taylor
5a6f7e2db5 Added a testsuite. More support for COPY relocations. 2006-11-30 23:52:50 +00:00
Ian Lance Taylor
a3ad94edd4 Hash tables, dynamic section, i386 PLT, gold_assert. 2006-11-29 17:56:40 +00:00
Ian Lance Taylor
c06b7b0ba3 Snapshot. Includes first cut at output relocation sections. 2006-11-16 00:38:25 +00:00
Ian Lance Taylor
dbe717effb More dynamic object support, initial scripting support. 2006-11-14 19:21:05 +00:00
Ian Lance Taylor
645f81233b Add Elf_file interface which can be used by both Sized_relobj and
Sized_dynobj.
2006-11-07 18:51:39 +00:00
Ian Lance Taylor
f0641a0b38 Rework stringpool and hash tables so that we always generate the same
output regardless of randomize_va_space.
2006-11-07 04:40:46 +00:00
Ian Lance Taylor
f6ce93d6e9 Split Object into Dynobj and Relobj, incorporate elfcpp swapping changes. 2006-11-06 22:46:08 +00:00
Ian Lance Taylor
652ec9bd89 Ignored the -m option, for old linker compatibility. 2006-11-03 18:48:03 +00:00
Ian Lance Taylor
dd32f77868 Update for line number changes. 2006-11-03 18:41:59 +00:00
Ian Lance Taylor
593f47df45 gcc 3.2.2 portability hacks. 2006-11-03 18:38:43 +00:00
Ian Lance Taylor
ead1e4244a Can now do a full static link of hello, world in C or C++ 2006-11-03 18:26:11 +00:00
Ian Lance Taylor
92e059d8dc Framework for relocation scanning. Implement simple static TLS
relocations.
2006-10-20 20:40:49 +00:00
Ian Lance Taylor
a783673bd6 Avoid multiple definition errors from linkonce sections. 2006-10-10 18:54:06 +00:00
Ian Lance Taylor
12e14209f0 Lay out object file sections when we add the symbols to the symbol
table.
2006-10-06 20:40:16 +00:00
Ian Lance Taylor
5482377ddc Clean up HAVE_MEMBER_TEMPLATE_SPECIFICATIONS somewhat. 2006-09-29 22:34:01 +00:00
Ian Lance Taylor
61ba1cf936 Snapshot. Now able to produce a minimal executable which actually
runs.
2006-09-29 19:58:17 +00:00
Ian Lance Taylor
75f65a3e30 Finished layout code. 2006-09-27 22:53:42 +00:00
Ian Lance Taylor
b3168e9da3 gcc 4.1.0 portability fixes. 2006-09-26 21:53:18 +00:00
Ian Lance Taylor
274e99f9ae g++ 3.2.2 portability fixes. 2006-09-26 21:50:25 +00:00
Ian Lance Taylor
d288e464ac g++ 3.2.2 portability for grhat. 2006-09-26 21:20:56 +00:00
Ian Lance Taylor
54dc642545 More section layout code. 2006-09-26 21:00:34 +00:00
Ian Lance Taylor
a2fb1b05e4 New drop, with first cut of section layout code. 2006-09-21 22:13:18 +00:00
Ian Lance Taylor
1564db8db6 More symbol resolution code. 2006-09-07 21:21:41 +00:00
Ian Lance Taylor
14bfc3f555 Another snapshot of the current state of the sources. Gets to the
point of symbol resolution and can now issue a multiple definition
error.  Also added target selection infrastructure.
2006-08-18 22:29:20 +00:00
Ian Lance Taylor
c33feb2b3c Include <cassert> 2006-08-04 23:20:34 +00:00
Ian Lance Taylor
bae7f79e03 Initial CVS checkin of gold 2006-08-04 23:10:59 +00:00