summaryrefslogtreecommitdiff
path: root/test/old-elf/Mips/rld_map.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/old-elf/Mips/rld_map.test')
-rw-r--r--test/old-elf/Mips/rld_map.test42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/old-elf/Mips/rld_map.test b/test/old-elf/Mips/rld_map.test
new file mode 100644
index 000000000000..ee063be1d7fc
--- /dev/null
+++ b/test/old-elf/Mips/rld_map.test
@@ -0,0 +1,42 @@
+# REQUIRES: mips
+
+# Check definition of DT_MIPS_RLD_MAP and DT_MIPS_RLD_MAP_REL dynamic tags,
+# .rld_map section, and __RLD_MAP symbol.
+
+# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
+# RUN: lld -flavor old-gnu -target mips %t.o -o %t.exe
+# RUN: llvm-readobj -dynamic-table -s -st %t.exe \
+# RUN: | FileCheck -check-prefix=EXE-DYN %s
+
+# EXE-DYN: Name: .rld_map
+# EXE-DYN-NEXT: Type: SHT_PROGBITS
+# EXE-DYN-NEXT: Flags [
+# EXE-DYN-NEXT: SHF_ALLOC
+# EXE-DYN-NEXT: SHF_WRITE
+# EXE-DYN-NEXT: ]
+# EXE-DYN-NEXT: Address: 0x[[ADDR:[0-9A-F]+]]
+# EXE-DYN: Size: 4
+# EXE-DYN: AddressAlignment: 4
+# EXE-DYN: Symbols [
+# EXE-DYN-NEXT: Symbol {
+# EXE-DYN-NEXT: Name: __RLD_MAP
+# EXE-DYN-NEXT: Value: 0x[[ADDR]]
+# EXE-DYN-NEXT: Size: 4
+# EXE-DYN-NEXT: Binding: Global
+# EXE-DYN-NEXT: Type: Object
+#
+# EXE-DYN: 0x70000016 MIPS_RLD_MAP 0x[[ADDR]]
+# EXE-DYN: 0x70000035 MIPS_RLD_MAP_REL 0x1E48
+
+# RUN: lld -flavor old-gnu -target mips -static %t.o -o %t.exe
+# RUN: llvm-nm -just-symbol-name %t.exe | FileCheck -check-prefix=EXE-STATIC %s
+
+# EXE-STATIC-NOT: __RLD_MAP
+
+# RUN: lld -flavor old-gnu -target mips -shared %t.o -o %t.so
+# RUN: llvm-nm -just-symbol-name %t.so | FileCheck -check-prefix=DYNLIB %s
+
+# DYNLIB-NOT: __RLD_MAP
+
+ .globl __start;
+__start: