aboutsummaryrefslogtreecommitdiff
path: root/lib/System/DynamicLibrary.cpp
AgeCommit message (Collapse)Author
2010-03-11Make clang bootstrap happier on OSX 10.5 by reducing the number of headersJeffrey Yasskin
included when using global symbols to ask the linker for the addresses of various functions. One of the symbols was actually getting declared by a header included in DynamicLibrary.cpp, which conflicted with the "extern void*" declaration in SearchForAddressOfSpecialSymbol(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98243 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23Alternative fix to make sure that the extern declarations used byDouglas Gregor
DynamicLibrary::SearchForAddressOfSymbol refer to declarations in the global namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92023 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23Revert 92020 until I figure out a more portable fixDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92021 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23Move the extern symbol declarations outside ofDouglas Gregor
DynamicLibrary::SearchForAddressOfSymbol and force them to have "C" linkage. Interestingly, GCC treats the block-scoped "extern" declarations we previously had as if they were extern "C" declarations (or, at least, were in the global namespace), so that GCC bug papered over this LLVM bug. Clang and EDG get the linkage correct; this new variant seems to work for both GCC and Clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92020 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-25Remove unused includes.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85074 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31Fix ExplicitSymbols leak.Torok Edwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80589 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07Eliminate the static constructors and locks from DynamicLibrary.cpp.Chris Lattner
This fixes PR4512 and eliminating static ctors is always good. Losing thread safety is unfortunate, but the code is just incredibly poorly designed. If someone is interested, the "right" solution is to split DynamicLibrary.cpp into two separate pieces: a stateless piece in libsystem, and a simple support file in libsupport that has the "state" (e.g. AddSymbol) in managed static objects. Doing this would both fix memory leaks we already have, as well as make the code thread safe again. it would also make sense to move all the unix specific code in System/DynamicLibrary.cpp into System/Unix/DynamicLibrary.inc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74927 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07remove dead code, noone creates instances of "DynamicLibrary", so the ctor ↵Chris Lattner
and dtor are dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74926 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07we don't use libtool anymore, update comments.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74924 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25Guard dynamic library loading.Owen Anderson
I did my best at implementing this for Win32, but I don't have a way to test it. Can someone with access to a Win32 machine test/fix this? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74188 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-29Fix PR3424, a static constructor ordering issue. Patch by Robert Schuster!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63269 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-08Add <cstdio> include where needed by gcc-4.4.Duncan Sands
Patch by Samuel Tardieu. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57291 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10open plugins with RTLD_GLOBAL, pointed out by Bram Adams.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53385 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06Remove uses of llvm/System/IncludeFile.h that are no longer needed.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50695 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-13Remove unused GetAddressOfSymbol()Devang Patel
Thanks Daniel Dunbar! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48340 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-12This is a simple fix for getting error messages from dlerror inChris Lattner
LoadLibraryPermanently. The current code modifies the value of a pointer that is passed by value, so the caller never gets the message. Patch by Julien Lerouge! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48270 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-22Provide __main hooks for cygwin & mingw32Anton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47479 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-13Remove use of ltdlDevang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47065 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-09Fix compile failures with g++-4.3.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45781 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29Remove attribution from file headers, per discussion on llvmdev.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Provide hook for _alloca to make JITing on Cygwin slightly happier :)Anton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44528 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-28really fix PR1581, thanks to Daniel Dunbar for pointingChris Lattner
this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42448 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31Fix PR1581, patch by Timo SavolaChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40616 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01silence warningChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33746 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19Unbreak Darwin.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33375 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19Help the lli interpreter find the stderr/stdin/stdout symbols. These areReid Spencer
needed for output to be generated. On Linux these are both global vars and macro definitions so we have to special case Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33374 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19Handle each of stderr/stdin/stdout separately.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33373 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-11Avoid taking the address of a macro by checking to see if stdin is definedReid Spencer
or not. This allows DynamicLibrary.cpp to compile on Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33064 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-10Allow LLI, in interpreter mode, to find stdin, stdout, and stderr. This isReid Spencer
a bit of a hack but it lets some of the llvm-test programs run. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33058 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-30Guess what happens when asserts are disabled. :(Chris Lattner
Also, the assert could never fire due to || instead of &&. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29977 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-25For PR797:Reid Spencer
Final commit for this bug. This removes the last EH holdouts in LLVM and turns off exception support by using the -fno-exceptions option. This leads to the following reduction in library and executable sizes: DEBUG BUILD RELEASE BUILD before after delta before after delta lib 162,328K 157,616K 4,712 17,864K 16,416K 1,448K bin 571,444K 557,156K 14,288 63,296K 56,996K 6,300K Debug Improvement: 19,000K (2.59%) Release Improvement: 7,748K (9.55%) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29882 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-26For PR780:Reid Spencer
Put the rest of lib/System into LinkAllVMCore.h. This makes all of lib/System available to programs that #include LinkALlVMCore.h so that loadable modules linked into those programs can depend on all of lib/System being available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29288 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-07Change LoadLibraryPermanently to not throw an exception.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29048 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-14Bug noticed, by inspection. Filename can be null.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28292 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-12Fix iterator invalidation bug, identified by Coverity.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28257 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-30Add AddSymbol() method to DynamicLibrary to work around Windows limitationJeff Cohen
of being unable to search for symbols in an EXE. It will also allow other existing hacks to be improved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25805 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21Remove trailing whitespaceMisha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21422 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-09Rename Unix/*.cpp and Win32/*.cpp to have a *.inc suffix so that the sillyReid Spencer
gdb debugger doesn't get confused on which file it is reading (the one in lib/System or the one in lib/System/{Win32,Unix}) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19426 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-02Correct the case of a #include directory name, just in case.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19254 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-24Get VC++ building againJeff Cohen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19140 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-24Eliminate use of ltdl.c when doing a VC++ build. Because libtool isn't used,Jeff Cohen
ltdl's LGPL license would infect all of LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-04Fix compilation error on Darwin.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18485 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-03Move darwin-specific majik here.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18466 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-29Implement two new functions: LoadLibraryPermanently andReid Spencer
SearchForAddressOfSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18355 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-29We just use ltdl's implementation for this abstraction now. Its portable toReid Spencer
more platforms than LLVM supports. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18352 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-29Implement the default constructor which causes the current program to beReid Spencer
opened as if it was a dynamic library so its symbols can be searched too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18341 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-18Dynamic Library abstraction. This makes the abstraction of a single dynamicReid Spencer
library (shared library/shared object) whose symbols can be looked up dynamically. Used for plug-ins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17940 91177308-0d34-0410-b5e6-96231b3b80d8