Hi, If you check in current git master % git show d6cbd4511e35a89a0353f11834c6fdb8d4d2189f | grep _X_EXPORT | wc -l The result is 1718, and some of those are for multiple inclusion macros, that define multiple symbols.
The detail is that, from those 1718+ symbols, none of them is used by any xorg module, but they are "advertised" in the SDK, and thus, should be made available to modules. The only "non xorg" modules I tested were openchrome and nouveau. Also, from memory since last time I had this working, I think nvidia binary/proprietary driver needs symbols in cw, probably miInitializeCompositeWrapper(). I changed it to export all sdk symbols to not give people a reason to compile the X Server with --disable-visibility :-) But there are plenty of symbols that shouldn't really be made available to modules. While there are others that are so widely used that now they must be made available. There are also other symbols that were already exported, but not used by any module. Since several of them are in the sdk "by accident", I am considering to create some private files, that aren't installed in the sdk. Sample pseudo "actions" for os.h: o copy os.h to osP.h o change all files that include os.h to include osP.h o change osP.h to include os.h o edit os.h to only export what really should be available to modules (i.e. external shared objects) The only special case should be symbols that would still be made visible because they are required by modules built in the X Server tree, but would not be made available publicly to "external" modules, and there would not exist the requirement of having them always available. Thanks for reading, Paulo _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg