Common subdirectories: makedumpfile.org/dwarfinfo and makedumpfile/dwarfinfo
diff -puN makedumpfile.org/makedumpfile.c makedumpfile/makedumpfile.c
--- makedumpfile.org/makedumpfile.c	2006-09-21 21:04:00.000000000 +0900
+++ makedumpfile/makedumpfile.c	2006-09-21 21:03:42.000000000 +0900
@@ -1280,6 +1280,21 @@ get_mm_sparsemem(struct DumpInfo *info)
 }
 
 int
+get_mem_map_without_mm(struct DumpInfo *info)
+{
+	info->num_mem_map = 1;
+	if ((info->mem_map_data = (struct mem_map_data *)
+	    g_malloc0(sizeof(struct mem_map_data)*info->num_mem_map)) == NULL) {
+		ERRMSG("Can't allocate memory for the mem_map_data. %s\n",
+		    strerror(errno));
+		return FALSE;
+	}
+	dump_mem_map(info, 0, info->max_mapnr, NOT_MEMMAP_ADDR, 0);
+
+	return TRUE;
+}
+
+int
 get_mem_map(struct DumpInfo *info)
 {
 	int ret;
@@ -1307,9 +1322,16 @@ initial(struct DumpInfo *info)
 	if (!get_elf_info(info))
 		return FALSE;
 
+	if (!get_phys_base(info))
+		return FALSE;
+
 	if (!info->flag_read_config) {
-		if (info->dump_level <= 1)
-			return TRUE;
+		if (info->dump_level <= DL_EXCLUDE_ZERO) {
+			if (!get_mem_map_without_mm(info))
+				return FALSE;
+			else
+				return TRUE;
+		}
 		if (!get_symbol_info(info))
 			return FALSE;
 		if (!check_release(info))
diff -puN makedumpfile.org/makedumpfile.h makedumpfile/makedumpfile.h
--- makedumpfile.org/makedumpfile.h	2006-09-21 21:04:00.000000000 +0900
+++ makedumpfile/makedumpfile.h	2006-09-21 20:56:03.000000000 +0900
@@ -292,12 +292,15 @@ do { \
  */
 #ifdef __x86__
 int get_machdep_info_x86();
-#define get_machdep_info	get_machdep_info_x86
+#define get_phys_base(X)	TRUE
+#define get_machdep_info(X)	get_machdep_info_x86(X)
 #endif /* x86 */
 
 #ifdef __x86_64__
+int get_phys_base_x86_64();
 int get_machdep_info_x86_64();
-#define get_machdep_info	get_machdep_info_x86_64
+#define get_phys_base(X)	get_phys_base_x86_64(X)
+#define get_machdep_info(X)	get_machdep_info_x86_64(X)
 #endif /* x86_64 */
 
 #ifdef __ia64__ /* ia64 */
diff -puN makedumpfile.org/x86_64.c makedumpfile/x86_64.c
--- makedumpfile.org/x86_64.c	2006-09-21 21:04:00.000000000 +0900
+++ makedumpfile/x86_64.c	2006-09-21 20:56:03.000000000 +0900
@@ -32,24 +32,16 @@ is_vmalloc_addr(ulong vaddr)
 }
 
 int
-get_machdep_info_x86_64(struct DumpInfo *info)
+get_phys_base_x86_64(struct DumpInfo *info)
 {
 	int i;
 	struct pt_load_segment *pls;
 
-	info->section_size_bits = _SECTION_SIZE_BITS;
-
 	/*
 	 * Get the relocatable offset
 	 */
 	info->phys_base = 0; /* default/traditional */
 
-	if (SYMBOL(phys_base) == NOT_FOUND_SYMBOL)
-                return TRUE;
-
-	if (SYMBOL(_text) == NOT_FOUND_SYMBOL)
-                return TRUE;
-
 	for (i = 0; i < info->num_load_memory; i++) {
 		pls = &info->pt_load_segments[i];
 		if ((pls->virt_start >= __START_KERNEL_map) &&
@@ -65,5 +57,13 @@ get_machdep_info_x86_64(struct DumpInfo 
 	return TRUE;
 }
 
+int
+get_machdep_info_x86_64(struct DumpInfo *info)
+{
+	info->section_size_bits = _SECTION_SIZE_BITS;
+
+	return TRUE;
+}
+
 #endif /* x86_64 */
 
