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.
This commit is contained in:
François Revol 2013-10-01 03:57:24 +02:00
parent 4135f9cde3
commit 8bf87f9341
3 changed files with 7 additions and 4 deletions

View File

@ -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) ;
{

View File

@ -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

View File

@ -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;