summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2004-05-18 05:30:06 +0000
committerbde <bde@FreeBSD.org>2004-05-18 05:30:06 +0000
commit28faba2e27452589e39455d248e8dfe506f0ac87 (patch)
treec8d8b7c3af54ef8eadb0093a659bd827ac44c3f2
parent235a3d8f6454b995eea2c2e6a0a7bc93fd353dee (diff)
downloadFreeBSD-src-28faba2e27452589e39455d248e8dfe506f0ac87.zip
FreeBSD-src-28faba2e27452589e39455d248e8dfe506f0ac87.tar.gz
Fixed DDB_NOKLDSYM on amd64's:
machdep.c: Initialize the symbol table pointers, not quite like for other arches. db_elf.c: Don't claim to be an i486 in the fake ELF header.
-rw-r--r--sys/amd64/amd64/machdep.c6
-rw-r--r--sys/ddb/db_elf.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 341da8e..0d19ba9 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -161,6 +161,10 @@ struct pcpu __pcpu[MAXCPU];
struct mtx icu_lock;
+#ifdef DDB
+void *ksym_start, *ksym_end;
+#endif
+
static void
cpu_startup(dummy)
void *dummy;
@@ -1134,6 +1138,8 @@ hammer_time(u_int64_t modulep, u_int64_t physfree)
kmdp = preload_search_by_type("elf64 kernel");
boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int);
kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *) + KERNBASE;
+ ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, void *);
+ ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, void *);
/* Init basic tunables, hz etc */
init_param1();
diff --git a/sys/ddb/db_elf.c b/sys/ddb/db_elf.c
index 4ebdc8e..a24f3b7 100644
--- a/sys/ddb/db_elf.c
+++ b/sys/ddb/db_elf.c
@@ -402,7 +402,7 @@ kdb_init(void)
elf.e_ident[EI_MAG1] = ELFMAG1;
elf.e_ident[EI_MAG2] = ELFMAG2;
elf.e_ident[EI_MAG3] = ELFMAG3;
- elf.e_machine = EM_486;
+ elf.e_machine = ELF_ARCH;
elf.e_shoff = (uintptr_t)(void *)&sh[0] - (uintptr_t)(void *)&elf;
sh[0].sh_type = SHT_SYMTAB;
sh[0].sh_offset = (uintptr_t)ksym_start + sizeof(long) -
OpenPOWER on IntegriCloud