[llvm] 740332b - [llvm-readobj/elf] - Refine testing of broken Android's packed relocation sections.

Georgii Rymar via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 18 06:24:08 PDT 2020


Author: Georgii Rymar
Date: 2020-08-18T16:23:41+03:00
New Revision: 740332b6cce3e59dca4e50d3e2fd0d008f5e9529

URL: https://github.com/llvm/llvm-project/commit/740332b6cce3e59dca4e50d3e2fd0d008f5e9529
DIFF: https://github.com/llvm/llvm-project/commit/740332b6cce3e59dca4e50d3e2fd0d008f5e9529.diff

LOG: [llvm-readobj/elf] - Refine testing of broken Android's packed relocation sections.

This uses modern `split-file` tool to merge 5 `packed-relocs-error*.s` tests to a
new `packed-relocs-errors.s` and adds testing for GNU style.

Differential revision: https://reviews.llvm.org/D85835

Added: 
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-errors.s

Modified: 
    

Removed: 
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-error1.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-error2.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-error3.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-error4.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-error5.s


################################################################################
diff  --git a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error1.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error1.s
deleted file mode 100644
index 07fbd78b09ec..000000000000
--- a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error1.s
+++ /dev/null
@@ -1,8 +0,0 @@
-// REQUIRES: x86-registered-target
-// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t
-// RUN: llvm-readobj --relocations %t 2>&1 | FileCheck %s -DFILE=%t
-
-// CHECK: warning: '[[FILE]]': unable to read relocations from SHT_ANDROID_REL section with index 3: invalid packed relocation header
-
-.section .rela.dyn, "a", @0x60000001
-.ascii "APS9"

diff  --git a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error2.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error2.s
deleted file mode 100644
index ea14995e0ded..000000000000
--- a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error2.s
+++ /dev/null
@@ -1,8 +0,0 @@
-// REQUIRES: x86-registered-target
-// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t
-// RUN: llvm-readobj --relocations %t 2>&1 | FileCheck %s -DFILE=%t
-
-// CHECK: warning: '[[FILE]]': unable to read relocations from SHT_ANDROID_REL section with index 3: malformed sleb128, extends past end
-
-.section .rela.dyn, "a", @0x60000001
-.ascii "APS2"

diff  --git a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error3.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error3.s
deleted file mode 100644
index 766c551295ae..000000000000
--- a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error3.s
+++ /dev/null
@@ -1,10 +0,0 @@
-// REQUIRES: x86-registered-target
-// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t
-// RUN: llvm-readobj --relocations %t 2>&1 | FileCheck %s -DFILE=%t
-
-// CHECK: warning: '[[FILE]]': unable to read relocations from SHT_ANDROID_REL section with index 3: malformed sleb128, extends past end
-
-.section .rela.dyn, "a", @0x60000001
-.ascii "APS2"
-.sleb128 4 // Number of relocations
-.sleb128 0 // Initial offset

diff  --git a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error4.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error4.s
deleted file mode 100644
index 191e0b7885c4..000000000000
--- a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error4.s
+++ /dev/null
@@ -1,14 +0,0 @@
-// REQUIRES: x86-registered-target
-// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t
-// RUN: llvm-readobj --relocations %t 2>&1 | FileCheck %s -DFILE=%t
-
-// CHECK: warning: '[[FILE]]': unable to read relocations from SHT_ANDROID_REL section with index 3: malformed sleb128, extends past end
-
-.section .rela.dyn, "a", @0x60000001
-.ascii "APS2"
-.sleb128 4 // Number of relocations
-.sleb128 0 // Initial offset
-
-.sleb128 2 // Number of relocations in group
-.sleb128 2 // RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG
-.sleb128 8 // offset delta

diff  --git a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error5.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error5.s
deleted file mode 100644
index 8a6d6560f520..000000000000
--- a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error5.s
+++ /dev/null
@@ -1,14 +0,0 @@
-// REQUIRES: x86-registered-target
-// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t
-// RUN: llvm-readobj --relocations %t 2>&1 | FileCheck %s -DFILE=%t
-
-// CHECK: warning: '[[FILE]]': unable to read relocations from SHT_ANDROID_REL section with index 3: relocation group unexpectedly large
-
-.section .rela.dyn, "a", @0x60000001
-.ascii "APS2"
-.sleb128 4 // Number of relocations
-.sleb128 0 // Initial offset
-
-.sleb128 5 // Number of relocations in group
-.sleb128 2 // RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG
-.sleb128 8 // offset delta

diff  --git a/llvm/test/tools/llvm-readobj/ELF/packed-relocs-errors.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-errors.s
new file mode 100644
index 000000000000..4f2e65ed220f
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-errors.s
@@ -0,0 +1,66 @@
+# REQUIRES: x86-registered-target
+
+## Test that we report meaningful warnings when dumping
+## broken Android's packed relocation sections.
+
+# RUN: split-file %s %t
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %t/asm1.s -o %t1.o
+# RUN: llvm-readobj --relocations %t1.o 2>&1 | FileCheck %s -DFILE=%t1.o --check-prefix=ERR-HEADER
+# RUN: llvm-readelf --relocations %t1.o 2>&1 | FileCheck %s -DFILE=%t1.o --check-prefix=ERR-HEADER
+
+#--- asm1.s
+.section .rela.dyn, "a", @0x60000001
+.ascii "APS9"
+
+# ERR-HEADER: warning: '[[FILE]]': unable to read relocations from SHT_ANDROID_REL section with index 3: invalid packed relocation header
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %t/asm2.s -o %t2.o
+# RUN: llvm-readobj --relocations %t2.o 2>&1 | FileCheck %s -DFILE=%t2.o --check-prefix=ERR-PAST-END
+# RUN: llvm-readelf --relocations %t2.o 2>&1 | FileCheck %s -DFILE=%t2.o --check-prefix=ERR-PAST-END
+
+#--- asm2.s
+.section .rela.dyn, "a", @0x60000001
+.ascii "APS2"
+
+# ERR-PAST-END: warning: '[[FILE]]': unable to read relocations from SHT_ANDROID_REL section with index 3: malformed sleb128, extends past end
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %t/asm3.s -o %t3.o
+# RUN: llvm-readobj --relocations %t3.o 2>&1 | FileCheck %s -DFILE=%t3.o --check-prefix=ERR-PAST-END
+# RUN: llvm-readelf --relocations %t3.o 2>&1 | FileCheck %s -DFILE=%t3.o --check-prefix=ERR-PAST-END
+
+#--- asm3.s
+.section .rela.dyn, "a", @0x60000001
+.ascii "APS2"
+.sleb128 4 ## Number of relocations
+.sleb128 0 ## Initial offset
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %t/asm4.s -o %t4.o
+# RUN: llvm-readobj --relocations %t4.o 2>&1 | FileCheck %s -DFILE=%t4.o --check-prefix=ERR-PAST-END
+# RUN: llvm-readelf --relocations %t4.o 2>&1 | FileCheck %s -DFILE=%t4.o --check-prefix=ERR-PAST-END
+
+#--- asm4.s
+.section .rela.dyn, "a", @0x60000001
+.ascii "APS2"
+.sleb128 4 ## Number of relocations
+.sleb128 0 ## Initial offset
+
+.sleb128 2 ## Number of relocations in group
+.sleb128 2 ## RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG
+.sleb128 8 ## offset delta
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %t/asm5.s -o %t5.o
+# RUN: llvm-readobj --relocations %t5.o 2>&1 | FileCheck %s -DFILE=%t5.o --check-prefix=ERR-LARGE
+# RUN: llvm-readelf --relocations %t5.o 2>&1 | FileCheck %s -DFILE=%t5.o --check-prefix=ERR-LARGE
+
+# ERR-LARGE: warning: '[[FILE]]': unable to read relocations from SHT_ANDROID_REL section with index 3: relocation group unexpectedly large
+
+#--- asm5.s
+.section .rela.dyn, "a", @0x60000001
+.ascii "APS2"
+.sleb128 4 ## Number of relocations
+.sleb128 0 ## Initial offset
+
+.sleb128 5 ## Number of relocations in group
+.sleb128 2 ## RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG
+.sleb128 8 ## offset delta


        


More information about the llvm-commits mailing list