ddd039179b
for the text section of libx11.so was overlapping with other ELF sections aloready loaded, and this resulted into an ENOMEM error. syssgi(MAPELF) uses elf32_load_psection() from syssrc/sys/kern/exec_subr.c The problem was never experienced with load_psection() because it only has to load one section, hence the requested address are not already allocated. The fix is done when the initial mapping at the default address fails by finding a free location in the VM space using uvm_map_findspace(), and then retrying to load the section. Other details: - once the ELF section has been relocated, the ELF program header must be updated with the new address and copied back to userland. For now we always do it, maybe we could copy it only when it was modified. - We are able to emulate the exact address where IRIX loads libX11.so instead of the default location |
||
---|---|---|
.. | ||
aout | ||
aoutm68k | ||
common | ||
freebsd | ||
hpux | ||
ibcs2 | ||
irix | ||
linux | ||
m68k4k | ||
mach | ||
netbsd32 | ||
osf1 | ||
ossaudio | ||
pecoff | ||
sunos | ||
sunos32 | ||
svr4 | ||
svr4_32 | ||
ultrix | ||
vax1k | ||
Makefile |