/* call the next function in the chain
* it should hopefully be from the system provided lib
* wereHamster> since my libGL.so is linked with libGL.so.native, which is
* a symlink to the real libGL.so, I make sure that the next
* symbol exists (which is why dlsym(RTLD_NEXT) will return a
* valid symbol)
* note: dlsym(RTLD_NEXT <-
*
* this loads the library only once
*/
#define chain(name, ...) ({ \
/*
* call name() which is provided by yukon-core-lib
* wereHamster> glue() is used to load yukon-core-lib and call the
* yukonCore* function. It 'glues' libGL and libX11 together,
* but without axctually make both depended on each other,
* they stay completely separated
* this loads the library ("yukon-core-lib") and the function (name) only
* once, the function pointer doesn't change
*/
#define glue(name, ...) ({ \