Maintaining the GTK+ and GDK abi


today I have committed patches which change the way in which the GTK+
abi is maintained. There is a master list of symbols in gtk.symbols.
This list is subdivided in a couple of sections like #ifdef
G_OS_WIN32 ... #endif to allow producing subsets of symbols using cpp.
This list is used for 3 things:

1) gtk.def is produced from it

2) We create a header file gtkalias.h containing hidden aliases for 
exported symbols. This allows us to avoid expensive PLT redirections for
internal uses of exported symbols

3) make check compares the actually exported symbols in against the master list

As a consequence of these changes, adding new exported symbols to GTK+
requires to add the symbol to gtk.symbols as well. gtk.def doesn't have
to be manually updated any more, since it is generated. 
Another consequence of these changes is that it is no longer possible to
override GTK+ symbols using LD_PRELOAD tricks, but in our opinion this
has always caused more trouble than benefit, and doesn't outweigh the

Corresponding changes have been made to GDK. 


PS I wouldn't be surprised if these changes cause problems on some
platforms. Make sure to file them in bugzilla.

PPS Credit for these patches goes to Arjan van de Ven.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]