diff -ruNp makedumpfile.old/makedumpfile.c makedumpfile/makedumpfile.c
--- makedumpfile.old/makedumpfile.c	2006-09-30 10:02:56.000000000 +0900
+++ makedumpfile/makedumpfile.c	2006-09-30 10:03:09.000000000 +0900
@@ -31,121 +31,6 @@ int retcd = COMPLETED;	/* return code */
 struct vm_table *vt = 0;
 
 /*
- *  Strip line-ending linefeeds in a string.
- */
-char *
-strip_linefeeds(char *line)
-{
-	char *p;
-
-	if (line == NULL || strlen(line) == 0)
-		return(line);
-
-	p = &LASTCHAR(line);
-
-	while (*p == '\n') {
-		*p = NULLCHAR;
-		if (--p < line)
-			break; 
-	}
-
-	return(line);
-}
-
-/*
- *  Strip line-beginning and line-ending whitespace and linefeeds.
- */
-char *
-clean_line(char *line)
-{
-	line = g_strchug(line);
-	strip_linefeeds(line);
-	line = g_strchomp(line);
-	return(line);
-}
-
-/*
- *  Parse a line into tokens, populate the passed-in argv[] array, and return
- *  the count of arguments found.  This function modifies the passed-string 
- *  by inserting a NULL character at the end of each token.  Expressions 
- *  encompassed by parentheses, and strings encompassed by apostrophes, are 
- *  collected into single tokens.
- */
-int
-parse_line(char *str, char *argv[])
-{
-	int i, j;
-	int string;
-	int expression;
-
-	for (i = 0; i < MAXARGS; i++)
-		argv[i] = NULL;
-
-	clean_line(str);
-
-	if (str == NULL || strlen(str) == 0)
-		return(0);
-
-	i = j = 0;
-	string = expression = FALSE;
-	argv[j++] = str;
-
-	while (TRUE) {
-		if (j == MAXARGS)
-			ERRMSG("Too many arguments in string!\n");
-
-		while (str[i] != ' ' && str[i] != '\t' && str[i] != NULLCHAR) {
-			i++;
-		}
-
-		switch (str[i])
-		{
-		case ' ':
-		case '\t':
-			str[i++] = NULLCHAR;
-	
-		    if (str[i] == '"') {    
-			str[i] = ' ';
-			string = TRUE;
-			i++;
-		    }
-
-		    if (str[i] == '(') {     
-			expression = TRUE;
-		    }
-
-		    while (str[i] == ' ' || str[i] == '\t') {
-			i++;
-		    }
-
-		    if (str[i] != NULLCHAR && str[i] != '\n') {
-			argv[j++] = &str[i];
-			if (string) {
-				string = FALSE;
-				while (str[i] != '"' && str[i] != NULLCHAR)
-					i++;
-				if (str[i] == '"')
-					str[i] = ' ';
-			}
-			if (expression) {
-				expression = FALSE;
-				while (str[i] != ')' && str[i] != NULLCHAR)
-					i++;
-			}
-			break;
-		    }
-		/* else fall through */
-		case '\n':
-		    str[i] = NULLCHAR;
-		/* keep falling... */
-		case NULLCHAR:
-		    argv[j] = NULLCHAR;
-		    return(j);
-		}
-	}
-}
-
-/*
  * Convert Physical Address to File Offest.
  *  If this function returns 0x0, File Offset isn't found.
  *  The File Offset 0x0 is in the ELF header.
@@ -314,16 +199,16 @@ print_usage()
 	MSG("\n");
 	MSG("Usage:\n");
 	MSG("  makedumpfile [-c|-E] [-d dump_level] [-g config_file]|[-i config_file]\n");
-	MSG("  [-x vmlinux] [map_file] dump_mem dump_file\n");
+	MSG("  [-x vmlinux] dump_mem dump_file\n");
 	MSG("\n");
-	MSG("  Making dump_file with vmlinux and map_file:\n");
-	MSG("    makedumpfile [-c|-E] [-d dump_level] -x vmlinux map_file dump_mem dump_file\n");
+	MSG("  Making dump_file with vmlinux:\n");
+	MSG("    makedumpfile [-c|-E] [-d dump_level] -x vmlinux dump_mem dump_file\n");
 	MSG("\n");
 	MSG("  Making dump_file with config_file:\n");
 	MSG("    makedumpfile [-c|-E] [-d dump_level] -i config_file dump_mem dump_file\n");
 	MSG("\n");
 	MSG("  Generating config_file:\n");
-	MSG("    makedumpfile -g config_file -x vmlinux map_file\n");
+	MSG("    makedumpfile -g config_file -x vmlinux\n");
 	MSG("\n");
 	MSG("Available options:\n");
 	MSG("  [-c]:\n");
@@ -376,7 +261,7 @@ print_usage()
 //	MSG("        30  |         X       X        X       X\n");
 	MSG("        31  |  X      X       X        X       X\n");
 	MSG("\n");
-	MSG("      [-i config_file] or ([-x vmlinux] and [map_file]) must be specified,\n");
+	MSG("      [-i config_file] or [-x vmlinux] must be specified,\n");
 	MSG("      when dump_level is two or more.\n");
 	MSG("      [dump_mem] and [dump_file] must be specified.\n");
 	MSG("\n");
@@ -385,8 +270,7 @@ print_usage()
 	MSG("      necessary for executing a partial dump is output to this file. A partial\n");
 	MSG("      dump can be executed even if the output this file is read by -i option,\n");
 	MSG("      and there is no kernel file with debugging information. When this option\n");
-	MSG("      is specified, the dump is not output. [-x vmlinux] and [map_file] must\n");
-	MSG("      be specified.\n");
+	MSG("      is specified, the dump is not output. [-x vmlinux] must be specified.\n");
 	MSG("\n");
 	MSG("  [-i config_file]:\n");
 	MSG("      Read the configuration file. This file is the one\n");
@@ -394,7 +278,7 @@ print_usage()
 	MSG("      necessary for executing a partial dump is contained. A partial dump can\n");
 	MSG("      be executed even if this file is read, and there is no kernel file with\n");
 	MSG("      debugging information. When this option is specified, -g option,\n");
-	MSG("      [-x vmlinux], and [map_file] cannot be specified.\n");
+	MSG("      [-x vmlinux] cannot be specified.\n");
 	MSG("      Note:\n");
 	MSG("      When this file is not specified, this command uses the page size of\n");
 	MSG("      the system under operation(Capture kernel) as the one of dump_mem\n");
@@ -406,11 +290,6 @@ print_usage()
 	MSG("      This is necessary when dump_level is 2 or more and [-i config_file] is\n");
 	MSG("      not specified.\n");
 	MSG("\n");
-	MSG("  [map_file]:\n");
-	MSG("      This is a pathname to a System.map file of first-kernel.\n");
-	MSG("      This is necessary when dump_level is 2 or more and [-i config_file]\n");
-	MSG("      is not specified. [-x vmlinux] must be specified.\n");
-	MSG("\n");
 	MSG("  dump_mem:\n");
 	MSG("      This is a pathname to a first-kernel memory core image.\n");
 	MSG("      This argument is generally /proc/vmcore.\n");
@@ -421,24 +300,6 @@ print_usage()
 }
 
 int
-open_system_map(struct DumpInfo *info)
-{
-	FILE *map;
-
-	if (info->name_sysmap == NULL)
-		return TRUE;
-
-	if ((map = fopen(info->name_sysmap, "r")) == NULL) {
-		ERRMSG("Can't open the map file(%s). %s\n",
-		    info->name_sysmap, strerror(errno));
-		return FALSE;
-	}
-
-	info->map = map;
-	return TRUE;
-}
-
-int
 open_config_file(struct DumpInfo *info, char *mode)
 {
 	FILE *file_configfile;
@@ -530,7 +391,6 @@ open_dump_bitmap(struct DumpInfo *info)
 /*
  * Open the following files when it generates the configuration file.
  * - vmlinux
- * - system.map
  * - configuration file
  */
 int
@@ -540,9 +400,6 @@ open_files_for_generating_configfile(str
 	    = open_kernel_file(dwarf_info.vmlinux_name)) == -1)
 		return FALSE;
 
-	if (!open_system_map(info))
-		return FALSE;
-
 	if (!open_config_file(info, "w"))
 		return FALSE;
 
@@ -558,7 +415,6 @@ open_files_for_generating_configfile(str
  *   - configuration file
  * else
  *   - vmlinux
- *   - system.map
  */
 int
 open_files_for_creating_dumpfile(struct DumpInfo *info)
@@ -566,13 +422,10 @@ open_files_for_creating_dumpfile(struct 
 	if (info->flag_read_config) {
 		if (!open_config_file(info, "r"))
 			return FALSE;
-	} else if (info->dump_level >= 2) {
+	} else if (info->dump_level > DL_EXCLUDE_ZERO) {
 		if ((dwarf_info.vmlinux_fd
 		    = open_kernel_file(dwarf_info.vmlinux_name)) == -1)
 			return FALSE;
-
-		if (!open_system_map(info))
-			return FALSE;
 	}
 	if (!open_dump_memory(info))
 		return FALSE;
@@ -752,177 +605,99 @@ out:
 	return FALSE;
 }
 
-int
-get_symbol_info(struct DumpInfo *info)
+unsigned long
+get_symbol_addr(struct DumpInfo *info, char *symname, int get_next_symbol)
 {
-	int find_pkmap_count_next = FALSE;
-	unsigned long sym_mem_map = NOT_FOUND_SYMBOL;
-	unsigned long sym_mem_section = NOT_FOUND_SYMBOL;
-	unsigned long sym_pkmap_count = NOT_FOUND_SYMBOL;
-	unsigned long sym_pkmap_count_next = NOT_FOUND_SYMBOL;
-	unsigned long sym_system_utsname = NOT_FOUND_SYMBOL;
-	unsigned long sym__stext = NOT_FOUND_SYMBOL;
-	unsigned long sym__text = NOT_FOUND_SYMBOL;
-	unsigned long sym_phys_base = NOT_FOUND_SYMBOL;
-	unsigned long sym_node_online_map = NOT_FOUND_SYMBOL;
-	unsigned long sym_node_data = NOT_FOUND_SYMBOL;
-	unsigned long sym_pgdat_list = NOT_FOUND_SYMBOL;
-	unsigned long sym_contig_page_data = NOT_FOUND_SYMBOL;
-	char buf[BUFSIZE_FGETS], *mapitems[MAXARGS], *endp;
+	int i, got_symbol = FALSE;
+	unsigned long symbol = NOT_FOUND_SYMBOL;
+	Elf *elfd = NULL;
+	GElf_Shdr shdr;
+	GElf_Sym sym;
+	Elf_Data *data = NULL;
+	Elf_Scn *scn = NULL;
+	char *sym_name = NULL;
 
-	if (info->name_sysmap == NULL) {
-		return TRUE;
+	lseek(info->fd_memory,0,SEEK_SET);
+	if (elf_version(EV_CURRENT) == EV_NONE ) {
+		/*
+		 * library out of date
+		 */
+		ERRMSG("Elf library out of date!n");
+		goto out;
+	}
+	if (!(elfd = elf_begin(dwarf_info.vmlinux_fd, ELF_C_READ, NULL))) {
+		ERRMSG(" Could not start elf file\n");
+		return FALSE;
+	}
+	while ((scn = elf_nextscn(elfd, scn)) != NULL) {
+		if (gelf_getshdr (scn, &shdr) == NULL) {
+			ERRMSG("Could not get section header\n");
+			goto out;
+		}
+		if (shdr.sh_type == SHT_SYMTAB)
+			break;
+	}
+	if (!scn) {
+		ERRMSG("Could not find symbol table\n");
+		goto out;
 	}
 
-	/*
-	 * Get symbol info from the System.map.
-	 */
-	while (fgets(buf, BUFSIZE_FGETS, info->map)) {
-		if (parse_line(buf, mapitems) != 3)
-			continue;
+	data = elf_getdata(scn, data);
 
-		if (strcmp(mapitems[2], "mem_map") == 0) {
-			sym_mem_map = strtoul(mapitems[0], &endp, 16);
-        		if ((!sym_mem_map || sym_mem_map == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
-		}
-		if (strcmp(mapitems[2], "mem_section") == 0) {
-			sym_mem_section = strtoul(mapitems[0], &endp, 16);
-			if ((!sym_mem_section || sym_mem_section == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
-		}
-		if (find_pkmap_count_next) {
-			sym_pkmap_count_next = strtoul(mapitems[0], &endp, 16);
-			if ((!sym_pkmap_count_next || sym_pkmap_count_next
-			    == ULONG_MAX) || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
-			find_pkmap_count_next = FALSE;
-		}
-		if (strcmp(mapitems[2], "pkmap_count") == 0) {
-			sym_pkmap_count = strtoul(mapitems[0], &endp, 16);
-			if ((!sym_pkmap_count || sym_pkmap_count == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
-			find_pkmap_count_next = TRUE;
-		}
-		if (strcmp(mapitems[2], "system_utsname") == 0) {
-			sym_system_utsname = strtoul(mapitems[0], &endp, 16);
-        		if ((!sym_system_utsname
-			    || sym_system_utsname == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
-		}
-		if (strcmp(mapitems[2], "_stext") == 0) {
-			sym__stext = strtoul(mapitems[0], &endp, 16);
-			if ((!sym__stext || sym__stext == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
-		}
-		if (strcmp(mapitems[2], "_text") == 0) {
-			sym__text = strtoul(mapitems[0], &endp, 16);
-			if ((!sym__text || sym__text == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
-		}
-		if (strcmp(mapitems[2], "phys_base") == 0) {
-			sym_phys_base = strtoul(mapitems[0], &endp, 16);
-			if ((!sym_phys_base || sym_phys_base == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
-		}
-		if (strcmp(mapitems[2], "node_online_map") == 0) {
-			sym_node_online_map = strtoul(mapitems[0], &endp, 16);
-			if ((!sym_node_online_map
-			    || sym_node_online_map == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
-		}
-		if (strcmp(mapitems[2], "node_data") == 0) {
-			sym_node_data = strtoul(mapitems[0], &endp, 16);
-			if ((!sym_node_data
-			    || sym_node_data == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
+	if ((!data) || (data->d_size == 0)) {
+		ERRMSG("Zero data in symtab\n");
+		goto out;
+	}
+
+	for (i = 0; i < (shdr.sh_size/shdr.sh_entsize); i++) {
+		if (gelf_getsym(data, i, &sym) == NULL) {
+			ERRMSG("Unable to get symbol at index %d\n", i);
+			goto out;
 		}
-		if (strcmp(mapitems[2], "pgdat_list") == 0) {
-			sym_pgdat_list = strtoul(mapitems[0], &endp, 16);
-			if ((!sym_pgdat_list
-			    || sym_pgdat_list == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
-			}
+		sym_name = elf_strptr(elfd, shdr.sh_link, sym.st_name);
+
+		if (sym_name == NULL)
+			continue;
+
+		if (got_symbol) {
+			symbol = sym.st_value;
+			break;
 		}
-		if (strcmp(mapitems[2], "contig_page_data") == 0) {
-			sym_contig_page_data = strtoul(mapitems[0], &endp, 16);
-			if ((!sym_contig_page_data
-			    || sym_contig_page_data == ULONG_MAX)
-			    || strlen(endp) != 0) {
-				ERRMSG("The map file has invalid address of %s",
-				    mapitems[2]);
-				return FALSE;
+		if (!strcmp(sym_name, symname)) {
+			if (get_next_symbol) {
+				got_symbol = TRUE;
+				continue;
+			} else {
+				symbol = sym.st_value;
+				break;
 			}
 		}
-		if ((sym_mem_map != NOT_FOUND_SYMBOL)
-		    && (sym_mem_section != NOT_FOUND_SYMBOL)
-		    && (sym_pkmap_count != NOT_FOUND_SYMBOL)
-		    && (sym_pkmap_count_next != NOT_FOUND_SYMBOL)
-		    && (sym_system_utsname != NOT_FOUND_SYMBOL)
-		    && (sym__stext != NOT_FOUND_SYMBOL)
-		    && (sym__text != NOT_FOUND_SYMBOL)
-		    && (sym_phys_base != NOT_FOUND_SYMBOL)
-		    && (sym_node_online_map != NOT_FOUND_SYMBOL)
-		    && (sym_node_data != NOT_FOUND_SYMBOL)
-		    && (sym_pgdat_list != NOT_FOUND_SYMBOL)
-		    && (sym_contig_page_data != NOT_FOUND_SYMBOL)
-		   )
-			break;
 	}
-	SYMBOL(mem_map) = sym_mem_map;
-	SYMBOL(mem_section) = sym_mem_section;
-	SYMBOL(pkmap_count) = sym_pkmap_count;
-	SYMBOL(pkmap_count_next) = sym_pkmap_count_next;
-	SYMBOL(system_utsname) = sym_system_utsname;
-	SYMBOL(_stext) = sym__stext;
-	SYMBOL(_text) = sym__text;
-	SYMBOL(phys_base) = sym_phys_base;
-	SYMBOL(node_online_map) = sym_node_online_map;
-	SYMBOL(node_data) = sym_node_data;
-	SYMBOL(pgdat_list) = sym_pgdat_list;
-	SYMBOL(contig_page_data) = sym_contig_page_data;
+out:
+	if (elfd != NULL)
+		elf_end(elfd);
+
+	return symbol;
+}
+
+int
+get_symbol_info(struct DumpInfo *info)
+{
+	/*
+	 * Get symbol info from the System.map.
+	 */
+	SYMBOL(mem_map) = get_symbol_addr(info, "mem_map", 0);
+	SYMBOL(mem_section) = get_symbol_addr(info, "mem_section", 0);
+	SYMBOL(pkmap_count) = get_symbol_addr(info, "pkmap_count", 0);
+	SYMBOL(pkmap_count_next) = get_symbol_addr(info, "pkmap_count", 1);
+	SYMBOL(system_utsname) = get_symbol_addr(info, "system_utsname", 0);
+	SYMBOL(_stext) = get_symbol_addr(info, "_stext", 0);
+	SYMBOL(_text) = get_symbol_addr(info, "_text", 0);
+	SYMBOL(phys_base) = get_symbol_addr(info, "phys_base", 0);
+	SYMBOL(node_online_map) = get_symbol_addr(info, "node_online_map", 0);
+	SYMBOL(node_data) = get_symbol_addr(info, "node_data", 0);
+	SYMBOL(pgdat_list) = get_symbol_addr(info, "pgdat_list", 0);
+	SYMBOL(contig_page_data) = get_symbol_addr(info, "contig_page_data", 0);
 
 	return TRUE;
 }
@@ -1490,9 +1265,10 @@ initial(struct DumpInfo *info)
 				return FALSE;
 			else
 				return TRUE;
+		} else {
+			if (!get_symbol_info(info))
+				return FALSE;
 		}
-		if (!get_symbol_info(info))
-			return FALSE;
 		if (!check_release(info))
 			return FALSE;
 		if (!get_structure_info(info))
@@ -3035,17 +2811,6 @@ out:
 }
 
 void
-close_system_map(struct DumpInfo *info)
-{
-	if (info->name_sysmap == NULL)
-		return;
-
-	if (fclose(info->map) < 0)
-		ERRMSG("Can't close the map file(%s). %s\n",
-		    info->name_sysmap, strerror(errno));
-}
-
-void
 close_config_file(struct DumpInfo *info)
 {
 	if(fclose(info->file_configfile) < 0)
@@ -3106,8 +2871,6 @@ close_files_for_generating_configfile(st
 {
 	close_kernel_file(dwarf_info.vmlinux_fd);
 
-	close_system_map(info);
-
 	close_config_file(info);
 
 	return TRUE;
@@ -3127,13 +2890,11 @@ close_files_for_generating_configfile(st
 int
 close_files_for_creating_dumpfile(struct DumpInfo *info)
 {
-	if (info->flag_read_config) {
+	if (info->flag_read_config)
 		close_config_file(info);
-	} else if (info->dump_level >= 2) {
+	else if (info->dump_level > DL_EXCLUDE_ZERO)
 		close_kernel_file(dwarf_info.vmlinux_fd);
 
-		close_system_map(info);
-	}
 	close_dump_memory(info);
 
 	close_dump_file(info);
@@ -3199,12 +2960,11 @@ main(int argc, char *argv[])
 			goto out;
 		}
 	}
-
 	if (info->flag_generate_config) {
 		/*
 		 * generate the configuration file
 		 */
-		if (argc != optind + 1) {
+		if (argc != optind) {
 			ERRMSG("Commandline parameter is invalid.\n");
 			print_usage();
 			goto out;
@@ -3216,7 +2976,6 @@ main(int argc, char *argv[])
 			print_usage();
 			goto out;
 		}
-		info->name_sysmap   = argv[optind];
 	} else if (info->flag_read_config) {
 		/*
 		 * check parameters to read the configuration file
@@ -3230,13 +2989,11 @@ main(int argc, char *argv[])
 		if ((argc != optind + 2)
 		    || ((info->flag_compress == 1)
 			&& (info->flag_elf_dumpfile == 1))
-			/* || info->flag_generate_config */
 			|| info->flag_vmlinux) {
 			ERRMSG("Commandline parameter is invalid.\n");
 			print_usage();
 			goto out;
 		}
-		info->name_sysmap   = NULL;
 		info->name_memory   = argv[optind];
 		info->name_dumpfile = argv[optind+1];
 	} else {
@@ -3246,25 +3003,14 @@ main(int argc, char *argv[])
 			print_usage();
 			goto out;
 		}
-		if ((optind + 3 < argc)
-		    || ((info->dump_level <= 1) && (argc  < optind + 2))
-		    || ((info->dump_level >= 2) && (argc != optind + 3))
-		    || ((info->dump_level >= 2) && (!info->flag_vmlinux))
-		    || ((info->flag_compress == 1)
-			&& (info->flag_elf_dumpfile == 1))) {
+		if ((argc != optind + 2)
+		    || (info->flag_compress && info->flag_elf_dumpfile)) {
 			ERRMSG("Commandline parameter is invalid.\n");
 			print_usage();
 			goto out;
 		}
-		if ((info->dump_level <= 1) && (argc == optind + 2)) {
-			info->name_sysmap   = NULL;
-			info->name_memory   = argv[optind];
-			info->name_dumpfile = argv[optind+1];
-		} else {
-			info->name_sysmap   = argv[optind];
-			info->name_memory   = argv[optind+1];
-			info->name_dumpfile = argv[optind+2];
-		}
+		info->name_memory   = argv[optind];
+		info->name_dumpfile = argv[optind+1];
 	}
 
 
@@ -3316,8 +3062,6 @@ main(int argc, char *argv[])
 out:
 	ERRMSG("\n");
 	ERRMSG("makedumpfile Failed.\n");
-	if (info->map)
-		fclose(info->map);
 	if (info->fd_memory)
 		close(info->fd_memory);
 	if (info->fd_dumpfile)
diff -ruNp makedumpfile.old/makedumpfile.h makedumpfile/makedumpfile.h
--- makedumpfile.old/makedumpfile.h	2006-09-30 10:02:56.000000000 +0900
+++ makedumpfile/makedumpfile.h	2006-09-30 10:03:09.000000000 +0900
@@ -17,7 +17,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <fcntl.h>
-#include <elf.h>
+#include <gelf.h>
 #include <sys/stat.h>
 #include <unistd.h>
 #include <string.h>
@@ -430,12 +430,6 @@ struct DumpInfo {
 	struct mem_map_data	*mem_map_data;
 
 	/*
-	 * System.map file info:
-	 */
-	FILE			*map;
-	char			*name_sysmap;
-
-	/*
 	 * Dump memory image info:
 	 */
 	int			fd_memory;
