On Thursday 08 November 2007 15:33:49 Anthony Kozar wrote: > It will still be necessary to hide parts of CSOUND using the pre-processor. > I think we should definitely not be exporting all symbols on any platform > or compiler version if we can help it! Last time I checked, all symbols > seemed to be exported on OS X. This spawns a linker warning (and maybe a > bug?) when using Cscore. > > If export lists need to be created or something, then we should do so. I > used to maintain an export list for OS 9 but that was too error-prone for > just me to do by myself. I solved the problem by enclosing all of csound.h > in a pair of pragmas. Is there a similar workaround for GCC 3 and earlier? I'm afraid it involves a bit more than that. By default gcc 3 and earlier export all symbols, and symbols need to be "unexported" separately. If there was a PRIVATE macro that marked all non PUBLIC funcions and data, then under gcc 3 you could be able to define PRIVATE as __attribute__(visibility("hidden")), which would do the trick. All other workarounds I'm aware of require gcc 4 or gcc 3+patches. -- Felipe Sateler