aboutsummaryrefslogtreecommitdiff
path: root/ld/ldlang.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2012-02-22 16:27:35 +0000
committerNick Clifton <nickc@redhat.com>2012-02-22 16:27:35 +0000
commit2aa9aad989850c1a650701e507266edbad9864d2 (patch)
tree58c7e42987e3dab1fce130a5f589e0f74aafc031 /ld/ldlang.c
parentfeea76c262d1d0ef709ad2edfa4b048f7733f847 (diff)
downloadgdb-2aa9aad989850c1a650701e507266edbad9864d2.zip
gdb-2aa9aad989850c1a650701e507266edbad9864d2.tar.gz
gdb-2aa9aad989850c1a650701e507266edbad9864d2.tar.bz2
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.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 5f06418..1bffa93 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 ();