diff --git a/test/multi_agent_dlopen/CMakeLists.txt b/test/multi_agent_dlopen/CMakeLists.txt index 59289d4..1627490 100644 --- a/test/multi_agent_dlopen/CMakeLists.txt +++ b/test/multi_agent_dlopen/CMakeLists.txt @@ -1,7 +1,14 @@ +INCLUDE(CheckIncludeFile) + +check_include_file(gnu/lib-names.h HAVE_GNU_LIBNAMES_H) + set(CMAKE_C_FLAGS "-g -O -fPIC") add_library(multi_agent_sym SHARED dlsym.c) add_library(multi_agent_mon SHARED monitor.c) add_executable(multi_agent_main main.c) +if(HAVE_GNU_LIBNAMES_H) + target_compile_definitions(multi_agent_main PRIVATE -DHAVE_GNU_LIBNAMES_H) +endif() target_link_libraries(multi_agent_main dl) target_link_libraries(multi_agent_mon dl gotcha) gotcha_add_test(multi_agent_dlopen multi_agent_main) diff --git a/test/multi_agent_dlopen/main.c b/test/multi_agent_dlopen/main.c index 65c9c87..76879a8 100644 --- a/test/multi_agent_dlopen/main.c +++ b/test/multi_agent_dlopen/main.c @@ -8,6 +8,14 @@ #include #include +#ifdef HAVE_GNU_LIBNAMES_H +#include +#endif + +#ifndef LIBM_SO +#define LIBM_SO "libm.so" +#endif + #define MYNAME "main" typedef double sin_fcn_t(double); @@ -21,7 +29,7 @@ main(int argc, char **argv) fprintf(stderr, "%s: val = %.6f\n", MYNAME, val); - void *handle = dlopen("libm.so", RTLD_NOW); + void *handle = dlopen(LIBM_SO, RTLD_NOW); if (handle == NULL) { err(1, "dlopen failed"); }