diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-02-09 18:40:34 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-02-09 18:40:34 +0100 |
| commit | 44e77de620fc9fe4f1b16d5c2b0d539268254e4d (patch) | |
| tree | 30e7b14defd5494ae504d71d225650e0c19aea57 /src | |
| parent | 40de8e16ec66406af0c8c2305813a0f76a32e530 (diff) | |
| download | box64-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.c | 8 |
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 |