Index: llvm/test/tools/llvm-objcopy/MachO/Inputs/min_iphoneos_version_lc.yaml =================================================================== --- /dev/null +++ llvm/test/tools/llvm-objcopy/MachO/Inputs/min_iphoneos_version_lc.yaml @@ -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 +... Index: llvm/test/tools/llvm-objcopy/MachO/Inputs/min_macos_version_lc.yaml =================================================================== --- /dev/null +++ llvm/test/tools/llvm-objcopy/MachO/Inputs/min_macos_version_lc.yaml @@ -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 +... Index: llvm/test/tools/llvm-objcopy/MachO/Inputs/min_tvos_version_lc.yaml =================================================================== --- /dev/null +++ llvm/test/tools/llvm-objcopy/MachO/Inputs/min_tvos_version_lc.yaml @@ -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 +... Index: llvm/test/tools/llvm-objcopy/MachO/Inputs/min_watchos_version_lc.yaml =================================================================== --- /dev/null +++ llvm/test/tools/llvm-objcopy/MachO/Inputs/min_watchos_version_lc.yaml @@ -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 +... Index: llvm/test/tools/llvm-objcopy/MachO/min-version-load-commands.test =================================================================== --- /dev/null +++ llvm/test/tools/llvm-objcopy/MachO/min-version-load-commands.test @@ -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 Index: llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp =================================================================== --- llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp +++ llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp @@ -318,6 +318,9 @@ 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: