From 7dd9c6eb050bb23bff18b3139589f202d4c63a33 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 22 Jan 2014 12:51:19 +1030 Subject: [PATCH] Miscellaneous ld tidies Localise a struct, prevent an unneeded symbol lookup, and fix a testcase. ld/ * ld.h (struct map_symbol_def): Move to.. * ldlang.h: ..here. * ldlang.c (print_assignment): Don't set expld.assign_name to dot. ld/testsuite/ * ld-scripts/pr14962-2.d: Correct target triple. --- ld/ChangeLog | 6 ++++++ ld/ld.h | 5 ----- ld/ldlang.c | 3 ++- ld/ldlang.h | 5 +++++ ld/testsuite/ChangeLog | 4 ++++ ld/testsuite/ld-scripts/pr14962-2.d | 2 +- 6 files changed, 18 insertions(+), 7 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 3d73b06..0645c2d 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,11 @@ 2014-01-22 Alan Modra + * ld.h (struct map_symbol_def): Move to.. + * ldlang.h: ..here. + * ldlang.c (print_assignment): Don't set expld.assign_name to dot. + +2014-01-22 Alan Modra + * ld.texinfo (Output Section Discarding): Mention assigning to dot as a way of keeping otherwise empty sections. * ldexp.c (is_dot, is_value, is_sym_value, is_dot_ne_0, diff --git a/ld/ld.h b/ld/ld.h index e3ef107..b0544e7 100644 --- a/ld/ld.h +++ b/ld/ld.h @@ -104,11 +104,6 @@ struct wildcard_list { struct wildcard_spec spec; }; -struct map_symbol_def { - struct bfd_link_hash_entry *entry; - struct map_symbol_def *next; -}; - #define BYTE_SIZE (1) #define SHORT_SIZE (2) #define LONG_SIZE (4) diff --git a/ld/ldlang.c b/ld/ldlang.c index 9e35527..62f85bc 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -3935,7 +3935,8 @@ print_assignment (lang_assignment_statement_type *assignment, const char *dst = assignment->exp->assign.dst; is_dot = (dst[0] == '.' && dst[1] == 0); - expld.assign_name = dst; + if (!is_dot) + expld.assign_name = dst; tree = assignment->exp->assign.src; } diff --git a/ld/ldlang.h b/ld/ldlang.h index 8c815c6..c64ded0 100644 --- a/ld/ldlang.h +++ b/ld/ldlang.h @@ -313,6 +313,11 @@ typedef struct asection *section; } lang_input_section_type; +struct map_symbol_def { + struct bfd_link_hash_entry *entry; + struct map_symbol_def *next; +}; + /* For input sections, when writing a map file: head / tail of a linked list of hash table entries for symbols defined in this section. */ typedef struct input_section_userdata_struct diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 5fdf831..a269b07 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2014-01-22 Alan Modra + * ld-scripts/pr14962-2.d: Correct target triple. + +2014-01-22 Alan Modra + * ld-shared/elf-offset.ld: Align end of .bss with canonical form of ALIGN that allows an empty .bss to be removed. * ld-arm/arm-dyn.ld: Likewise. diff --git a/ld/testsuite/ld-scripts/pr14962-2.d b/ld/testsuite/ld-scripts/pr14962-2.d index 5e71433..7dd244e 100644 --- a/ld/testsuite/ld-scripts/pr14962-2.d +++ b/ld/testsuite/ld-scripts/pr14962-2.d @@ -1,7 +1,7 @@ #ld: -T pr14962-2.t #source: pr14962a.s #nm: -n -#notarget: rx-*-* frv-linux +#notarget: rx-*-* frv-*-*linux* #... 0+2000 [AT] _start -- 2.7.4