Proposed changes to the current sdk
Paulo César Pereira de Andrade
pcpa at mandriva.com.br
Sun Nov 30 09:36:26 PST 2008
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
Thanks for reading,
More information about the xorg