summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools
diff options
context:
space:
mode:
authorSteven Wu <stevenwu@apple.com>2017-01-23 20:07:55 +0000
committerSteven Wu <stevenwu@apple.com>2017-01-23 20:07:55 +0000
commit5b54a42c0f1178dbb367866f92cd4efe88710bd6 (patch)
tree55464f3be2aa42cdf522652eb39e7969d85a5c24 /llvm/test/tools
parentcddeb751a11ce5771bedaa36f04775fb0aa56212 (diff)
downloadbcm5719-llvm-5b54a42c0f1178dbb367866f92cd4efe88710bd6.tar.gz
bcm5719-llvm-5b54a42c0f1178dbb367866f92cd4efe88710bd6.zip
Add LC_BUILD_VERSION load command
Summary: Add a new load command LC_BUILD_VERSION. It is a generic version of LC_*_VERSION_MIN load_command used on Apple platforms. Instead of having a seperate load command for each platform, LC_BUILD_VERSION is recording platform info as an enum. It also records SDK version, min_os, and tools that used to build the binary. rdar://problem/29781291 Reviewers: enderby Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29044 llvm-svn: 292824
Diffstat (limited to 'llvm/test/tools')
-rw-r--r--llvm/test/tools/llvm-objdump/X86/invalid-macho-build-version.yaml44
-rw-r--r--llvm/test/tools/llvm-objdump/X86/macho-build-version.yaml57
2 files changed, 101 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objdump/X86/invalid-macho-build-version.yaml b/llvm/test/tools/llvm-objdump/X86/invalid-macho-build-version.yaml
new file mode 100644
index 00000000000..a81bb2dea60
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/X86/invalid-macho-build-version.yaml
@@ -0,0 +1,44 @@
+# RUN: yaml2obj %s | not llvm-objdump -macho -private-headers -
+
+--- !mach-o
+FileHeader:
+ magic: 0xFEEDFACF
+ cputype: 0x01000007
+ cpusubtype: 0x00000003
+ filetype: 0x00000004
+ ncmds: 2
+ sizeofcmds: 192
+ flags: 0x00000000
+ reserved: 0
+LoadCommands:
+ - cmd: LC_SEGMENT_64
+ cmdsize: 152
+ segname: __TEXT
+ vmaddr: 4294967296
+ vmsize: 8192
+ fileoff: 0
+ filesize: 3099
+ maxprot: 7
+ initprot: 5
+ nsects: 1
+ flags: 0
+ Sections:
+ - sectname: __text
+ segname: __TEXT
+ addr: 0x0000000100001160
+ size: 3099
+ offset: 0x00001160
+ align: 4
+ reloff: 0x00000000
+ nreloc: 0
+ flags: 0x80000400
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ - cmd: LC_BUILD_VERSION
+ cmdsize: 80
+ platform: 2
+ minos: 0x00080000
+ sdk: 0x00090000
+ ntools: 0
+...
diff --git a/llvm/test/tools/llvm-objdump/X86/macho-build-version.yaml b/llvm/test/tools/llvm-objdump/X86/macho-build-version.yaml
new file mode 100644
index 00000000000..acefb6956d1
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/X86/macho-build-version.yaml
@@ -0,0 +1,57 @@
+# RUN: yaml2obj %s | llvm-objdump -macho -private-headers - | FileCheck %s
+
+--- !mach-o
+FileHeader:
+ magic: 0xFEEDFACF
+ cputype: 0x01000007
+ cpusubtype: 0x00000003
+ filetype: 0x00000004
+ ncmds: 2
+ sizeofcmds: 192
+ flags: 0x00000000
+ reserved: 0
+LoadCommands:
+ - cmd: LC_SEGMENT_64
+ cmdsize: 152
+ segname: __TEXT
+ vmaddr: 4294967296
+ vmsize: 8192
+ fileoff: 0
+ filesize: 3099
+ maxprot: 7
+ initprot: 5
+ nsects: 1
+ flags: 0
+ Sections:
+ - sectname: __text
+ segname: __TEXT
+ addr: 0x0000000100001160
+ size: 3099
+ offset: 0x00001160
+ align: 4
+ reloff: 0x00000000
+ nreloc: 0
+ flags: 0x80000400
+ reserved1: 0x00000000
+ reserved2: 0x00000000
+ reserved3: 0x00000000
+ - cmd: LC_BUILD_VERSION
+ cmdsize: 32
+ platform: 2
+ minos: 0x00080000
+ sdk: 0x00090000
+ ntools: 1
+ Tools:
+ - tool: 1
+ version: 0x00000000
+...
+
+CHECK: Load command 1
+CHECK-NEXT: cmd LC_BUILD_VERSION
+CHECK-NEXT: cmdsize 32
+CHECK-NEXT: platform ios
+CHECK-NEXT: sdk 9.0
+CHECK-NEXT: minos 8.0
+CHECK-NEXT: ntools 1
+CHECK-NEXT: tool clang
+CHECK-NEXT: version n/a
OpenPOWER on IntegriCloud