diff -uNrBbwp wraplinux-1.7/reloc/reloc_linux.c wraplinux-1.7-new/reloc/reloc_linux.c --- wraplinux-1.7/reloc/reloc_linux.c 2016-05-28 13:15:55.000000000 +0000 +++ wraplinux-1.7-new/reloc/reloc_linux.c 2016-05-28 13:20:22.091893163 +0000 @@ -68,9 +69,9 @@ static int initrd_fit(uint32_t base, uin return 0; } -static int probe_memory_e820(void) +static long int probe_memory_e820(void) { - com32sys_t regs; + static com32sys_t regs; struct e820_info { uint64_t base; uint64_t len; @@ -104,9 +105,9 @@ static int probe_memory_e820(void) return rv; } -static int probe_memory_e801(void) +static long int probe_memory_e801(void) { - com32sys_t regs; + static com32sys_t regs; uint64_t end; memset(®s, 0, sizeof regs); @@ -124,9 +125,9 @@ static int probe_memory_e801(void) return initrd_fit(0x100000, end); } -static int probe_memory_88(void) +static long int probe_memory_88(void) { - com32sys_t regs; + static com32sys_t regs; memset(®s, 0, sizeof regs); regs.eax.b[1] = 0x88; @@ -138,7 +139,7 @@ static int probe_memory_88(void) return initrd_fit(0x100000, (regs.eax.w[0] << 10)+0x100000); } -static int place_initrd(void) +static long int place_initrd(void) { int rv;