diff options
author | zhijian <zhijian@ca.ibm.com> | 2022-01-17 10:37:08 -0500 |
---|---|---|
committer | zhijian <zhijian@ca.ibm.com> | 2022-01-17 11:59:54 -0500 |
commit | 2164c54315bb3351a5e22336c12b1eeb2bbf6821 (patch) | |
tree | 90e2233b17df07873464511c06ce25a99e5cdb1b /llvm/lib/Object/ArchiveWriter.cpp | |
parent | 76f1c396fad8b9281a1c96d266af357da0492344 (diff) | |
download | llvm-2164c54315bb3351a5e22336c12b1eeb2bbf6821.zip llvm-2164c54315bb3351a5e22336c12b1eeb2bbf6821.tar.gz llvm-2164c54315bb3351a5e22336c12b1eeb2bbf6821.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: |