about summary refs log tree commit diff stats
path: root/src/elfs
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/elfs
parent6d1e30cd3c0060a914b2bde43e7c8d832207e202 (diff)
downloadbox64-88aab487f111ba280048fd7e240e2b62d45eeba8.tar.gz
box64-88aab487f111ba280048fd7e240e2b62d45eeba8.zip
[BOX32] Some improvment on steam handling
Diffstat (limited to 'src/elfs')
-rw-r--r--src/elfs/elfloader.c8
1 files changed, 8 insertions, 0 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);