diff options
author | Nick Clifton <nickc@redhat.com> | 2012-02-22 16:27:31 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2012-02-22 16:27:31 +0000 |
commit | 0786bd3c43fc3e8860f09fe5af7a9b3cf2564f58 (patch) | |
tree | 25ea35e406710a420d7a707d897dfe8691b2f895 /ld/ldlang.c | |
parent | fea0b69c0dd2707aa35522f45510f3cde8f0b372 (diff) | |
download | binutils-redhat-0786bd3c43fc3e8860f09fe5af7a9b3cf2564f58.tar.gz |
PR ld/13683
* ldlang.c (lang_process): Rerun lang_do_assignments before
starting garbage collection.
* ldexp.c (fold_name): Generate a reloc for defined symbols
found without an associated output section during the mark phase.
(exp_fold_tree_1): Continue processing an expression, even if we
are unable to fold it, if we are in the first two evaluation
phases.
* ldexp.h (enum lang_phase_type): Add descriptions of the phases.
* ld-gc/pr13683.c: New test source file.
* ld-gc/pr13683.d: New test control and output file.
* ld-gc/gc.exp: Run the pr13683 test.
* ld-cris/tls-gc-68: Update expected symbol table dump.
* ld-cris/tls-gc-69: Likewise.
* ld-cris/tls-gc-70: Likewise.
* ld-cris/tls-gc-71: Likewise.
* ld-cris/tls-gc-75: Likewise.
* ld-cris/tls-gc-76.d: Likewise.
* ld-cris/tls-gc-79.d: Likewise.
Diffstat (limited to 'ld/ldlang.c')
-rw-r--r-- | ld/ldlang.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c index 5f064182d4..1bffa937c6 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -6650,6 +6650,11 @@ lang_process (void) files. */ ldctor_build_sets (); + /* PR 13683: We must rerun the assignments prior to running garbage + collection in order to make sure that all symbol aliases are resolved. */ + lang_do_assignments (lang_mark_phase_enum); + expld.phase = lang_first_phase_enum; + /* Remove unreferenced sections if asked to. */ lang_gc_sections (); |