gas/
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 22 May 2009 18:11:59 +0000 (18:11 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 22 May 2009 18:11:59 +0000 (18:11 +0000)
2009-05-22  H.J. Lu  <hongjiu.lu@intel.com>

* symbols.c (COPIED_SYMFLAGS): Add BSF_GNU_INDIRECT_FUNCTION.

gas/testsuite/gas/

2009-05-22  H.J. Lu  <hongjiu.lu@intel.com>

* gas/elf/ifunc-1.d: New.
* gas/elf/ifunc-1.s: Likewise.

* gas/elf/elf.exp: Run ifunc-1.

gas/ChangeLog
gas/symbols.c
gas/testsuite/ChangeLog
gas/testsuite/gas/elf/elf.exp
gas/testsuite/gas/elf/ifunc-1.d [new file with mode: 0644]
gas/testsuite/gas/elf/ifunc-1.s [new file with mode: 0644]

index bc7e2a0c603221ddbfc6727b64390b6c85c7f410..ddd05fa71bad302dd1a633f4aa3f8111d9198700 100644 (file)
@@ -1,3 +1,7 @@
+2009-05-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * symbols.c (COPIED_SYMFLAGS): Add BSF_GNU_INDIRECT_FUNCTION.
+
 2009-05-22  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
 
        * config/tc-i386.c (process_drex): Delete. Remove SSE5 support.
index 660b2a4f1449dc70bd147646faa47cd5e1aa16de..3959ee2536d223b9d5eb8cc09066d9352b7e931f 100644 (file)
@@ -1948,7 +1948,8 @@ copy_symbol_attributes (symbolS *dest, symbolS *src)
 
   /* In an expression, transfer the settings of these flags.
      The user can override later, of course.  */
-#define COPIED_SYMFLAGS        (BSF_FUNCTION | BSF_OBJECT)
+#define COPIED_SYMFLAGS        (BSF_FUNCTION | BSF_OBJECT \
+                        | BSF_GNU_INDIRECT_FUNCTION)
   dest->bsym->flags |= src->bsym->flags & COPIED_SYMFLAGS;
 
 #ifdef OBJ_COPY_SYMBOL_ATTRIBUTES
index 0b8b3c5542646d971bbefdefd327fd45b4b11d99..59b9502c6ae6fbae517196974707ea13ae268366 100644 (file)
@@ -1,3 +1,10 @@
+2009-05-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * gas/elf/ifunc-1.d: New.
+       * gas/elf/ifunc-1.s: Likewise.
+
+       * gas/elf/elf.exp: Run ifunc-1.
+
 2009-05-22  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
 
        * gas/i386/i386.exp: Remove SSE5 tests.
index abf2030f2ab7887ecba78ec87a8c86b6814f6b2f..a3adb9b788cfd2c5a67f74558ce587a56d0e470d 100644 (file)
@@ -125,6 +125,7 @@ if { ([istarget "*-*-*elf*"]
        || [istarget "xscale*-*-*"]} then {
            run_elf_list_test "type-noifunc" "" "" "-s" "| grep \"1 \\\[FONTC\\\]\""
     } else {
+           run_dump_test ifunc-1
            run_elf_list_test "type" "" "" "-s" "| grep \"1 \\\[FIONTC\\\]\""
     }
 
diff --git a/gas/testsuite/gas/elf/ifunc-1.d b/gas/testsuite/gas/elf/ifunc-1.d
new file mode 100644 (file)
index 0000000..efdd59c
--- /dev/null
@@ -0,0 +1,7 @@
+#readelf: -s
+#name: .set with IFUNC
+
+#...
+[      ]+[0-9]+:[      ]+[0-9a-f]+[    ]+[0-9]+[       ]+IFUNC[        ]+GLOBAL[       ]+DEFAULT[      ]+[1-9] __GI_foo
+[      ]+[0-9]+:[      ]+[0-9a-f]+[    ]+[0-9]+[       ]+IFUNC[        ]+GLOBAL[       ]+DEFAULT[      ]+[1-9] foo
+#pass
diff --git a/gas/testsuite/gas/elf/ifunc-1.s b/gas/testsuite/gas/elf/ifunc-1.s
new file mode 100644 (file)
index 0000000..fc3a281
--- /dev/null
@@ -0,0 +1,9 @@
+.globl __GI_foo
+       .set __GI_foo, foo
+       .text
+.globl foo
+       .type   foo, %function
+foo:
+       .byte   0x0
+       .size   foo, .-foo
+       .type foo, %gnu_indirect_function