Add the `lto_codegen_set_export_dynamic' function.
authorBill Wendling <isanbard@gmail.com>
Sat, 8 Dec 2012 00:18:16 +0000 (00:18 +0000)
committerBill Wendling <isanbard@gmail.com>
Sat, 8 Dec 2012 00:18:16 +0000 (00:18 +0000)
commitf62b9cd8905fd04e78775e29a01f41667286e67c
tree71d361df66b830205bfa23ee0807fcf1335d4fe0
parent68a590df13f47180abd3022aa75f237ae993770f
Add the `lto_codegen_set_export_dynamic' function.

This function sets the `_exportDynamic' ivar. When that's set, we export all
symbols (e.g. we don't run the internalize pass). This is equivalent to the
`--export-dynamic' linker flag in GNU land:

--export-dynamic
  When creating a dynamically linked executable, add all symbols to the dynamic
  symbol table. The dynamic symbol table is the set of symbols which are visible
  from dynamic objects at run time. If you do not use this option, the dynamic
  symbol table will normally contain only those symbols which are referenced by
  some dynamic object mentioned in the link. If you use dlopen to load a dynamic
  object which needs to refer back to the symbols defined by the program, rather
  than some other dynamic object, then you will probably need to use this option
  when linking the program itself.

The Darwin linker will support this via the `-export_dynamic' flag. We should
modify clang to support this via the `-rdynamic' flag.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169656 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm-c/lto.h
tools/lto/LTOCodeGenerator.cpp
tools/lto/LTOCodeGenerator.h
tools/lto/lto.cpp
tools/lto/lto.exports