diff options
author | Robin Gareus <robin@gareus.org> | 2014-11-13 21:28:33 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-11-13 21:28:33 +0100 |
commit | 7b39e0893a14bfc31228474ae81d240964afc732 (patch) | |
tree | 4a9098574b09dffdec0e3e5124587bca85a0d15c /libs/backends | |
parent | fbf7fe1b01f5271375919d65d20cc0e2fa9c09e8 (diff) |
add symbol debug information to weak-jack
Diffstat (limited to 'libs/backends')
-rw-r--r-- | libs/backends/jack/weak_libjack.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/backends/jack/weak_libjack.c b/libs/backends/jack/weak_libjack.c index ebde208e42..02705f44af 100644 --- a/libs/backends/jack/weak_libjack.c +++ b/libs/backends/jack/weak_libjack.c @@ -57,9 +57,18 @@ static void* lib_symbol(void* const lib, const char* const sym) { typedef void * pvoid_t; #define MAPSYM(SYM, FAIL) _j._ ## SYM = (func_t)lib_symbol(lib, "jack_" # SYM); \ if (!_j._ ## SYM) err |= FAIL; +#elif defined NDEBUG +typedef void * __attribute__ ((__may_alias__)) pvoid_t; +#define MAPSYM(SYM, FAIL) *(pvoid_t *)(&_j._ ## SYM) = lib_symbol(lib, "jack_" # SYM); \ + if (!_j._ ## SYM) err |= FAIL; #else typedef void * __attribute__ ((__may_alias__)) pvoid_t; #define MAPSYM(SYM, FAIL) *(pvoid_t *)(&_j._ ## SYM) = lib_symbol(lib, "jack_" # SYM); \ + if (!_j._ ## SYM) { \ + if (FAIL) { \ + fprintf(stderr, "*** WEAK-JACK: required symbol 'jack_%s' was not found\n", "" # SYM); \ + } \ + err |= FAIL; \ if (!_j._ ## SYM) err |= FAIL; #endif |