From fcfafa94210748766721a2f40ca269fc154c1bdf Mon Sep 17 00:00:00 2001 From: andreas Date: Thu, 22 Feb 2024 20:20:37 +0100 Subject: [PATCH] #1: do not include prog dir in library path on android to avoid clashes with system libs --- provider/CMakeLists.txt | 2 ++ provider/src/OexControl.cpp | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/provider/CMakeLists.txt b/provider/CMakeLists.txt index cd5cf0c..ccc652e 100644 --- a/provider/CMakeLists.txt +++ b/provider/CMakeLists.txt @@ -208,6 +208,8 @@ else() message("openssl...") #find_package(OpenSSL REQUIRED CONFIG) #already included by curl target_link_libraries(${TARGET} PRIVATE openssl::crypto ) + #package openssl + target_link_libraries(${TARGET} PRIVATE openssl::ssl ) endif() #filesystem diff --git a/provider/src/OexControl.cpp b/provider/src/OexControl.cpp index f82aa86..5eef231 100644 --- a/provider/src/OexControl.cpp +++ b/provider/src/OexControl.cpp @@ -151,6 +151,7 @@ class OexConfig{ bool fprStdout; String preload; String socketAddress; + bool setLibPath; NameValueMap environment; }; @@ -159,7 +160,8 @@ class OexConfig{ String("liboexserverd.so"), true, String(""), - String("com.opencpn.ocharts_pi") + String("com.opencpn.ocharts_pi"), + false }; #else static OexConfig oexconfig={ @@ -167,6 +169,7 @@ class OexConfig{ false, String("libpreload.so"), String("com.opencpn.ocharts_pi"), + true, {{String(TEST_PIPE_ENV),String("LOCAL:com.opencpn.ocharts_pi")}} }; #endif @@ -237,7 +240,13 @@ StartResult runOexServerd(const OexConfig &config,const String &progDir,const St putenv(StringHelper::cloneData(StringHelper::format("%s=%s",it->first.c_str(),it->second.c_str()))); } putenv(StringHelper::cloneData(StringHelper::format("%s=%d",ENV_AVNAV_PID,parent))); - putenv(StringHelper::cloneData(StringHelper::format("LD_LIBRARY_PATH=%s",progDir))); + if (config.setLibPath){ + LOG_DEBUG("setting LD_LIBRARY_PATH to %s",progDir); + putenv(StringHelper::cloneData(StringHelper::format("LD_LIBRARY_PATH=%s",progDir))); + } + else{ + unsetenv("LD_LIBRARY_PATH"); + } if (config.preload != String("") && usePreload){ String preload=FileHelper::concatPath(progDir,oexconfig.preload); putenv(StringHelper::cloneData(StringHelper::format("%s=%s","LD_PRELOAD",preload.c_str())));