[PATCH] D100651: Support of Big archive (read)

Guesnet via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 16 07:58:54 PDT 2021


EGuesnet created this revision.
EGuesnet added a reviewer: rupprecht.
Herald added subscribers: hiraditya, kristof.beyls.
EGuesnet requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Hi,
Here is a work-in-progress to add support of Big Archive in LLVM. Only read here.
Big archive documentation is here : https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/filesreference/ar_big.html .

I have added an abstract class to represent header. I have checked GNU with elf and big with XCOFF, and it works.

Unfortunately, I must add a ``new`` (due to abstract, I must deal with pointer in some part of the code), and it is really difficult to add correctly the ``delete``.
There is copy of the Child object, that contains Header, there is move of Child object, there is empty Child object (initialized with nullptr x3). It is really complicated to have a deep copy of Header, as the ArMemHdrType structure is not in abstract class and Header is pointer to abstract class (so, a copy of Header cannot deal with ArMemHdrType).

I fall into ownership hell. So I prefer some advice before spending too much time to this issue.

Thanks,
Etienne Guesnet.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D100651

Files:
  llvm/include/llvm/Object/Archive.h
  llvm/lib/Object/Archive.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D100651.338117.patch
Type: text/x-patch
Size: 24769 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210416/4b47bd38/attachment.bin>


More information about the llvm-commits mailing list