diff options
author | Jan Beulich <jbeulich@novell.com> | 2009-07-27 10:04:25 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2009-07-27 10:04:25 +0000 |
commit | efa19bfde4d57f33974cac17dfddb18f6f460f43 (patch) | |
tree | a54004628ab9a90b64e32ae145f1ff920d0eb5ee /gas | |
parent | 7859b21da558a842c9d35c3cae480e38204d9892 (diff) | |
download | fsf-binutils-gdb-efa19bfde4d57f33974cac17dfddb18f6f460f43.zip fsf-binutils-gdb-efa19bfde4d57f33974cac17dfddb18f6f460f43.tar.gz fsf-binutils-gdb-efa19bfde4d57f33974cac17dfddb18f6f460f43.tar.bz2 |
gas/
2009-07-27 Jan Beulich <jbeulich@novell.com>
* obj-elf.c (elf_file_symbol): Replace symbol name set up by
symbol_new() with the passed in, unmodified one.
gas/testsuite/
2009-07-27 Jan Beulich <jbeulich@novell.com>
* gas/elf/file.[ds]: New.
* gas/elf/elf.exp: Run new test.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/obj-elf.c | 11 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/elf.exp | 14 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/file.d | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/elf/file.s | 29 |
6 files changed, 82 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index ffeb31c..122b427 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2009-07-27 Jan Beulich <jbeulich@novell.com> + + * obj-elf.c (elf_file_symbol): Replace symbol name set up by + symbol_new() with the passed in, unmodified one. + 2009-07-27 M R Swami Reddy <MR.Swami.Reddy@nsc.com> * config/tc-cr16.c (md_apply_fix): Put the addend value alone in to diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index f85267b..51cd3a9 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -260,9 +260,20 @@ elf_file_symbol (const char *s, int appfile) || (symbol_rootP->bsym->flags & BSF_FILE) == 0) { symbolS *sym; + unsigned int name_length; sym = symbol_new (s, absolute_section, 0, NULL); symbol_set_frag (sym, &zero_address_frag); + + name_length = strlen (s); + if (name_length > strlen (S_GET_NAME (sym))) + { + obstack_grow (¬es, s, name_length + 1); + S_SET_NAME (sym, obstack_finish (¬es)); + } + else + strcpy ((char *) S_GET_NAME (sym), s); + symbol_get_bfdsym (sym)->flags |= BSF_FILE; if (symbol_rootP != sym) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 2769e04..ebe6b7e 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-07-27 Jan Beulich <jbeulich@novell.com> + + * gas/elf/file.[ds]: New. + * gas/elf/elf.exp: Run new test. + 2009-07-25 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/l1om.d: New. diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp index 454aa60..65245f4 100644 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -82,6 +82,20 @@ if { ([istarget "*-*-*elf*"] && ![istarget "am3*-*-*"]} then { run_dump_test "ehopt0" } + case $target_triplet in { + { m68k-*-* m68[03]??-*-* } { + run_dump_test "file" { { as "--defsym m68k=1" } } + } + { mmix-*-* } { + run_dump_test "file" { { as "--defsym mmix=1" } } + } + { xtensa*-*-* } { + run_dump_test "file" { { as "--rename-section file.s=file.c" } } + } + default { + run_dump_test "file" + } + } run_dump_test "group0a" run_dump_test "group0b" run_dump_test "group1a" diff --git a/gas/testsuite/gas/elf/file.d b/gas/testsuite/gas/elf/file.d new file mode 100644 index 0000000..1e98186 --- /dev/null +++ b/gas/testsuite/gas/elf/file.d @@ -0,0 +1,18 @@ +#objdump: -t +#name: .file file names + +.*: .* + +SYMBOL TABLE: +#... +0+ l[ ]*df \*ABS\*[ ]+0+ file\.s +0+ l[ ]*df \*ABS\*[ ]+0+ slash/data +0+ l[ ]*df \*ABS\*[ ]+0+ \{braces\} +0+ l[ ]*df \*ABS\*[ ]+0+ \[brackets\] +0+ l[ ]*df \*ABS\*[ ]+0+ /dir/file\.s +0+ l[ ]*df \*ABS\*[ ]+0+ :colon +0+ l[ ]*df \*ABS\*[ ]+0+ UPPER +0+ l[ ]*df \*ABS\*[ ]+0+ lower +0+ l[ ]*df \*ABS\*[ ]+0+ hash\# +0+ l[ ]*df \*ABS\*[ ]+0+ ~tilde +#pass diff --git a/gas/testsuite/gas/elf/file.s b/gas/testsuite/gas/elf/file.s new file mode 100644 index 0000000..7718cc7 --- /dev/null +++ b/gas/testsuite/gas/elf/file.s @@ -0,0 +1,29 @@ + # delta (m68k sub-target) + .file "~tilde" + + # ia64 + .file "hash#" + + # m68k + .ifdef m86k + .opt nocase + .endif + .file "lower" + .file "UPPER" + + # mmix + .file ":colon" + .ifdef mmix + .prefix prefix + .endif + .file "/dir/file.s" + + # ppc/xcoff + .file "[brackets]" + .file "{braces}" + + # thumb (arm sub-target) + .file "slash/data" + + # xtensa (through --rename-section file.s=file.c) + .file "file.s" |