aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCatherine Moore <clm@redhat.com>2007-12-11 13:13:59 +0000
committerCatherine Moore <clm@redhat.com>2007-12-11 13:13:59 +0000
commit8424d8f538ffb17bf5e61ac73137f86e47bc8952 (patch)
tree6d05220be2c584124b481c8d3424bbcaf2f62a89
parent60955fda27cd4a8336e710b83b25f49262defb4f (diff)
downloadfsf-binutils-gdb-8424d8f538ffb17bf5e61ac73137f86e47bc8952.zip
fsf-binutils-gdb-8424d8f538ffb17bf5e61ac73137f86e47bc8952.tar.gz
fsf-binutils-gdb-8424d8f538ffb17bf5e61ac73137f86e47bc8952.tar.bz2
* bfd/elf.c (_bfd_elf_copy_private_symbol_data): Don't copy shndx if
the symbol's section is the undefined section. * gas/testsuite/gas/elf/symtab.s: New test. gas/testsuite/gas/elf/symtab.d: New expected output. gas/testsuite/gas/elf/elf.exp: Run the new symbtab test.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf.c1
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/elf/symtab.d6
-rw-r--r--gas/testsuite/gas/elf/symtab.s5
5 files changed, 23 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index bd7deca..6131728 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2007-12-11 Catherine Moore <clm@codesourcery.com>
+
+ * elf.c (_bfd_elf_copy_private_symbol_data): Don't copy shndx if
+ the symbol's section is the undefined section.
+
2007-12-11 Alan Modra <amodra@bigpond.net.au>
* elf.c (elf_fake_sections): Add "warning:" to "..changed to PROGBITS"
diff --git a/bfd/elf.c b/bfd/elf.c
index ffc82c7..f0b2e4d 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -6046,6 +6046,7 @@ _bfd_elf_copy_private_symbol_data (bfd *ibfd,
osym = elf_symbol_from (obfd, osymarg);
if (isym != NULL
+ && isym->internal_elf_sym.st_shndx != 0
&& osym != NULL
&& bfd_is_abs_section (isym->symbol.section))
{
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 61450eb..9de1854 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2007-12-11 Catherine Moore <clm@codesourcery.com>
+
+ gas/elf/symtab.s: New test.
+ gas/elf/symtab.d: New expected output.
+ gas/elf/elf.exp: Run the new symbtab test.
+
2007-12-10 Richard Sandiford <rsandifo@nildram.co.uk>
* gas/mips/align2.s, gas/mips/align2.d, gas/mips/align2-el.d: New
diff --git a/gas/testsuite/gas/elf/symtab.d b/gas/testsuite/gas/elf/symtab.d
new file mode 100644
index 0000000..b69b717
--- /dev/null
+++ b/gas/testsuite/gas/elf/symtab.d
@@ -0,0 +1,6 @@
+#readelf: -s
+#name: .set with expression
+
+#...
+.*ABS.*shift.*
+#pass
diff --git a/gas/testsuite/gas/elf/symtab.s b/gas/testsuite/gas/elf/symtab.s
new file mode 100644
index 0000000..9219cf8
--- /dev/null
+++ b/gas/testsuite/gas/elf/symtab.s
@@ -0,0 +1,5 @@
+.text
+ .global foo
+foo:
+ .set shift, 32
+ .set shift, shift - 1