diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-12-18 09:17:41 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-12-18 09:17:41 +0100 |
| commit | 6a2f4fb30da1040d1a01c7bd0476234193caf989 (patch) | |
| tree | 9f6ccd220de59bfeee9d4919c70a76d01f1c9908 /src | |
| parent | 49b9b70c298622485121d2c61cb2ed40b78a6f7f (diff) | |
| download | box64-6a2f4fb30da1040d1a01c7bd0476234193caf989.tar.gz box64-6a2f4fb30da1040d1a01c7bd0476234193caf989.zip | |
[STEAM] Improved pressure-vessel emulation
Diffstat (limited to 'src')
| -rw-r--r-- | src/steam.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/steam.c b/src/steam.c index b221b54f..a5af7377 100644 --- a/src/steam.c +++ b/src/steam.c @@ -79,19 +79,27 @@ void pressure_vessel(int argc, const char** argv, int nextarg, const char* prog) strcat(sniper, "/files"); // this is the sniper root // do LD_LIBRARY_PATH { + const char* usrsbinldconfig = "/usr/sbin/ldconfig"; + const char* sbinldconfig = "/sbin/ldconfig"; + const char* ldconfig = "ldconfig"; + const char* ldcmd = ldconfig; + if(FileExist(usrsbinldconfig, IS_FILE)) + ldcmd = usrsbinldconfig; + else if(FileExist(sbinldconfig, IS_FILE)) + ldcmd = sbinldconfig; char tmp[MAX_PATH*4] = {0}; // prepare folders, using ldconfig - snprintf(tmp, sizeof(tmp), "ldconfig -i -n %s/lib/x86_64-linux-gnu", sniper); + snprintf(tmp, sizeof(tmp), "%s -i -n %s/lib/x86_64-linux-gnu", ldcmd, sniper); if(system(tmp)<0) printf_log(LOG_INFO, "%s failed\n", tmp); - snprintf(tmp, sizeof(tmp), "ldconfig -i -n %s/lib/i386-linux-gnu", sniper); + snprintf(tmp, sizeof(tmp), "%s -i -n %s/lib/i386-linux-gnu", ldcmd, sniper); if(system(tmp)<0) printf_log(LOG_INFO, "%s failed\n", tmp); - snprintf(tmp, sizeof(tmp), "ldconfig -i -n %s/lib", sniper); + snprintf(tmp, sizeof(tmp), "%s -i -n %s/lib", ldcmd, sniper); if(system(tmp)<0) printf_log(LOG_INFO, "%s failed\n", tmp); - snprintf(tmp, sizeof(tmp), "ldconfig -i -n %s/lib64", sniper); + snprintf(tmp, sizeof(tmp), "%s -i -n %s/lib64", ldcmd, sniper); if(system(tmp)<0) printf_log(LOG_INFO, "%s failed\n", tmp); // setup LD_LIBRARY_PATH const char* ld = getenv("LD_LIBRARY_PATH"); - snprintf(tmp, sizeof(tmp), "%s/lib/x86_64-linux-gnu:%s/lib/i386-linux-gnu:%s/lib:%s/lib64:%s", sniper, sniper, sniper, ld?ld:""); + snprintf(tmp, sizeof(tmp), "%s/lib/x86_64-linux-gnu:%s/lib/i386-linux-gnu:%s/lib:%s/lib64:%s", sniper, sniper, sniper, sniper, ld?ld:""); setenv("LD_LIBRARY_PATH", tmp, 1); printf_log(LOG_DEBUG, "setenv(%s, %s, 1)\n", "LD_LIBRARY_PATH", tmp); } |