Browse Source

fix SIGBUS crashes when accessing bss data from a large .bss segment

pull/13/head
PoroCYon 2 years ago
parent
commit
5dd269d05f
2 changed files with 5 additions and 4 deletions
  1. +3
    -2
      rt/header32.asm
  2. +2
    -2
      rt/header64.asm

+ 3
- 2
rt/header32.asm View File

@ -70,8 +70,9 @@ phdr.load:
dd PT_LOAD ; p_type: 1 = PT_LOAD
dd 0 ; p_offset
dd ehdr, 0 ; p_vaddr, p_paddr
; use memsize twice here, linux doesn't care and it compresses better
dd _smol_total_memsize ; p_filesz
;; use memsize twice here, linux doesn't care and it compresses better
; actually, linux doesn't care, but the hardware does >__>
dd _smol_total_filesize ; p_filesz
dd _smol_total_memsize ; p_memsz
dd (PHDR_R | PHDR_W | PHDR_X) ; p_flags
dd 0x1000 ; p_align


+ 2
- 2
rt/header64.asm View File

@ -63,7 +63,7 @@ phdr.load:
dd PHDR_R | PHDR_W | PHDR_X ; p_flags
dq 0 ; p_offset
dq ehdr, 0 ; p_vaddr, p_paddr
dq _smol_total_memsize ; p_filesz
dq _smol_total_filesize ; p_filesz
dq _smol_total_memsize ; p_memsz
dq 0x1000 ; p_align
%else
@ -80,7 +80,7 @@ phdr.load2:
dd PHDR_R | PHDR_W
dq _smol_data_off
dq _smol_data_start, 0
dq _smol_dataandbss_size
dq _smol_data_size
dq _smol_dataandbss_size
dq 0x1000
%endif


Loading…
Cancel
Save