Under linux, shared libraries are by default built with all symbols exposed, unlike Windows. I have added a new definition for csound's PUBLIC macro and built using default visibility hidden. This means only functions and data explicitly exported will be available to clients. What is interesting is that several functions are not PUBLIC, but have documentation, and have suggesting names, which makes me think they should be (I don't really know the csound API). Examples include: csoundGetMidiChannel csoundGetMidiChannelNumber csoundGetOpcodeName csoundGetPFields csoundLoadModules csoundLoadSoundFile among many others (there seem to be around 939 symbols that were exported but now aren't). The advantage of building this way, is that some functions which aren't supposed to be used by the clients are exported and may be used by them, which in turn means that if you change an internal symbol, you risk breaking ABI compatibility. Attached is a diff of the exported symbols by each library (default visibility and hidden), in case you may want it, and a diff of the exported symbols that start with 'csound'. -- Felipe Sateler