To solve this problem, currently ports which build JSCore as a shared library must manually maintain largely similar (but not the same, as there are port-specific APIs) compiler-specific export symbol files that contain a list of symbols needed by other components of WebKit. However, this is inefficient, because each export symbol file must be changed each time a common symbol is exported (or removed from export). I came across this myself when the wx's lack of export symbol file caused problems running DRT.
This bug intends to resolve this issue by having the exported symbols declared in the JSCore headers directly, so that a single change updates all ports. This will reduce overall maintenance and make it easier for other ports to build JSCore as a shared library without increasing the maintenance burden.
The framework for doing this is already in JSCore, its use controlled by the WTF_USE_EXPORT_MACROS define in Platform.h, so the basic approach has already been r+ed. The next steps are as follows:
1) Add JS_EXPORT_PRIVATE / WTF_EXPORT_PRIVATE macros to any JSCore function which is needed by WebCore, DRT, etc.
2) Switch each port to using them one at a time by defining WTF_USE_EXPORT_MACROS to 1 for that port.