From bc251d509b711b2db0a1aa269c432d23be019f84 Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Mon, 6 Nov 2006 10:39:17 +0000 Subject: [PATCH] * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Don't prepend "warning" to the message. * testsuite/ld-elf/warn2.d: New. * testsuite/ld-elf/symbol2w.s: New. * testsuite/ld-elf/symbol2ref.s: New. --- ld/ChangeLog | 5 +++++ ld/emultempl/elf32.em | 10 +++------- ld/testsuite/ChangeLog | 6 ++++++ ld/testsuite/ld-elf/symbol2ref.s | 3 +++ ld/testsuite/ld-elf/symbol2w.s | 6 ++++++ ld/testsuite/ld-elf/warn2.d | 15 +++++++++++++++ 6 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 ld/testsuite/ld-elf/symbol2ref.s create mode 100644 ld/testsuite/ld-elf/symbol2w.s create mode 100644 ld/testsuite/ld-elf/warn2.d diff --git a/ld/ChangeLog b/ld/ChangeLog index 239a7f1f0a..f3e1383834 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2006-11-06 Vladimir Prus + + * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): + Don't prepend "warning" to the message. + 2006-10-31 Pedro Alves * pe-dll.c (autofilter_entry_type): Change name to const. diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 99fb8ab880..ff48c56687 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -1180,10 +1180,8 @@ ${ELF_INTERPRETER_SET_DEFAULT} { asection *s; bfd_size_type sz; - bfd_size_type prefix_len; char *msg; bfd_boolean ret; - const char * gnu_warning_prefix = _("warning: "); if (is->just_syms_flag) continue; @@ -1193,14 +1191,12 @@ ${ELF_INTERPRETER_SET_DEFAULT} continue; sz = s->size; - prefix_len = strlen (gnu_warning_prefix); - msg = xmalloc ((size_t) (prefix_len + sz + 1)); - strcpy (msg, gnu_warning_prefix); - if (! bfd_get_section_contents (is->the_bfd, s, msg + prefix_len, + msg = xmalloc ((size_t) (sz + 1)); + if (! bfd_get_section_contents (is->the_bfd, s, msg, (file_ptr) 0, sz)) einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n", is->the_bfd); - msg[prefix_len + sz] = '\0'; + msg[sz] = '\0'; ret = link_info.callbacks->warning (&link_info, msg, (const char *) NULL, is->the_bfd, (asection *) NULL, diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index b4b866ce93..0d0cb715c6 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2006-11-06 Vladimir Prus + + * testsuite/ld-elf/warn2.d: New. + * testsuite/ld-elf/symbol2w.s: New. + * testsuite/ld-elf/symbol2ref.s: New. + 2006-11-05 Hans-Peter Nilsson * ld-cris/ldsym1.d: Adjust for semi-recent ld changes. diff --git a/ld/testsuite/ld-elf/symbol2ref.s b/ld/testsuite/ld-elf/symbol2ref.s new file mode 100644 index 0000000000..d2710f9c9a --- /dev/null +++ b/ld/testsuite/ld-elf/symbol2ref.s @@ -0,0 +1,3 @@ + .text + .dc.a Foo + diff --git a/ld/testsuite/ld-elf/symbol2w.s b/ld/testsuite/ld-elf/symbol2w.s new file mode 100644 index 0000000000..2452b2b4a9 --- /dev/null +++ b/ld/testsuite/ld-elf/symbol2w.s @@ -0,0 +1,6 @@ + .section .gnu.warning,"a",@progbits + .global Foo + .type Foo, @object + .size Foo, 20 +Foo: + .string "function 'Foo' used" diff --git a/ld/testsuite/ld-elf/warn2.d b/ld/testsuite/ld-elf/warn2.d new file mode 100644 index 0000000000..864db8332f --- /dev/null +++ b/ld/testsuite/ld-elf/warn2.d @@ -0,0 +1,15 @@ +#source: start.s +#source: symbol2ref.s +#source: symbol2w.s +#ld: -T group.ld +#warning: ^[^\\n]*\.[obj]+: warning: function 'Foo' used$ +#readelf: -s +#notarget: "sparc64-*-solaris2*" "sparcv9-*-solaris2*" +#xfail: "arc-*-*" "d30v-*-*" "dlx-*-*" "i960-*-*" "or32-*-*" "pj-*-*" + +# Check that warnings are generated for the symbols in .gnu.warning +# construct and that the symbol still appears as expected. + +#... +[ ]+[0-9]+:[ ]+[0-9a-f]+[ ]+20[ ]+OBJECT[ ]+GLOBAL DEFAULT[ ]+1 Foo +#pass