summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-11-13 21:28:33 +0100
committerRobin Gareus <robin@gareus.org>2014-11-13 21:28:33 +0100
commit7b39e0893a14bfc31228474ae81d240964afc732 (patch)
tree4a9098574b09dffdec0e3e5124587bca85a0d15c
parentfbf7fe1b01f5271375919d65d20cc0e2fa9c09e8 (diff)
add symbol debug information to weak-jack
-rw-r--r--libs/backends/jack/weak_libjack.c9
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