[LLVMdev] llvm-ar does not generates symbol table for contained bitcode files

Rafael Espíndola
Mon, 30 Sep 2013 19:57:57 -0000

On 19 September 2013 11:59, Jason Holajter <jholajter at arxan.com>
wrote:
> Hi,
>
> The behavior of llvm-ar appears to have changed such that the archive
symbol
> table no longer contains symbols contained within bitcode modules in the
> archive. This behavior appears to have been changed with revision 184083
> when the internal implementation of llvm-ar was changed from
> lib/Archive/Archive.cpp to lib/object/Archive.cpp. This seems to occur
> because ObjectFile::createObjectFile() does not support creating objects of
> bitcode type and thus llvm-ar cannot read them to retrieve the symbol
> information.
>
> Is there a plan to add support back to llvm-ar to generate symbol table
> information when archiving bitcode files?

Yes. I am sorry for the current state. Support for bitcode format will
be added back. The will be a few differences from before:

* It will use a "standard" symbol table instead of having a LLVM only
symbol table.
* The final name will be used. So on MachO you will see _foo, not foo.

In summary, the bitcode files in the .a archive will behave much more
like regular object files, making better suited for LTO.

Cheers,
Rafael