On Mac OS X, when using the xcode projects, there is some machinery to manage what symbols are exported from various things:
liblldb only exports the public API.
debugserver only exports _DNB* and __DNB*
argdumper exports nothing
lldb-server exports nothing
This machinery only exists within the xcode projects though and isn’t used in the cmake or autotools build systems.
I’m not interested in adding it to the autotools build system, but I would like to get this set up in the cmake build system.
The LLVM cmake code provides a helper function for managing this already in a cross-platform manner. The main difference is that it expects one fewer leading underscores in the exports files and a particular naming scheme for the files.
Managing the files and their names is pretty easy and I can handle that.
The other difference is a bit harder to manage unless we set up a script to run in the xcode build to perform the mapping (not hard for someone that knows xcode, I guess).
Is this something we want on all platforms? I think the most important of these is limiting liblldb to only exporting the public API.
Should any other targets have their exported symbols similarly restricted? (Perhaps lldb-mi?)
Is someone willing to assist with a minor xcode change so that we don’t have to have a separate copy of 2 of the files for the xcode build?