|
Lines 1-33
Link Here
|
| 1 |
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 |
|
|
| 2 |
--- ./arch/i386/core/freebsd_loader.c Sun Feb 22 17:26:09 2004 |
| 3 |
+++ /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 |
| 4 |
@@ -168,7 +168,7 @@ static int elf_freebsd_debug_loader(unsi |
| 5 |
for (j=0; j < estate.e.elf32.e_phnum; j++) |
| 6 |
{ |
| 7 |
/* Check only for loaded sections */ |
| 8 |
- if ((estate.p.phdr32[i].p_type | 0x80) == (PT_LOAD | 0x80)) |
| 9 |
+ if ((estate.p.phdr32[j].p_type | 0x80) == (PT_LOAD | 0x80)) |
| 10 |
{ |
| 11 |
/* Only the extra symbols */ |
| 12 |
if ((shdr[i].sh_offset >= estate.p.phdr32[j].p_offset) && |
| 13 |
@@ -288,7 +290,7 @@ static void elf_freebsd_boot(unsigned lo |
| 14 |
/* Assumes size of long is a power of 2... */ |
| 15 |
bsdinfo.bi_esymtab = (symstr_load + |
| 16 |
sizeof(long) + |
| 17 |
- *((long *)symstr_load) + |
| 18 |
+ *((long *)phys_to_virt(symstr_load)) + |
| 19 |
sizeof(long) - 1) & ~(sizeof(long) - 1); |
| 20 |
|
| 21 |
/* Where we will build the meta data... */ |
| 22 |
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 |
| 23 |
--- ./core/elf_loader.c Sun Feb 22 17:26:09 2004 |
| 24 |
+++ /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 |
| 25 |
@@ -268,6 +268,7 @@ static sector_t elf32_download(unsigned |
| 26 |
} |
| 27 |
if (estate.segment == -1) { |
| 28 |
if (elf_freebsd_debug_loader(offset)) { |
| 29 |
+ estate.segment = 0; /* -1 makes it not read anymore */ |
| 30 |
continue; |
| 31 |
} |
| 32 |
/* No more segments to be loaded, so just start the |
| 33 |
Only in /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/core: elf_loader.c.orig |