diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
commit | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch) | |
tree | 64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/libs/llvm12/tools/llvm-lipo | |
parent | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff) | |
download | ydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/llvm12/tools/llvm-lipo')
-rw-r--r-- | contrib/libs/llvm12/tools/llvm-lipo/llvm-lipo.cpp | 260 | ||||
-rw-r--r-- | contrib/libs/llvm12/tools/llvm-lipo/ya.make | 92 |
2 files changed, 176 insertions, 176 deletions
diff --git a/contrib/libs/llvm12/tools/llvm-lipo/llvm-lipo.cpp b/contrib/libs/llvm12/tools/llvm-lipo/llvm-lipo.cpp index 425434092a..7fbe489ecc 100644 --- a/contrib/libs/llvm12/tools/llvm-lipo/llvm-lipo.cpp +++ b/contrib/libs/llvm12/tools/llvm-lipo/llvm-lipo.cpp @@ -12,14 +12,14 @@ #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/Triple.h" -#include "llvm/BinaryFormat/MachO.h" -#include "llvm/IR/LLVMContext.h" -#include "llvm/IR/Module.h" +#include "llvm/BinaryFormat/MachO.h" +#include "llvm/IR/LLVMContext.h" +#include "llvm/IR/Module.h" #include "llvm/Object/Binary.h" -#include "llvm/Object/IRObjectFile.h" +#include "llvm/Object/IRObjectFile.h" #include "llvm/Object/MachO.h" #include "llvm/Object/MachOUniversal.h" -#include "llvm/Object/MachOUniversalWriter.h" +#include "llvm/Object/MachOUniversalWriter.h" #include "llvm/Object/ObjectFile.h" #include "llvm/Option/Arg.h" #include "llvm/Option/ArgList.h" @@ -34,7 +34,7 @@ using namespace llvm; using namespace llvm::object; static const StringRef ToolName = "llvm-lipo"; -static LLVMContext LLVMCtx; +static LLVMContext LLVMCtx; LLVM_ATTRIBUTE_NORETURN static void reportError(Twine Message) { WithColor::error(errs(), ToolName) << Message << "\n"; @@ -42,15 +42,15 @@ LLVM_ATTRIBUTE_NORETURN static void reportError(Twine Message) { exit(EXIT_FAILURE); } -LLVM_ATTRIBUTE_NORETURN static void reportError(Error E) { - assert(E); - std::string Buf; - raw_string_ostream OS(Buf); - logAllUnhandledErrors(std::move(E), OS); - OS.flush(); - reportError(Buf); -} - +LLVM_ATTRIBUTE_NORETURN static void reportError(Error E) { + assert(E); + std::string Buf; + raw_string_ostream OS(Buf); + logAllUnhandledErrors(std::move(E), OS); + OS.flush(); + reportError(Buf); +} + LLVM_ATTRIBUTE_NORETURN static void reportError(StringRef File, Error E) { assert(E); std::string Buf; @@ -118,18 +118,18 @@ struct Config { LipoAction ActionToPerform; }; -static Slice createSliceFromArchive(const Archive &A) { - Expected<Slice> ArchiveOrSlice = Slice::create(A, &LLVMCtx); - if (!ArchiveOrSlice) - reportError(A.getFileName(), ArchiveOrSlice.takeError()); - return *ArchiveOrSlice; +static Slice createSliceFromArchive(const Archive &A) { + Expected<Slice> ArchiveOrSlice = Slice::create(A, &LLVMCtx); + if (!ArchiveOrSlice) + reportError(A.getFileName(), ArchiveOrSlice.takeError()); + return *ArchiveOrSlice; } -static Slice createSliceFromIR(const IRObjectFile &IRO, unsigned Align) { - Expected<Slice> IROrErr = Slice::create(IRO, Align); - if (!IROrErr) - reportError(IRO.getFileName(), IROrErr.takeError()); - return *IROrErr; +static Slice createSliceFromIR(const IRObjectFile &IRO, unsigned Align) { + Expected<Slice> IROrErr = Slice::create(IRO, Align); + if (!IROrErr) + reportError(IRO.getFileName(), IROrErr.takeError()); + return *IROrErr; } } // end namespace @@ -319,20 +319,20 @@ static SmallVector<OwningBinary<Binary>, 1> readInputBinaries(ArrayRef<InputFile> InputFiles) { SmallVector<OwningBinary<Binary>, 1> InputBinaries; for (const InputFile &IF : InputFiles) { - Expected<OwningBinary<Binary>> BinaryOrErr = - createBinary(IF.FileName, &LLVMCtx); + Expected<OwningBinary<Binary>> BinaryOrErr = + createBinary(IF.FileName, &LLVMCtx); if (!BinaryOrErr) reportError(IF.FileName, BinaryOrErr.takeError()); const Binary *B = BinaryOrErr->getBinary(); - if (!B->isArchive() && !B->isMachO() && !B->isMachOUniversalBinary() && - !B->isIR()) + if (!B->isArchive() && !B->isMachO() && !B->isMachOUniversalBinary() && + !B->isIR()) reportError("File " + IF.FileName + " has unsupported binary format"); - if (IF.ArchType && (B->isMachO() || B->isArchive() || B->isIR())) { - const auto S = B->isMachO() - ? Slice(*cast<MachOObjectFile>(B)) - : B->isArchive() - ? createSliceFromArchive(*cast<Archive>(B)) - : createSliceFromIR(*cast<IRObjectFile>(B), 0); + if (IF.ArchType && (B->isMachO() || B->isArchive() || B->isIR())) { + const auto S = B->isMachO() + ? Slice(*cast<MachOObjectFile>(B)) + : B->isArchive() + ? createSliceFromArchive(*cast<Archive>(B)) + : createSliceFromIR(*cast<IRObjectFile>(B), 0); const auto SpecifiedCPUType = MachO::getCPUTypeFromArchitecture( MachO::getArchitectureFromName( Triple(*IF.ArchType).getArchName())) @@ -384,53 +384,53 @@ static void printBinaryArchs(const Binary *Binary, raw_ostream &OS) { // Prints trailing space for compatibility with cctools lipo. if (auto UO = dyn_cast<MachOUniversalBinary>(Binary)) { for (const auto &O : UO->objects()) { - // Order here is important, because both MachOObjectFile and - // IRObjectFile can be created with a binary that has embedded bitcode. + // Order here is important, because both MachOObjectFile and + // IRObjectFile can be created with a binary that has embedded bitcode. Expected<std::unique_ptr<MachOObjectFile>> MachOObjOrError = O.getAsObjectFile(); if (MachOObjOrError) { - OS << Slice(*(MachOObjOrError->get())).getArchString() << " "; + OS << Slice(*(MachOObjOrError->get())).getArchString() << " "; + continue; + } + Expected<std::unique_ptr<IRObjectFile>> IROrError = + O.getAsIRObject(LLVMCtx); + if (IROrError) { + consumeError(MachOObjOrError.takeError()); + Expected<Slice> SliceOrErr = Slice::create(**IROrError, O.getAlign()); + if (!SliceOrErr) { + reportError(Binary->getFileName(), SliceOrErr.takeError()); + continue; + } + OS << SliceOrErr.get().getArchString() << " "; continue; } - Expected<std::unique_ptr<IRObjectFile>> IROrError = - O.getAsIRObject(LLVMCtx); - if (IROrError) { - consumeError(MachOObjOrError.takeError()); - Expected<Slice> SliceOrErr = Slice::create(**IROrError, O.getAlign()); - if (!SliceOrErr) { - reportError(Binary->getFileName(), SliceOrErr.takeError()); - continue; - } - OS << SliceOrErr.get().getArchString() << " "; - continue; - } Expected<std::unique_ptr<Archive>> ArchiveOrError = O.getAsArchive(); if (ArchiveOrError) { consumeError(MachOObjOrError.takeError()); - consumeError(IROrError.takeError()); - OS << createSliceFromArchive(**ArchiveOrError).getArchString() << " "; + consumeError(IROrError.takeError()); + OS << createSliceFromArchive(**ArchiveOrError).getArchString() << " "; continue; } consumeError(ArchiveOrError.takeError()); reportError(Binary->getFileName(), MachOObjOrError.takeError()); - reportError(Binary->getFileName(), IROrError.takeError()); + reportError(Binary->getFileName(), IROrError.takeError()); } OS << "\n"; return; } - - if (const auto *MachO = dyn_cast<MachOObjectFile>(Binary)) { - OS << Slice(*MachO).getArchString() << " \n"; - return; - } - - // This should be always the case, as this is tested in readInputBinaries - const auto *IR = cast<IRObjectFile>(Binary); - Expected<Slice> SliceOrErr = createSliceFromIR(*IR, 0); - if (!SliceOrErr) - reportError(IR->getFileName(), SliceOrErr.takeError()); - - OS << SliceOrErr->getArchString() << " \n"; + + if (const auto *MachO = dyn_cast<MachOObjectFile>(Binary)) { + OS << Slice(*MachO).getArchString() << " \n"; + return; + } + + // This should be always the case, as this is tested in readInputBinaries + const auto *IR = cast<IRObjectFile>(Binary); + Expected<Slice> SliceOrErr = createSliceFromIR(*IR, 0); + if (!SliceOrErr) + reportError(IR->getFileName(), SliceOrErr.takeError()); + + OS << SliceOrErr->getArchString() << " \n"; } LLVM_ATTRIBUTE_NORETURN @@ -480,23 +480,23 @@ static void thinSlice(ArrayRef<OwningBinary<Binary>> InputBinaries, auto *UO = cast<MachOUniversalBinary>(InputBinaries.front().getBinary()); Expected<std::unique_ptr<MachOObjectFile>> Obj = UO->getMachOObjectForArch(ArchType); - Expected<std::unique_ptr<IRObjectFile>> IRObj = - UO->getIRObjectForArch(ArchType, LLVMCtx); + Expected<std::unique_ptr<IRObjectFile>> IRObj = + UO->getIRObjectForArch(ArchType, LLVMCtx); Expected<std::unique_ptr<Archive>> Ar = UO->getArchiveForArch(ArchType); - if (!Obj && !IRObj && !Ar) + if (!Obj && !IRObj && !Ar) reportError("fat input file " + UO->getFileName() + " does not contain the specified architecture " + ArchType + " to thin it to"); - Binary *B; - // Order here is important, because both Obj and IRObj will be valid with a - // binary that has embedded bitcode. - if (Obj) - B = Obj->get(); - else if (IRObj) - B = IRObj->get(); - else - B = Ar->get(); - + Binary *B; + // Order here is important, because both Obj and IRObj will be valid with a + // binary that has embedded bitcode. + if (Obj) + B = Obj->get(); + else if (IRObj) + B = IRObj->get(); + else + B = Ar->get(); + Expected<std::unique_ptr<FileOutputBuffer>> OutFileOrError = FileOutputBuffer::create(OutputFileName, B->getMemoryBufferRef().getBufferSize(), @@ -538,8 +538,8 @@ static void updateAlignments(Range &Slices, static void checkUnusedAlignments(ArrayRef<Slice> Slices, const StringMap<const uint32_t> &Alignments) { auto HasArch = [&](StringRef Arch) { - return llvm::any_of(Slices, - [Arch](Slice S) { return S.getArchString() == Arch; }); + return llvm::any_of(Slices, + [Arch](Slice S) { return S.getArchString() == Arch; }); }; for (StringRef Arch : Alignments.keys()) if (!HasArch(Arch)) @@ -550,47 +550,47 @@ static void checkUnusedAlignments(ArrayRef<Slice> Slices, // Updates vector ExtractedObjects with the MachOObjectFiles extracted from // Universal Binary files to transfer ownership. -static SmallVector<Slice, 2> -buildSlices(ArrayRef<OwningBinary<Binary>> InputBinaries, - const StringMap<const uint32_t> &Alignments, - SmallVectorImpl<std::unique_ptr<SymbolicFile>> &ExtractedObjects) { +static SmallVector<Slice, 2> +buildSlices(ArrayRef<OwningBinary<Binary>> InputBinaries, + const StringMap<const uint32_t> &Alignments, + SmallVectorImpl<std::unique_ptr<SymbolicFile>> &ExtractedObjects) { SmallVector<Slice, 2> Slices; for (auto &IB : InputBinaries) { const Binary *InputBinary = IB.getBinary(); if (auto UO = dyn_cast<MachOUniversalBinary>(InputBinary)) { for (const auto &O : UO->objects()) { - // Order here is important, because both MachOObjectFile and - // IRObjectFile can be created with a binary that has embedded bitcode. + // Order here is important, because both MachOObjectFile and + // IRObjectFile can be created with a binary that has embedded bitcode. Expected<std::unique_ptr<MachOObjectFile>> BinaryOrError = O.getAsObjectFile(); - if (BinaryOrError) { - Slices.emplace_back(*(BinaryOrError.get()), O.getAlign()); - ExtractedObjects.push_back(std::move(BinaryOrError.get())); - continue; - } - Expected<std::unique_ptr<IRObjectFile>> IROrError = - O.getAsIRObject(LLVMCtx); - if (IROrError) { - consumeError(BinaryOrError.takeError()); - Slice S = createSliceFromIR(**IROrError, O.getAlign()); - ExtractedObjects.emplace_back(std::move(IROrError.get())); - Slices.emplace_back(std::move(S)); - continue; - } - reportError(InputBinary->getFileName(), BinaryOrError.takeError()); + if (BinaryOrError) { + Slices.emplace_back(*(BinaryOrError.get()), O.getAlign()); + ExtractedObjects.push_back(std::move(BinaryOrError.get())); + continue; + } + Expected<std::unique_ptr<IRObjectFile>> IROrError = + O.getAsIRObject(LLVMCtx); + if (IROrError) { + consumeError(BinaryOrError.takeError()); + Slice S = createSliceFromIR(**IROrError, O.getAlign()); + ExtractedObjects.emplace_back(std::move(IROrError.get())); + Slices.emplace_back(std::move(S)); + continue; + } + reportError(InputBinary->getFileName(), BinaryOrError.takeError()); } - } else if (const auto *O = dyn_cast<MachOObjectFile>(InputBinary)) { - Slices.emplace_back(*O); - } else if (const auto *A = dyn_cast<Archive>(InputBinary)) { - Slices.push_back(createSliceFromArchive(*A)); - } else if (const auto *IRO = dyn_cast<IRObjectFile>(InputBinary)) { - // Original Apple's lipo set the alignment to 0 - Expected<Slice> SliceOrErr = Slice::create(*IRO, 0); - if (!SliceOrErr) { - reportError(InputBinary->getFileName(), SliceOrErr.takeError()); - continue; - } - Slices.emplace_back(std::move(SliceOrErr.get())); + } else if (const auto *O = dyn_cast<MachOObjectFile>(InputBinary)) { + Slices.emplace_back(*O); + } else if (const auto *A = dyn_cast<Archive>(InputBinary)) { + Slices.push_back(createSliceFromArchive(*A)); + } else if (const auto *IRO = dyn_cast<IRObjectFile>(InputBinary)) { + // Original Apple's lipo set the alignment to 0 + Expected<Slice> SliceOrErr = Slice::create(*IRO, 0); + if (!SliceOrErr) { + reportError(InputBinary->getFileName(), SliceOrErr.takeError()); + continue; + } + Slices.emplace_back(std::move(SliceOrErr.get())); } else { llvm_unreachable("Unexpected binary format"); } @@ -606,16 +606,16 @@ static void createUniversalBinary(ArrayRef<OwningBinary<Binary>> InputBinaries, assert(InputBinaries.size() >= 1 && "Incorrect number of input binaries"); assert(!OutputFileName.empty() && "Create expects a single output file"); - SmallVector<std::unique_ptr<SymbolicFile>, 1> ExtractedObjects; + SmallVector<std::unique_ptr<SymbolicFile>, 1> ExtractedObjects; SmallVector<Slice, 1> Slices = buildSlices(InputBinaries, Alignments, ExtractedObjects); checkArchDuplicates(Slices); checkUnusedAlignments(Slices, Alignments); - llvm::stable_sort(Slices); - if (Error E = writeUniversalBinary(Slices, OutputFileName)) - reportError(std::move(E)); - + llvm::stable_sort(Slices); + if (Error E = writeUniversalBinary(Slices, OutputFileName)) + reportError(std::move(E)); + exit(EXIT_SUCCESS); } @@ -634,7 +634,7 @@ static void extractSlice(ArrayRef<OwningBinary<Binary>> InputBinaries, " must be a fat file when the -extract option is specified"); } - SmallVector<std::unique_ptr<SymbolicFile>, 2> ExtractedObjects; + SmallVector<std::unique_ptr<SymbolicFile>, 2> ExtractedObjects; SmallVector<Slice, 2> Slices = buildSlices(InputBinaries, Alignments, ExtractedObjects); erase_if(Slices, [ArchType](const Slice &S) { @@ -645,10 +645,10 @@ static void extractSlice(ArrayRef<OwningBinary<Binary>> InputBinaries, reportError( "fat input file " + InputBinaries.front().getBinary()->getFileName() + " does not contain the specified architecture " + ArchType); - - llvm::stable_sort(Slices); - if (Error E = writeUniversalBinary(Slices, OutputFileName)) - reportError(std::move(E)); + + llvm::stable_sort(Slices); + if (Error E = writeUniversalBinary(Slices, OutputFileName)) + reportError(std::move(E)); exit(EXIT_SUCCESS); } @@ -664,7 +664,7 @@ buildReplacementSlices(ArrayRef<OwningBinary<Binary>> ReplacementBinaries, if (!O) reportError("replacement file: " + ReplacementBinary->getFileName() + " is a fat file (must be a thin file)"); - Slice S(*O); + Slice S(*O); auto Entry = Slices.try_emplace(S.getArchString(), S); if (!Entry.second) reportError("-replace " + S.getArchString() + @@ -696,7 +696,7 @@ static void replaceSlices(ArrayRef<OwningBinary<Binary>> InputBinaries, StringMap<Slice> ReplacementSlices = buildReplacementSlices(ReplacementBinaries, Alignments); - SmallVector<std::unique_ptr<SymbolicFile>, 2> ExtractedObjects; + SmallVector<std::unique_ptr<SymbolicFile>, 2> ExtractedObjects; SmallVector<Slice, 2> Slices = buildSlices(InputBinaries, Alignments, ExtractedObjects); @@ -715,10 +715,10 @@ static void replaceSlices(ArrayRef<OwningBinary<Binary>> InputBinaries, " does not contain that architecture"); checkUnusedAlignments(Slices, Alignments); - - llvm::stable_sort(Slices); - if (Error E = writeUniversalBinary(Slices, OutputFileName)) - reportError(std::move(E)); + + llvm::stable_sort(Slices); + if (Error E = writeUniversalBinary(Slices, OutputFileName)) + reportError(std::move(E)); exit(EXIT_SUCCESS); } diff --git a/contrib/libs/llvm12/tools/llvm-lipo/ya.make b/contrib/libs/llvm12/tools/llvm-lipo/ya.make index a48a15a45e..afb28b31ce 100644 --- a/contrib/libs/llvm12/tools/llvm-lipo/ya.make +++ b/contrib/libs/llvm12/tools/llvm-lipo/ya.make @@ -12,55 +12,55 @@ LICENSE(Apache-2.0 WITH LLVM-exception) LICENSE_TEXTS(.yandex_meta/licenses.list.txt) PEERDIR( - contrib/libs/llvm12 - contrib/libs/llvm12/include - contrib/libs/llvm12/lib/BinaryFormat - contrib/libs/llvm12/lib/Bitcode/Reader - contrib/libs/llvm12/lib/Bitstream/Reader - contrib/libs/llvm12/lib/Demangle - contrib/libs/llvm12/lib/IR - contrib/libs/llvm12/lib/MC - contrib/libs/llvm12/lib/MC/MCParser - contrib/libs/llvm12/lib/Object - contrib/libs/llvm12/lib/Option - contrib/libs/llvm12/lib/Remarks - contrib/libs/llvm12/lib/Support - contrib/libs/llvm12/lib/Target/AArch64 - contrib/libs/llvm12/lib/Target/AArch64/AsmParser - contrib/libs/llvm12/lib/Target/AArch64/Disassembler - contrib/libs/llvm12/lib/Target/AArch64/MCTargetDesc - contrib/libs/llvm12/lib/Target/AArch64/TargetInfo - contrib/libs/llvm12/lib/Target/AArch64/Utils - contrib/libs/llvm12/lib/Target/ARM - contrib/libs/llvm12/lib/Target/ARM/AsmParser - contrib/libs/llvm12/lib/Target/ARM/Disassembler - contrib/libs/llvm12/lib/Target/ARM/MCTargetDesc - contrib/libs/llvm12/lib/Target/ARM/TargetInfo - contrib/libs/llvm12/lib/Target/ARM/Utils - contrib/libs/llvm12/lib/Target/BPF - contrib/libs/llvm12/lib/Target/BPF/AsmParser - contrib/libs/llvm12/lib/Target/BPF/Disassembler - contrib/libs/llvm12/lib/Target/BPF/MCTargetDesc - contrib/libs/llvm12/lib/Target/BPF/TargetInfo - contrib/libs/llvm12/lib/Target/NVPTX - contrib/libs/llvm12/lib/Target/NVPTX/MCTargetDesc - contrib/libs/llvm12/lib/Target/NVPTX/TargetInfo - contrib/libs/llvm12/lib/Target/PowerPC - contrib/libs/llvm12/lib/Target/PowerPC/AsmParser - contrib/libs/llvm12/lib/Target/PowerPC/Disassembler - contrib/libs/llvm12/lib/Target/PowerPC/MCTargetDesc - contrib/libs/llvm12/lib/Target/PowerPC/TargetInfo - contrib/libs/llvm12/lib/Target/X86 - contrib/libs/llvm12/lib/Target/X86/AsmParser - contrib/libs/llvm12/lib/Target/X86/Disassembler - contrib/libs/llvm12/lib/Target/X86/MCTargetDesc - contrib/libs/llvm12/lib/Target/X86/TargetInfo - contrib/libs/llvm12/lib/TextAPI/MachO + contrib/libs/llvm12 + contrib/libs/llvm12/include + contrib/libs/llvm12/lib/BinaryFormat + contrib/libs/llvm12/lib/Bitcode/Reader + contrib/libs/llvm12/lib/Bitstream/Reader + contrib/libs/llvm12/lib/Demangle + contrib/libs/llvm12/lib/IR + contrib/libs/llvm12/lib/MC + contrib/libs/llvm12/lib/MC/MCParser + contrib/libs/llvm12/lib/Object + contrib/libs/llvm12/lib/Option + contrib/libs/llvm12/lib/Remarks + contrib/libs/llvm12/lib/Support + contrib/libs/llvm12/lib/Target/AArch64 + contrib/libs/llvm12/lib/Target/AArch64/AsmParser + contrib/libs/llvm12/lib/Target/AArch64/Disassembler + contrib/libs/llvm12/lib/Target/AArch64/MCTargetDesc + contrib/libs/llvm12/lib/Target/AArch64/TargetInfo + contrib/libs/llvm12/lib/Target/AArch64/Utils + contrib/libs/llvm12/lib/Target/ARM + contrib/libs/llvm12/lib/Target/ARM/AsmParser + contrib/libs/llvm12/lib/Target/ARM/Disassembler + contrib/libs/llvm12/lib/Target/ARM/MCTargetDesc + contrib/libs/llvm12/lib/Target/ARM/TargetInfo + contrib/libs/llvm12/lib/Target/ARM/Utils + contrib/libs/llvm12/lib/Target/BPF + contrib/libs/llvm12/lib/Target/BPF/AsmParser + contrib/libs/llvm12/lib/Target/BPF/Disassembler + contrib/libs/llvm12/lib/Target/BPF/MCTargetDesc + contrib/libs/llvm12/lib/Target/BPF/TargetInfo + contrib/libs/llvm12/lib/Target/NVPTX + contrib/libs/llvm12/lib/Target/NVPTX/MCTargetDesc + contrib/libs/llvm12/lib/Target/NVPTX/TargetInfo + contrib/libs/llvm12/lib/Target/PowerPC + contrib/libs/llvm12/lib/Target/PowerPC/AsmParser + contrib/libs/llvm12/lib/Target/PowerPC/Disassembler + contrib/libs/llvm12/lib/Target/PowerPC/MCTargetDesc + contrib/libs/llvm12/lib/Target/PowerPC/TargetInfo + contrib/libs/llvm12/lib/Target/X86 + contrib/libs/llvm12/lib/Target/X86/AsmParser + contrib/libs/llvm12/lib/Target/X86/Disassembler + contrib/libs/llvm12/lib/Target/X86/MCTargetDesc + contrib/libs/llvm12/lib/Target/X86/TargetInfo + contrib/libs/llvm12/lib/TextAPI/MachO ) ADDINCL( - ${ARCADIA_BUILD_ROOT}/contrib/libs/llvm12/tools/llvm-lipo - contrib/libs/llvm12/tools/llvm-lipo + ${ARCADIA_BUILD_ROOT}/contrib/libs/llvm12/tools/llvm-lipo + contrib/libs/llvm12/tools/llvm-lipo ) NO_COMPILER_WARNINGS() |