summaryrefslogtreecommitdiff
path: root/net/etherboot/files/patch-ab
blob: eaeb6048981d79ba7827837714df5f75ec13cd23 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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