diff --git a/llvm/test/tools/llvm-objcopy/MachO/lc-thread.test b/llvm/test/tools/llvm-objcopy/MachO/lc-thread.test new file mode 100644 index 000000000000..3c9b71ad46fe --- /dev/null +++ b/llvm/test/tools/llvm-objcopy/MachO/lc-thread.test @@ -0,0 +1,43 @@ +## This test verifies that the load commands LC_THREAD/LC_UNIXTHREAD +## are copied correctly. + +# RUN: yaml2obj -D LC_NAME=LC_THREAD %s -o %t.lc_thread.exe +# RUN: llvm-objcopy %t.lc_thread.exe %t.lc_thread.exe.copy +# RUN: cmp %t.lc_thread.exe %t.lc_thread.exe.copy + +# RUN: yaml2obj -D LC_NAME=LC_UNIXTHREAD %s -o %t.lc_unixthread.exe +# RUN: llvm-objcopy %t.lc_unixthread.exe %t.lc_unixthread.exe.copy +# RUN: cmp %t.lc_unixthread.exe %t.lc_unixthread.exe.copy + +--- !mach-o +FileHeader: + magic: 0xFEEDFACF + cputype: 0x1000007 + cpusubtype: 0x3 + filetype: 0x2 + ncmds: 1 + sizeofcmds: 184 + flags: 0x18085 + reserved: 0x0 +LoadCommands: + - cmd: [[LC_NAME]] + cmdsize: 184 + PayloadBytes: [ 0x4, 0x0, 0x0, 0x0, 0x2A, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5C, 0xB, 0x0, 0x0, + 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ] +... diff --git a/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp b/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp index 8e2bf36238ec..c6cbfee44e67 100644 --- a/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp +++ b/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp @@ -371,6 +371,8 @@ Error MachOLayoutBuilder::layoutTail(uint64_t Offset) { case MachO::LC_LOAD_WEAK_DYLIB: case MachO::LC_UUID: case MachO::LC_SOURCE_VERSION: + case MachO::LC_THREAD: + case MachO::LC_UNIXTHREAD: // Nothing to update. break; default: