aboutsummaryrefslogtreecommitdiff
path: root/test/old-elf/X86_64/weaksym.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/old-elf/X86_64/weaksym.test')
-rw-r--r--test/old-elf/X86_64/weaksym.test77
1 files changed, 77 insertions, 0 deletions
diff --git a/test/old-elf/X86_64/weaksym.test b/test/old-elf/X86_64/weaksym.test
new file mode 100644
index 000000000000..9e4f2da9bdba
--- /dev/null
+++ b/test/old-elf/X86_64/weaksym.test
@@ -0,0 +1,77 @@
+# Tests that an executable with a weak undefine will put this symbol in the
+# dynamic symbol table if the executable has a dynamic relocation against this
+# symbol.
+
+#RUN: yaml2obj --format elf %s -o %t.o
+#RUN: lld -flavor old-gnu -target x86_64 -e main %t.o -o %t1
+#RUN: llvm-readobj -dt %t1 | FileCheck -check-prefix CHECKSYMS %s
+
+#CHECKSYMS: Name: x@
+#CHECKSYMS-NEXT: Value: 0x0
+#CHECKSYMS-NEXT: Size: 0
+#CHECKSYMS-NEXT: Binding: Weak (0x2)
+#CHECKSYMS-NEXT: Type: None (0x0)
+#CHECKSYMS-NEXT: Other: 0
+#CHECKSYMS-NEXT: Section: Undefined (0x0)
+
+# The object file above corresponds to the following C program compiled with
+# -fPIC:
+# extern int *x __attribute__((weak));
+#
+# int main() {
+# if (x)
+# return 1;
+# return 0;
+# }
+
+---
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_GNU
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .text
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x0000000000000010
+ Content: 554889E5488B0500000000C745FC00000000488138000000000F840C000000C745FC01000000E907000000C745FC000000008B45FC5DC3
+ - Name: .rela.text
+ Type: SHT_RELA
+ Link: .symtab
+ AddressAlign: 0x0000000000000008
+ Info: .text
+ Relocations:
+ - Offset: 0x0000000000000007
+ Symbol: x
+ Type: R_X86_64_GOTPCREL
+ Addend: -4
+ - Name: .data
+ Type: SHT_PROGBITS
+ Flags: [ SHF_WRITE, SHF_ALLOC ]
+ AddressAlign: 0x0000000000000004
+ Content: ''
+ - Name: .bss
+ Type: SHT_NOBITS
+ Flags: [ SHF_WRITE, SHF_ALLOC ]
+ AddressAlign: 0x0000000000000004
+Symbols:
+ Local:
+ - Name: .text
+ Type: STT_SECTION
+ Section: .text
+ - Name: .data
+ Type: STT_SECTION
+ Section: .data
+ - Name: .bss
+ Type: STT_SECTION
+ Section: .bss
+ Global:
+ - Name: main
+ Type: STT_FUNC
+ Section: .text
+ Size: 0x0000000000000037
+ - Name: _GLOBAL_OFFSET_TABLE_
+ Weak:
+ - Name: x