<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px; ">Hi,</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px; "><span class="Apple-style-span" style="font-size: medium; "><br></span></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px; "><span class="Apple-style-span" style="font-size: medium; ">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.</span></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px; "><span class="Apple-style-span" style="font-size: medium; "><br></span></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px; "><span class="Apple-style-span" style="font-size: medium; ">Is there a plan to add support back to llvm-ar to generate symbol table information when archiving bitcode files? </span></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px; "><span class="Apple-style-span" style="font-size: medium; "><br></span></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px; "><span class="Apple-style-span" style="font-size: medium; ">Thanks,</span></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px; "><span class="Apple-style-span" style="font-size: medium; "> Jason </span></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; font-size: 14px; "><span class="Apple-style-span" style="font-size: medium; "><br></span></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; ">Steps to reproduce:</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; ">Create repro.c with the following contents:</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; "><span class="Apple-tab-span" style="white-space:pre"> </span>const char* symbol = "Hello, World!";</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; "><br></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; ">Create archive containing llvm bitcode files (no symbol table created):</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; ">clang -emit-llvm -c -o repro.bc repro.c</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; ">llvm-ar rs repro.a repro.bc</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; "><br></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; ">Create archive containing object files (symbol table is created):</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; ">clang -c -o repro.o repro.c</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; ">llvm-ar rs repro.a repro.o</div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; "><br></div><div style="color: rgb(0, 0, 0); font-family: Calibri, sans-serif; "><br></div></body></html>