about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-02-09 18:40:34 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-02-09 18:40:34 +0100
commit44e77de620fc9fe4f1b16d5c2b0d539268254e4d (patch)
tree30e7b14defd5494ae504d71d225650e0c19aea57 /src
parent40de8e16ec66406af0c8c2305813a0f76a32e530 (diff)
downloadbox64-44e77de620fc9fe4f1b16d5c2b0d539268254e4d.tar.gz
box64-44e77de620fc9fe4f1b16d5c2b0d539268254e4d.zip
Increased default size for number of elf in the tls dts zone
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64tls.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/emu/x64tls.c b/src/emu/x64tls.c
index 991f0b1f..fb3946f9 100644
--- a/src/emu/x64tls.c
+++ b/src/emu/x64tls.c
@@ -225,9 +225,11 @@ int my_arch_prctl(x64emu_t *emu, int code, void* addr)
  uintptr_t  ssp_base        0x78
  .... padding ....          0x200?
 */
+#define NELFSIZE_MASK 0x3FF
+#define NELFSIZE (NELFSIZE_MASK+1)
 static int sizeDTS(box64context_t* context)
 {
-    return ((context->elfsize+0xff)&~0xff)*16;
+    return ((context->elfsize+NELFSIZE_MASK)&~NELFSIZE_MASK)*16;
 }
 static int sizeTLSData(int s)
 {
@@ -281,9 +283,9 @@ static void* resizeTLSData(box64context_t *context, void* oldptr)
 {
         mutex_lock(&context->mutex_tls);
         tlsdatasize_t* oldata = (tlsdatasize_t*)oldptr;
-        if(sizeTLSData(oldata->tlssize)!=sizeTLSData(context->tlssize) || (oldata->n_elfs/0xff)!=(context->elfsize/0xff)) {
+        if(sizeTLSData(oldata->tlssize)!=sizeTLSData(context->tlssize) || (oldata->n_elfs/NELFSIZE)!=(context->elfsize/NELFSIZE)) {
             if(sizeTLSData(oldata->tlssize)) {
-                printf_log(LOG_INFO, "Warning, resizing of TLS occurred! size: %d->%d / n_elfs: %d->%d\n", sizeTLSData(oldata->tlssize), sizeTLSData(context->tlssize), 1+(oldata->n_elfs/0xff), 1+(context->elfsize/0xff));
+                printf_log(LOG_INFO, "Warning, resizing of TLS occurred! size: %d->%d / n_elfs: %d->%d\n", sizeTLSData(oldata->tlssize), sizeTLSData(context->tlssize), 1+(oldata->n_elfs/NELFSIZE), 1+(context->elfsize/NELFSIZE));
             }
             tlsdatasize_t *data = setupTLSData(context);
             // copy the relevent old part, in case something changed