33 lines
1.8 KiB
Text
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
|