forked from OSchip/llvm-project
[llvm-objcopy][MachO] Add support for min os version load commands
Add support for min os version load commands. Test plan: make check-all Differential revision: https://reviews.llvm.org/D69419
This commit is contained in:
parent
d4303b3861
commit
074af2daf5
|
@ -0,0 +1,15 @@
|
|||
--- !mach-o
|
||||
FileHeader:
|
||||
magic: 0xFEEDFACE
|
||||
cputype: 0x0000000C
|
||||
cpusubtype: 0x00000009
|
||||
filetype: 0x00000001
|
||||
ncmds: 1
|
||||
sizeofcmds: 16
|
||||
flags: 0x00002000
|
||||
LoadCommands:
|
||||
- cmd: LC_VERSION_MIN_IPHONEOS
|
||||
cmdsize: 16
|
||||
version: 327680
|
||||
sdk: 0
|
||||
...
|
|
@ -0,0 +1,15 @@
|
|||
--- !mach-o
|
||||
FileHeader:
|
||||
magic: 0xFEEDFACE
|
||||
cputype: 0x0000000C
|
||||
cpusubtype: 0x00000009
|
||||
filetype: 0x00000001
|
||||
ncmds: 1
|
||||
sizeofcmds: 16
|
||||
flags: 0x00002000
|
||||
LoadCommands:
|
||||
- cmd: LC_VERSION_MIN_MACOSX
|
||||
cmdsize: 16
|
||||
version: 327680
|
||||
sdk: 0
|
||||
...
|
|
@ -0,0 +1,15 @@
|
|||
--- !mach-o
|
||||
FileHeader:
|
||||
magic: 0xFEEDFACE
|
||||
cputype: 0x0000000C
|
||||
cpusubtype: 0x00000009
|
||||
filetype: 0x00000001
|
||||
ncmds: 1
|
||||
sizeofcmds: 16
|
||||
flags: 0x00002000
|
||||
LoadCommands:
|
||||
- cmd: LC_VERSION_MIN_TVOS
|
||||
cmdsize: 16
|
||||
version: 327680
|
||||
sdk: 0
|
||||
...
|
|
@ -0,0 +1,15 @@
|
|||
--- !mach-o
|
||||
FileHeader:
|
||||
magic: 0xFEEDFACE
|
||||
cputype: 0x0000000C
|
||||
cpusubtype: 0x00000009
|
||||
filetype: 0x00000001
|
||||
ncmds: 1
|
||||
sizeofcmds: 16
|
||||
flags: 0x00002000
|
||||
LoadCommands:
|
||||
- cmd: LC_VERSION_MIN_WATCHOS
|
||||
cmdsize: 16
|
||||
version: 327680
|
||||
sdk: 0
|
||||
...
|
|
@ -0,0 +1,20 @@
|
|||
## This test verifies that llvm-objcopy correctly handles min os version load commands.
|
||||
## We use separate input files since one binary is not allowed to contain more than one
|
||||
## load command of this type (LC_VERSION_MIN_IPHONEOS, LC_VERSION_MIN_MACOSX,
|
||||
## LC_VERSION_MIN_TVOS, LC_VERSION_MIN_WATCHOS).
|
||||
|
||||
# RUN: yaml2obj %p/Inputs/min_iphoneos_version_lc.yaml > %t.iphoneos
|
||||
# RUN: llvm-objcopy %t.iphoneos %t.iphoneos.copy
|
||||
# RUN: cmp %t.iphoneos %t.iphoneos.copy
|
||||
|
||||
# RUN: yaml2obj %p/Inputs/min_macos_version_lc.yaml > %t.macos
|
||||
# RUN: llvm-objcopy %t.macos %t.macos.copy
|
||||
# RUN: cmp %t.macos %t.macos.copy
|
||||
|
||||
# RUN: yaml2obj %p/Inputs/min_tvos_version_lc.yaml > %t.tvos
|
||||
# RUN: llvm-objcopy %t.tvos %t.tvos.copy
|
||||
# RUN: cmp %t.tvos %t.tvos.copy
|
||||
|
||||
# RUN: yaml2obj %p/Inputs/min_watchos_version_lc.yaml > %t.watchos
|
||||
# RUN: llvm-objcopy %t.watchos %t.watchos.copy
|
||||
# RUN: cmp %t.watchos %t.watchos.copy
|
|
@ -318,6 +318,9 @@ Error MachOLayoutBuilder::layoutTail(uint64_t Offset) {
|
|||
case MachO::LC_SEGMENT:
|
||||
case MachO::LC_SEGMENT_64:
|
||||
case MachO::LC_VERSION_MIN_MACOSX:
|
||||
case MachO::LC_VERSION_MIN_IPHONEOS:
|
||||
case MachO::LC_VERSION_MIN_TVOS:
|
||||
case MachO::LC_VERSION_MIN_WATCHOS:
|
||||
case MachO::LC_BUILD_VERSION:
|
||||
case MachO::LC_ID_DYLIB:
|
||||
case MachO::LC_LOAD_DYLIB:
|
||||
|
|
Loading…
Reference in New Issue