From 57405de578b6ad646e55435b1b1d286cd5a5a6b3 Mon Sep 17 00:00:00 2001 From: Niels Sascha Reedijk Date: Sun, 29 Sep 2013 17:35:14 +0200 Subject: [PATCH] Always use dlopen and dlsym to load libsolv Previous implementation used weak symbols on all platforms except Haiku. Mac OS X also does not support this use of weak symbols. In the discussion of #10028 it was decided that probably more platforms will have problems with this approach, so instead use the approach that always works. --- src/kits/package/solver/LibsolvSolver.cpp | 16 ---------------- src/kits/package/solver/Solver.cpp | 15 --------------- 2 files changed, 31 deletions(-) diff --git a/src/kits/package/solver/LibsolvSolver.cpp b/src/kits/package/solver/LibsolvSolver.cpp index a3ecbb7062..12a4b6acae 100644 --- a/src/kits/package/solver/LibsolvSolver.cpp +++ b/src/kits/package/solver/LibsolvSolver.cpp @@ -38,9 +38,6 @@ // abort()s. Obviously that isn't good behavior for a library. -#ifdef __HAIKU__ - - BSolver* BPackageKit::create_solver() { @@ -48,19 +45,6 @@ BPackageKit::create_solver() } -#else - - -extern "C" BSolver* -__create_libsolv_solver() -{ - return new(std::nothrow) LibsolvSolver; -} - - -#endif - - struct LibsolvSolver::SolvQueue : Queue { SolvQueue() { diff --git a/src/kits/package/solver/Solver.cpp b/src/kits/package/solver/Solver.cpp index e6984cddf3..7f5c630962 100644 --- a/src/kits/package/solver/Solver.cpp +++ b/src/kits/package/solver/Solver.cpp @@ -13,9 +13,6 @@ typedef BPackageKit::BSolver* CreateSolverFunction(); -#ifdef __HAIKU__ - - #include #include @@ -41,16 +38,6 @@ load_libsolv_solver_add_on() dlclose(imageHandle); } -#else - - -static BPackageKit::BSolver* __create_libsolv_solver() - __attribute__((weakref("__create_libsolv_solver"))); -static CreateSolverFunction* sCreateSolver = &__create_libsolv_solver; - - -#endif - namespace BPackageKit { @@ -68,9 +55,7 @@ BSolver::~BSolver() /*static*/ status_t BSolver::Create(BSolver*& _solver) { -#ifdef __HAIKU__ pthread_once(&sLoadLibsolvSolverAddOnInitOnce, &load_libsolv_solver_add_on); -#endif if (sCreateSolver == NULL) return B_NOT_SUPPORTED;