diff options
author | Jacek Caban <jacek@codeweavers.com> | 2024-02-24 17:43:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-24 17:43:59 +0100 |
commit | 8a5aa103c52265337b43330e55e05567046f3ede (patch) | |
tree | f717565bfb17f97e8d9d5acbe242c37830ac0ea2 /llvm/lib | |
parent | cf9201cfdbc10f4606fc4ca22bf1ccaf5ee841b3 (diff) | |
download | llvm-8a5aa103c52265337b43330e55e05567046f3ede.zip llvm-8a5aa103c52265337b43330e55e05567046f3ede.tar.gz llvm-8a5aa103c52265337b43330e55e05567046f3ede.tar.bz2 |
Revert "[llvm-ar] Use COFF archive format for COFF targets." (#82889)
Reverts llvm/llvm-project#82642 for
lld/test/ELF/invalid/Output/data-encoding.test.tmp.a failures on
Windows.
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Object/Archive.cpp | 15 | ||||
-rw-r--r-- | llvm/lib/Object/ArchiveWriter.cpp | 21 |
2 files changed, 14 insertions, 22 deletions
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp index d3fdcd9..e447e5b 100644 --- a/llvm/lib/Object/Archive.cpp +++ b/llvm/lib/Object/Archive.cpp @@ -969,19 +969,12 @@ Archive::Archive(MemoryBufferRef Source, Error &Err) Err = Error::success(); } -object::Archive::Kind Archive::getDefaultKindForTriple(Triple &T) { - if (T.isOSDarwin()) - return object::Archive::K_DARWIN; - if (T.isOSAIX()) - return object::Archive::K_AIXBIG; - if (T.isOSWindows()) - return object::Archive::K_COFF; - return object::Archive::K_GNU; -} - object::Archive::Kind Archive::getDefaultKindForHost() { Triple HostTriple(sys::getProcessTriple()); - return getDefaultKindForTriple(HostTriple); + return HostTriple.isOSDarwin() + ? object::Archive::K_DARWIN + : (HostTriple.isOSAIX() ? object::Archive::K_AIXBIG + : object::Archive::K_GNU); } Archive::child_iterator Archive::child_begin(Error &Err, diff --git a/llvm/lib/Object/ArchiveWriter.cpp b/llvm/lib/Object/ArchiveWriter.cpp index 02f7252..155926a 100644 --- a/llvm/lib/Object/ArchiveWriter.cpp +++ b/llvm/lib/Object/ArchiveWriter.cpp @@ -62,16 +62,12 @@ object::Archive::Kind NewArchiveMember::detectKindFromObject() const { Expected<std::unique_ptr<object::ObjectFile>> OptionalObject = object::ObjectFile::createObjectFile(MemBufferRef); - if (OptionalObject) { - if (isa<object::MachOObjectFile>(**OptionalObject)) - return object::Archive::K_DARWIN; - if (isa<object::XCOFFObjectFile>(**OptionalObject)) - return object::Archive::K_AIXBIG; - if (isa<object::COFFObjectFile>(**OptionalObject) || - isa<object::COFFImportFile>(**OptionalObject)) - return object::Archive::K_COFF; - return object::Archive::K_GNU; - } + if (OptionalObject) + return isa<object::MachOObjectFile>(**OptionalObject) + ? object::Archive::K_DARWIN + : (isa<object::XCOFFObjectFile>(**OptionalObject) + ? object::Archive::K_AIXBIG + : object::Archive::K_GNU); // Squelch the error in case we had a non-object file. consumeError(OptionalObject.takeError()); @@ -84,7 +80,10 @@ object::Archive::Kind NewArchiveMember::detectKindFromObject() const { MemBufferRef, file_magic::bitcode, &Context)) { auto &IRObject = cast<object::IRObjectFile>(**ObjOrErr); auto TargetTriple = Triple(IRObject.getTargetTriple()); - return object::Archive::getDefaultKindForTriple(TargetTriple); + return TargetTriple.isOSDarwin() + ? object::Archive::K_DARWIN + : (TargetTriple.isOSAIX() ? object::Archive::K_AIXBIG + : object::Archive::K_GNU); } else { // Squelch the error in case this was not a SymbolicFile. consumeError(ObjOrErr.takeError()); |