Hello,
I implement support of AIX archive (big archive / XCOFF) on LLVM.
I have done a prototype available here : https://github.com/EGuesnet/llvm-project/commit/1db5ddbdfea5614d0b91a8a6a1920ac630163ec0 .
This prototype replaces support of GNU/BSD/… archive by big archive, but you can switch changing the include. I have implemented only read operation (t, x, p).
I want advices, especially to merge correctly support of Big archive and other archive. Main troubles to merge is big archive has a different header than other archive.
Moreover, big archives have a fix length header, and one header for each object; fix and object headers are different (they are the same structure for non-big archive). Big archives have member table and symbol table at the end of the archive, so you must stop to read it before the end; the location of these table are given with absolute offset, hard to take into account in current code.
Big archive documentation is here : IBM Documentation .
Thanks.