From 27e55c4d0b94f5d358385b9641d26b84ee611768 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Tue, 20 Mar 2007 20:19:07 +0000 Subject: 2007-03-20 Paul Brook ld/ * emultempl/armelf.em (pic_veneer): New variable. (PARSE_AND_LIST_PROLOGUE): Add OPTION_PIC_VENEER. (PARSE_AND_LIST_ARGS_CASES): Ditto. (PARSE_AND_LIST_LONGOPTS): Add "pic-veneer". (PARSE_AND_LIST_OPTIONS): Ditto. * ld.texinfo: Document --pic-veneer. ld/testsuite/ * ld-arm/arm-elf.exp (ld-arm/arm-elf.exp): Add arm-pic-veneer. * ld-arm/arm-pic-veneer.d: New test. * ld-arm/arm-pic-veneer.s: New test. bfd/ * bfd-in.h (bfd_elf32_arm_set_target_relocs): Update prototype. * bfd-in2.h: Regenerate. * elf32-arm.c (elf32_arm_link_hash_table): Add pic_veneer. (record_arm_to_thumb_glue): Use globals->pic_veneer. (elf32_arm_create_thumb_stub): Ditto. (bfd_elf32_arm_set_target_relocs): Set globals->pic_veneer. --- ld/testsuite/ld-arm/arm-pic-veneer.d | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 ld/testsuite/ld-arm/arm-pic-veneer.d (limited to 'ld/testsuite/ld-arm/arm-pic-veneer.d') diff --git a/ld/testsuite/ld-arm/arm-pic-veneer.d b/ld/testsuite/ld-arm/arm-pic-veneer.d new file mode 100644 index 0000000..cbd5822 --- /dev/null +++ b/ld/testsuite/ld-arm/arm-pic-veneer.d @@ -0,0 +1,17 @@ + +.*: file format.* + +Disassembly of section .text: + +00008000 <_start>: + 8000: ea000000 b 8008 <__foo_from_arm> + +00008004 : + 8004: 46c0 nop \(mov r8, r8\) + 8006: 4770 bx lr + +00008008 <__foo_from_arm>: + 8008: e59fc004 ldr ip, \[pc, #4\] ; 8014 <__foo_from_arm\+0xc> + 800c: e08cc00f add ip, ip, pc + 8010: e12fff1c bx ip + 8014: fffffff1 undefined instruction 0xfffffff1 -- cgit v1.1