diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-03-26 13:20:34 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-03-26 13:20:34 +0100 |
| commit | 1eaa7159a6416640bccf3cc3541adedcde2649b0 (patch) | |
| tree | a45af1710cc233e1deeef13374af8ed7b59d79c1 /src/main.c | |
| parent | 4015c26e68a5ce812673a3d434f8d98fa21755c1 (diff) | |
| download | box64-1eaa7159a6416640bccf3cc3541adedcde2649b0.tar.gz box64-1eaa7159a6416640bccf3cc3541adedcde2649b0.zip | |
More work around steam and proton/SteamPlay (working, but need also latest box86)
Diffstat (limited to 'src/main.c')
| -rwxr-xr-x | src/main.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/main.c b/src/main.c index 772c1666..ae2c21b9 100755 --- a/src/main.c +++ b/src/main.c @@ -907,6 +907,7 @@ static void free_contextargv() free(my_context->argv[i]); } +void pressure_vessel(int argc, const char** argv, int nextarg); extern char** environ; int main(int argc, const char **argv, char **env) { @@ -969,16 +970,12 @@ int main(int argc, const char **argv, char **env) { //wine_preloaded = 1; } } - #if 0 + #if 1 // pre-check for pressure-vessel-wrap if(strstr(prog, "pressure-vessel-wrap")==(prog+strlen(prog)-strlen("pressure-vessel-wrap"))) { // pressure-vessel-wrap detecter, skipping it and all -- args until "--" if needed - ++nextarg; - if(argv[nextarg][0]=='-' && argv[nextarg][1]=='-') - while(argv[nextarg][0]=='-' && argv[nextarg][1]=='-') - ++nextarg; - prog = argv[nextarg]; - printf_log(LOG_INFO, "BOX64: pressure-vessel-wrap detected, loading \"%s\" directly\n", prog); + printf_log(LOG_INFO, "BOX64: pressure-vessel-wrap detected\n"); + pressure_vessel(argc, argv, nextarg+1); } #endif // check if this is wine @@ -1002,6 +999,10 @@ int main(int argc, const char **argv, char **env) { if(!strcmp(prog, "wineserver") || !strcmp(prog, "wineserver64") || (strlen(prog)>9 && !strcmp(prog+strlen(prog)-strlen("/wineserver"), "/wineserver"))) { box64_wine = 1; } + if(box64_wine) { + // disabling the use of futex_waitv for now + setenv("WINEFSYNC", "0", 1); + } // Create a new context my_context = NewBox64Context(argc - nextarg); @@ -1033,6 +1034,8 @@ int main(int argc, const char **argv, char **env) { } else { if(getenv("LD_PRELOAD")) { char* p = getenv("LD_PRELOAD"); + if(strstr(p, "libtcmalloc_minimal.so.0")) + box64_tcmalloc_minimal = 1; if(strstr(p, "libtcmalloc_minimal.so.4")) box64_tcmalloc_minimal = 1; if(strstr(p, "libtcmalloc_minimal_debug.so.4")) |