From 8bf87f93417aa5ea697a68e409ebea80569bf294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Tue, 1 Oct 2013 03:57:24 +0200 Subject: [PATCH] Actually fix the build Looks like I was too quick on previous commit. It seems -pthread is actually not that much needed on Linux though... although the manpage says "compile and link with -pthread". Go figure. Now dlopen() uses RTLD_LAZY | RTLD_LOCAL for Linux, which seems to work here. --- src/build/libpackage/Jamfile | 1 + src/build/libpackage/solver/Jamfile | 2 -- src/kits/package/solver/Solver.cpp | 8 ++++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/build/libpackage/Jamfile b/src/build/libpackage/Jamfile index 1d35d4cc2e..464f40625b 100644 --- a/src/build/libpackage/Jamfile +++ b/src/build/libpackage/Jamfile @@ -9,6 +9,7 @@ SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package manager ] ; SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package solver ] ; USES_BE_API on libpackage_build.so = true ; +LINKFLAGS on libpackage_build.so += $(HOST_PTHREAD_LINKFLAGS) ; { diff --git a/src/build/libpackage/solver/Jamfile b/src/build/libpackage/solver/Jamfile index dd06685663..51e83eefea 100644 --- a/src/build/libpackage/solver/Jamfile +++ b/src/build/libpackage/solver/Jamfile @@ -15,8 +15,6 @@ SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package solver ] ; MakeLocate libpackage-add-on-libsolv_build.so : $(HOST_BUILD_COMPATIBILITY_LIB_DIR) ; -LINKFLAGS on libpackage-add-on-libsolv_build.so += $(HOST_PTHREAD_LINKFLAGS) ; - BuildPlatformSharedLibrary libpackage-add-on-libsolv_build.so : LibsolvSolver.cpp diff --git a/src/kits/package/solver/Solver.cpp b/src/kits/package/solver/Solver.cpp index 7f5c630962..53bb31b621 100644 --- a/src/kits/package/solver/Solver.cpp +++ b/src/kits/package/solver/Solver.cpp @@ -25,10 +25,14 @@ static pthread_once_t sLoadLibsolvSolverAddOnInitOnce = PTHREAD_ONCE_INIT; static void load_libsolv_solver_add_on() { + int flags = 0; #ifdef HAIKU_TARGET_PLATFORM_HAIKU - void* imageHandle = dlopen("libpackage-add-on-libsolv.so", 0); + void* imageHandle = dlopen("libpackage-add-on-libsolv.so", flags); #else - void* imageHandle = dlopen("libpackage-add-on-libsolv_build.so", 0); +#ifdef HAIKU_HOST_PLATFORM_LINUX + flags = RTLD_LAZY | RTLD_LOCAL; +#endif + void* imageHandle = dlopen("libpackage-add-on-libsolv_build.so", flags); #endif if (imageHandle == NULL) return;