From: Vladimir Prus Date: Sat, 4 Nov 2006 10:20:53 +0000 (+0000) Subject: ld/ X-Git-Tag: binutils-csl-arm-2006q3-27~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=846d9b20bdd70220c0a93dfbb192c8a2dcdd8739;p=thirdparty%2Fbinutils-gdb.git ld/ * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Don't prepend "warning" to the message. ld/testsuite * ld-elf/warn2.d: New. * ld-elf/symbol2w.s: New. * ld-elf/symbol2ref.s: New. --- diff --git a/ChangeLog.csl b/ChangeLog.csl index fbb65ad8edf..10dcb6e3bd4 100644 --- a/ChangeLog.csl +++ b/ChangeLog.csl @@ -1,3 +1,14 @@ +2006-11-04 Vladimir Prus + + ld/ + * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): + Don't prepend "warning" to the message. + + ld/testsuite + * ld-elf/warn2.d: New. + * ld-elf/symbol2w.s: New. + * ld-elf/symbol2ref.s: New. + 2006-10-31 Mark Shinwell gas/ diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 19259796053..ffc5f24eef1 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/ld-elf/symbol2ref.s b/ld/testsuite/ld-elf/symbol2ref.s new file mode 100644 index 00000000000..c3a40d8f0f0 --- /dev/null +++ b/ld/testsuite/ld-elf/symbol2ref.s @@ -0,0 +1,3 @@ + .text + .long Foo + diff --git a/ld/testsuite/ld-elf/symbol2w.s b/ld/testsuite/ld-elf/symbol2w.s new file mode 100644 index 00000000000..2452b2b4a9c --- /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 00000000000..9809a789c39 --- /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[ ]+ABS Foo +#pass