freebsd-ports/net/etherboot/files/patch-ab
2004-06-30 21:52:50 +00:00

33 lines
1.8 KiB
Text

diff -urp ./arch/i386/core/freebsd_loader.c /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/arch/i386/core/freebsd_loader.c
--- ./arch/i386/core/freebsd_loader.c Sun Feb 22 17:26:09 2004
+++ /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/arch/i386/core/freebsd_loader.c Wed Jun 30 13:53:10 2004
@@ -168,7 +168,7 @@ static int elf_freebsd_debug_loader(unsi
for (j=0; j < estate.e.elf32.e_phnum; j++)
{
/* Check only for loaded sections */
- if ((estate.p.phdr32[i].p_type | 0x80) == (PT_LOAD | 0x80))
+ if ((estate.p.phdr32[j].p_type | 0x80) == (PT_LOAD | 0x80))
{
/* Only the extra symbols */
if ((shdr[i].sh_offset >= estate.p.phdr32[j].p_offset) &&
@@ -288,7 +290,7 @@ static void elf_freebsd_boot(unsigned lo
/* Assumes size of long is a power of 2... */
bsdinfo.bi_esymtab = (symstr_load +
sizeof(long) +
- *((long *)symstr_load) +
+ *((long *)phys_to_virt(symstr_load)) +
sizeof(long) - 1) & ~(sizeof(long) - 1);
/* Where we will build the meta data... */
diff -urp ./core/elf_loader.c /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/core/elf_loader.c
--- ./core/elf_loader.c Sun Feb 22 17:26:09 2004
+++ /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/core/elf_loader.c Wed Jun 30 11:38:53 2004
@@ -268,6 +268,7 @@ static sector_t elf32_download(unsigned
}
if (estate.segment == -1) {
if (elf_freebsd_debug_loader(offset)) {
+ estate.segment = 0; /* -1 makes it not read anymore */
continue;
}
/* No more segments to be loaded, so just start the
Only in /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/core: elf_loader.c.orig