hanchenye-llvm-project/lldb
Zachary Turner f4f8740eb0 [CMake] Change lldbAPI to be a CMake OBJECT library.
An OBJECT library is a special type of CMake library that produces
no archive, has no link interface, and no link inputs.  It is like
a regular archive, just without the physical output.  To link
against an OBJECT library, you reference it in the *source* file
list of a library using the special syntax $<TARGET_OBJECTS:lldbAPI>.
This will cause every object file to be passed to the linker
independently, as opposed to a single archive being passed to the
linker.

This is *extremely* important on Windows.  lldbAPI exports all of the
SB classes using __declspec(dllexport).  Unfortunately for technical
reasons it is not possible (well, extremely difficult) to get the
linker to propagate a __declspec(dllexport) attribute from a symbol
in an object file in an archive to a DLL that links against that
archive.  The solution to this is for the DLL to link the object files
directly.  So lldbAPI must be an OBJECT library.

This fixes an issue that has been present since the duplicated
lldbAPI file lists were removed, which would cause linker failures.

As a side effect, this also makes LLDB_DISABLE_PYTHON=1 work again
on Windows, which was previously totally broken.

llvm-svn: 230380
2015-02-24 20:58:39 +00:00
..
cmake [CMake] Change lldbAPI to be a CMake OBJECT library. 2015-02-24 20:58:39 +00:00
docs Fix the communication in qPlatform_[mkdir,chmod] 2015-02-23 11:03:08 +00:00
examples Specify ObjC++ when running heap commands in case we are stopped in a frame with another language. 2015-01-14 21:37:19 +00:00
gtest Fix compilation error and cleanup in ThreadStateCoordinatorTest 2015-02-03 01:51:54 +00:00
include Avoid crashing by not mmap'ing files on network mounted file systems. 2015-02-23 23:47:09 +00:00
lib Fix configure+make build broken by r228943 (part 2) 2015-02-13 12:27:24 +00:00
lldb.xcodeproj Move the copy phases for the xpcservices bundles from the "LLDB" 2015-02-24 03:21:38 +00:00
lldb.xcworkspace Fixup gtest layout, add Linux ThreadStateCoordinator.cpp. 2014-09-25 19:25:07 +00:00
resources
scripts [CMake] Don't automatically copy python27.dll. 2015-02-24 20:58:24 +00:00
source [CMake] Change lldbAPI to be a CMake OBJECT library. 2015-02-24 20:58:39 +00:00
test Add comment in MiSignalTestCase.test_lldbmi_stopped_when_stopatentry_local back and revert expecting string. 2015-02-24 17:54:34 +00:00
tools [CMake] Change lldbAPI to be a CMake OBJECT library. 2015-02-24 20:58:39 +00:00
utils
www Fix broken link to 'Obtaining Commit Access' 2015-02-18 16:51:30 +00:00
.arcconfig
.clang-format
.gitignore Added remote-build.py and wired it into Xcode for Linux and MacOSX+Linux builds. 2015-02-03 01:50:39 +00:00
CMakeLists.txt [CMake] Change lldbAPI to be a CMake OBJECT library. 2015-02-24 20:58:39 +00:00
INSTALL.txt Revert "git-svn test commit" 2014-11-18 22:45:59 +00:00
LICENSE.TXT
Makefile