Previously, the function pointers were not only declared with extern(C) calling convention, but actually had C linkage themselves. Thus, they were exported under their bare names, potentially colliding with the actual function definitions in the wrapped library if the dynamic linker decided to resolve them the wrong way. This fixes the sneaky1 test case, although I have no idea why the add() reference in D_add() (via the PLT) is rebound to the function pointer there and not in all other test cases and real-world libraries. As far as I can see, there don't seem to be any special symbol visibility/binding settings involved in our build system. |
||
|---|---|---|
| .. | ||
| CParse | ||
| DOH | ||
| Include | ||
| Modules | ||
| Preprocessor | ||
| Swig | ||
| Makefile.am | ||
| README | ||
SWIG Source directory
Source/DOH - A core set of basic datatypes including
strings, lists, hashes, and files. Used
extensively by the rest of SWIG.
Source/Swig - Swig core. Type-system, utility functions.
Source/Preprocessor - SWIG C Preprocessor
Source/CParse - SWIG C Parser (still messy)
Source/Modules - Language modules.
Source/Include - Include files.
Historic directories which may be in CVS, but have been removed:
Source/Modules1.1 - Old SWIG-1.1 modules. Empty.
Source/LParse - Experimental parser. Officially dead
as CParse is more capable.
Source/SWIG1.1 - Old SWIG1.1 core. Completely empty now.