diff options
author | zhijian <zhijian@ca.ibm.com> | 2022-01-17 10:37:08 -0500 |
---|---|---|
committer | zhijian <zhijian@ca.ibm.com> | 2022-01-17 10:37:08 -0500 |
commit | 3130134d6e4823b5ee7619288a4b7e1e60831a82 (patch) | |
tree | e77284ad57eb35b646e56745be5f46740f146148 /llvm/lib/Object/ArchiveWriter.cpp | |
parent | 875117ae7a21f0282e09a72addaf41dfd033cc55 (diff) | |
download | llvm-3130134d6e4823b5ee7619288a4b7e1e60831a82.zip llvm-3130134d6e4823b5ee7619288a4b7e1e60831a82.tar.gz llvm-3130134d6e4823b5ee7619288a4b7e1e60831a82.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.cpp | 2 |
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: |