aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ArchiveWriter.cpp
diff options
context:
space:
mode:
authorzhijian <zhijian@ca.ibm.com>2022-01-17 10:37:08 -0500
committerzhijian <zhijian@ca.ibm.com>2022-01-18 12:13:01 -0500
commit4fae93298763e119ae6f6bfea21cccd5bd379096 (patch)
tree4153a73bc6fc07fa26db6af3fbd88e8a5faaa452 /llvm/lib/Object/ArchiveWriter.cpp
parent262cc74e0b699071ff3e2627140b02d01ae2aa7e (diff)
downloadllvm-4fae93298763e119ae6f6bfea21cccd5bd379096.zip
llvm-4fae93298763e119ae6f6bfea21cccd5bd379096.tar.gz
llvm-4fae93298763e119ae6f6bfea21cccd5bd379096.tar.bz2
[AIX] Support of Big archive (read)
Summary: The patch is based on the EGuesnet's implement of the "Support of Big archive (read) the first commit of the patch is come from https://reviews.llvm.org/D100651. the rest of commits of the patch 1 Addressed the comments on the https://reviews.llvm.org/D100651 2 according to https://www.ibm.com/docs/en/aix/7.2?topic=formats-ar-file-format-big using the "fl_fstmoff" for the first object file number, using "char ar_nxtmem[20]" to get next object file , using the "char fl_lstmoff[20]" for the last of the object file will fix the following problems: 2.1 can not correct reading a archive files which has padding data between too object file 2.2 can not correct reading a archive files from which some object file has be deleted 3 introduce a new derived class BigArchive for big ar file. Reviewers: James Henderson Differential Revision: https://reviews.llvm.org/D111889
Diffstat (limited to 'llvm/lib/Object/ArchiveWriter.cpp')
-rw-r--r--llvm/lib/Object/ArchiveWriter.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Object/ArchiveWriter.cpp b/llvm/lib/Object/ArchiveWriter.cpp
index da8bcec..053b3da 100644
--- a/llvm/lib/Object/ArchiveWriter.cpp
+++ b/llvm/lib/Object/ArchiveWriter.cpp
@@ -137,6 +137,7 @@ static bool isBSDLike(object::Archive::Kind Kind) {
case object::Archive::K_DARWIN:
case object::Archive::K_DARWIN64:
return true;
+ case object::Archive::K_AIXBIG:
case object::Archive::K_COFF:
break;
}
@@ -199,6 +200,7 @@ static bool is64BitKind(object::Archive::Kind Kind) {
case object::Archive::K_BSD:
case object::Archive::K_DARWIN:
case object::Archive::K_COFF:
+ case object::Archive::K_AIXBIG:
return false;
case object::Archive::K_DARWIN64:
case object::Archive::K_GNU64: