about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-12-02 10:25:12 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-12-02 10:25:12 +0100
commit88aab487f111ba280048fd7e240e2b62d45eeba8 (patch)
tree8ff231f143e4f894c73c9836d3fbfebd388f195c /src
parent6d1e30cd3c0060a914b2bde43e7c8d832207e202 (diff)
downloadbox64-88aab487f111ba280048fd7e240e2b62d45eeba8.tar.gz
box64-88aab487f111ba280048fd7e240e2b62d45eeba8.zip
[BOX32] Some improvment on steam handling
Diffstat (limited to 'src')
-rw-r--r--src/elfs/elfloader.c8
-rw-r--r--src/steam.c2
2 files changed, 9 insertions, 1 deletions
diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c
index 6c782c52..1bd0ba16 100644
--- a/src/elfs/elfloader.c
+++ b/src/elfs/elfloader.c
@@ -1078,6 +1078,10 @@ int LoadNeededLibs(elfheader_t* h, lib_t *maplib, int local, int bindnow, int de
         if(tag==DT_SONAME)
             h->soname = h->DynStrTab+h->delta+(box64_is32bits?h->Dynamic._32[i].d_un.d_val:h->Dynamic._64[i].d_un.d_val);
     }
+    #ifndef ANDROID
+    if(box64_is32bits && strstr(h->name, "lsteamclient.dll.so"))
+        ++cnt;
+    #endif
     h->needed = new_neededlib(cnt);
     if(h == my_context->elfs[0])
         my_context->neededlibs = h->needed;
@@ -1085,6 +1089,10 @@ int LoadNeededLibs(elfheader_t* h, lib_t *maplib, int local, int bindnow, int de
     for (size_t i=0; i<h->numDynamic; ++i)
         if((box64_is32bits?h->Dynamic._32[i].d_tag:h->Dynamic._64[i].d_tag)==DT_NEEDED)
             h->needed->names[j++] = h->DynStrTab+h->delta+(box64_is32bits?h->Dynamic._32[i].d_un.d_val:h->Dynamic._64[i].d_un.d_val);
+    #ifndef ANDROID
+    if(box64_is32bits && strstr(h->name, "lsteamclient.dll.so"))
+        h->needed->names[j++] = "libgcc_s.so";
+    #endif
     if(h==my_context->elfs[0] && box64_addlibs.size) {
         for(int i=0; i<box64_addlibs.size; ++i) {
             printf_log(LOG_INFO, "BOX64, Adding %s to needed libs of %s\n", box64_addlibs.paths[i], h->name);
diff --git a/src/steam.c b/src/steam.c
index 84c18e45..710fb849 100644
--- a/src/steam.c
+++ b/src/steam.c
@@ -45,7 +45,7 @@ void pressure_vessel(int argc, const char** argv, int nextarg, const char* prog)
                     *p ='\0'; ++p;
                     setenv(tmp, p, 1);
                     printf_log(LOG_DEBUG, "setenv(%s, %s, 1)\n", tmp, p);
-                    strcpy(tmp, "BOX64_LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/box64-x86_64-linux-gnu:");
+                    strcpy(tmp, "BOX64_LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/box64-x86_64-linux-gnu:/usr/lib/box64-i386-linux-gnu:");
                     strcat(tmp, argv[nextarg]+strlen("--env-if-host=STEAM_RUNTIME_LIBRARY_PATH="));
                     p = strchr(tmp, '=');
                     *p ='\0'; ++p;