Hello community, here is the log from the commit of package lkcdutils checked in at Sat Jan 27 20:01:30 CET 2007. -------- --- lkcdutils/lkcdutils.changes 2007-01-23 00:52:13.000000000 +0100 +++ /mounts/work_src_done/STABLE/lkcdutils/lkcdutils.changes 2007-01-27 17:52:13.103647000 +0100 @@ -1,0 +2,12 @@ +Sat Jan 27 17:49:50 CET 2007 - bwalle@suse.de + +- upstream fixes + o Fix a bug in array dimensioning + o fix problems with the search function, esp. on s390 +- don't read the /etc/dumputils.conf configuration file in savedump + when dump device and dump directory are specified on command + line (#239354) +- make lcrash -s (saves the dump to disk) work again (#239355) + according to the manpage + +------------------------------------------------------------------- New: ---- lkcdutils-fix-missing-filenames.diff lkcdutils-savedump-no-config-file lkcdutils-update-r1346.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lkcdutils.spec ++++++ --- /var/tmp/diff_new_pack.Tv2837/_old 2007-01-27 20:01:16.000000000 +0100 +++ /var/tmp/diff_new_pack.Tv2837/_new 2007-01-27 20:01:16.000000000 +0100 @@ -15,7 +15,7 @@ BuildRequires: binutils-devel glib2-devel libelf popt-devel Summary: Linux Kernel Crash Dump (LKCD) Utilities Version: 7.0.1 -Release: 55 +Release: 56 License: GNU General Public License (GPL) Group: System/Kernel # Original source is from Sourceforge SVN @@ -25,6 +25,7 @@ Source3: lkcdutils-netdump.init Source4: dwarf-compile-fixes.patch Source5: lkcdutils-lkcd-netdump.init +Patch0: lkcdutils-update-r1346.diff Patch1: lkcdutils-libelf-static.patch Patch2: lkcdutils-gcc4.patch Patch3: lkcdutils-cvs-fixes.patch @@ -49,6 +50,8 @@ Patch22: lkcdutils-fix-undefined-warning.diff Patch23: lkcdutils-fix-polling-config.diff Patch24: lkcdutils-fix-dumparch.diff +Patch25: lkcdutils-savedump-no-config-file +Patch26: lkcdutils-fix-missing-filenames.diff Patch71: lkcdutils-netdump-secure_mode.patch Patch75: lkcdutils-netdump-doc.patch Patch76: lkcdutils-savedump.patch @@ -82,6 +85,7 @@ %prep %setup -n %{name}-%{tarversion} +%patch0 -p0 %patch1 -p1 %patch2 -p1 %patch3 -p1 @@ -106,6 +110,8 @@ %patch22 -p1 %patch23 -p1 %patch24 -p1 +%patch25 -p1 +%patch26 -p1 %patch77 -p1 %patch80 -p1 cp %{S:4} PATCHES @@ -198,6 +204,15 @@ #/usr/sbin/netdump-login-client %changelog -n lkcdutils +* Sat Jan 27 2007 - bwalle@suse.de +- upstream fixes + o Fix a bug in array dimensioning + o fix problems with the search function, esp. on s390 +- don't read the /etc/dumputils.conf configuration file in savedump + when dump device and dump directory are specified on command + line (#239354) +- make lcrash -s (saves the dump to disk) work again (#239355) + according to the manpage * Tue Jan 23 2007 - bwalle@suse.de - only call kl_check_page_tables_ia64() if debugging an IA64 backtrace ++++++ lkcdutils-cvs-fixes.patch ++++++ --- /var/tmp/diff_new_pack.Tv2837/_old 2007-01-27 20:01:17.000000000 +0100 +++ /var/tmp/diff_new_pack.Tv2837/_new 2007-01-27 20:01:17.000000000 +0100 @@ -19,9 +19,9 @@ clean clobber: rm -f *.o savedump configdump -diff -purN lkcdutils/PATCHES/dwarf-dwarfextract2.patch ../../cvstree/checkouts/lkcd/7.X.X/lkcdutils/PATCHES/dwarf-dwarfextract2.patch ---- lkcdutils/PATCHES/dwarf-dwarfextract2.patch 1970-01-01 01:00:00.000000000 +0100 -+++ ../../cvstree/checkouts/lkcd/7.X.X/lkcdutils/PATCHES/dwarf-dwarfextract2.patch 2006-02-07 00:07:42.000000000 +0100 +diff -purN lkcdutils/PATCHES/dwarf-dwarfextract3.patch ../../cvstree/checkouts/lkcd/7.X.X/lkcdutils/PATCHES/dwarf-dwarfextract3.patch +--- lkcdutils/PATCHES/dwarf-dwarfextract3.patch 1970-01-01 01:00:00.000000000 +0100 ++++ ../../cvstree/checkouts/lkcd/7.X.X/lkcdutils/PATCHES/dwarf-dwarfextract3.patch 2006-02-07 00:07:42.000000000 +0100 @@ -0,0 +1,18 @@ +--- /dev/null ++++ dwarf-dwarfextract/dwarfdump/dwarfextract.c ++++++ lkcdutils-fix-missing-filenames.diff ++++++
From the manpage:
lcrash -d DUMPDEV [ -s DUMPDIR | -e ] -s saves a dump and -e erases the dump. Error without that patch: missing one or more dump filenames This patch fixes the issue. --- lcrash/main.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) Index: b/lcrash/main.c =================================================================== --- a/lcrash/main.c +++ b/lcrash/main.c @@ -414,16 +414,18 @@ main(int argc, char **argv) * Note that We get the live filenames here so that we are able * to print them out below. */ - if (!map[0] && !dump[0] && !namelist[0]) { - if (kl_get_live_filenames(map, dump, namelist)) { + if (lc_flags ^ LC_SAVE_FLG) { + if (!map[0] && !dump[0] && !namelist[0]) { + if (kl_get_live_filenames(map, dump, namelist)) { + fprintf(KL_ERRORFP, + "Error: could not get live dump filenames\n"); + usage(prog); + } + } else if (!map[0] || !dump[0] || !namelist[0]) { fprintf(KL_ERRORFP, - "Error: could not get live dump filenames\n"); + "Error: missing one or more dump filenames\n"); usage(prog); } - } else if (!map[0] || !dump[0] || !namelist[0]) { - fprintf(KL_ERRORFP, - "Error: missing one or more dump filenames\n"); - usage(prog); } /* print version info ++++++ lkcdutils-savedump-no-config-file ++++++ Don't read the configuration file if both -d and -o are given. --- dumputils/savedump.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: b/dumputils/savedump.c =================================================================== --- a/dumputils/savedump.c +++ b/dumputils/savedump.c @@ -1114,7 +1114,8 @@ main(int argc, char **argv) exit(63); } - parseConf(conf, config_file); + if (!dvalue || !ovalue) + parseConf(conf, config_file); switch (option) { ++++++ lkcdutils-update-r1346.diff ++++++ Index: configure =================================================================== --- configure (Revision 1339) +++ configure (Revision 1346) @@ -390,6 +390,7 @@ patch -p1 < ../PATCHES/dwarf-lkcd.patch patch -p1 < ../PATCHES/dwarf-dwarfextract.patch patch -p1 < ../PATCHES/dwarf-dwarfextract1.patch + patch -p1 < ../PATCHES/dwarf-dwarfextract2.patch patch -p1 < ../PATCHES/dwarf-dwarfextractmake.patch patch -p1 < ../PATCHES/dwarf-clobber.patch patch -p1 < ../PATCHES/libdwarf-configure.patch Index: PATCHES/dwarf-dwarfextract2.patch =================================================================== --- PATCHES/dwarf-dwarfextract2.patch (Revision 0) +++ PATCHES/dwarf-dwarfextract2.patch (Revision 1346) @@ -0,0 +1,110 @@ +--- + dwarfdump/dwarfextract.c | 36 ++++++++++++++++++++++++------------ + 1 file changed, 24 insertions(+), 12 deletions(-) + +Index: dwarf/dwarfdump/dwarfextract.c +=================================================================== +--- dwarf.orig/dwarfdump/dwarfextract.c ++++ dwarf/dwarfdump/dwarfextract.c +@@ -1629,7 +1629,7 @@ print_a_die(Dwarf_Debug dbg, Dwarf_Die d + indentation_string[(tree_level)*2] = '\0'; + printf ("%s", indentation_string); + +- printf ("type: %s", die_type(die)); ++ printf ("type: %s ", die_type(die)); + + die_name = name_of_die(die); + printf ("name:%s ", die_name); +@@ -3356,7 +3356,8 @@ convert_to_new(Dwarf_Debug olddbg, Dwarf + } else { + errv = dwarf_formudata(old_attr,&value,&error); + if (errv == DW_DLV_ERROR) { +- printf ( "dwarf_formudata error\n"); ++ printf ( ++ "convert_to_new constant: dwarf_formudata error\n"); + exit(1); + } + } +@@ -3428,12 +3429,12 @@ convert_to_new(Dwarf_Debug olddbg, Dwarf + } + case DW_AT_upper_bound: + { +- errv = dwarf_formudata(old_attr, &value, &error); ++ errv = dwarf_formsdata(old_attr, &svalue, &error); + if (errv == DW_DLV_ERROR) { +- printf("dwarf_formudata error\n"); ++ printf( ++ "convert_to_new upper bound: dwarf_formsdata error\n"); + exit(1); + } +- svalue = value; + new_attr = dwarf_add_AT_signed_const(newdbg, newdie, + attr_val, svalue, &error); + if (new_attr == (Dwarf_P_Attribute)DW_DLV_BADADDR) { +@@ -4011,7 +4012,6 @@ convert_subrange(Dwarf_Debug olddbg, Dwa + Dwarf_Error error; + Dwarf_Signed atcnt; + Dwarf_Signed svalue; +- Dwarf_Unsigned uvalue; + Dwarf_Attribute *atlist, old_attr; + Dwarf_P_Attribute aresult, new_attr; + Dwarf_P_Die newdie; +@@ -4060,12 +4060,12 @@ convert_subrange(Dwarf_Debug olddbg, Dwa + } + case DW_AT_upper_bound: + { +- errv = dwarf_formudata(old_attr, &uvalue, &error); ++ errv = dwarf_formsdata(old_attr, &svalue, &error); + if (errv == DW_DLV_ERROR) { +- printf("get_bound: dwarf_formudata error\n"); ++ printf( ++ "convert_subrange: dwarf_formsdata error\n"); + exit(1); + } +- svalue = uvalue; + break; + } + default: +@@ -4606,12 +4606,12 @@ get_type_values(Dwarf_Debug dbg, Dwarf_D + unsigned long long int *hashp, int *nummembersp, int *sizep, + Dwarf_Half *tagp, Dwarf_Off *ref, int *isptr) + { +- int result, nummembers=1, pos; ++ int result, nummembers=1, pos, bound; + unsigned long long int hashdiesum, hashnamelen, hashnamesum=0, + hashtot, hashfilenum=0; + char *die_name, *cp, *parent; + Dwarf_Unsigned bytesize; +- Dwarf_Die this_die, sibling_die, type_die; ++ Dwarf_Die this_die, sibling_die, type_die, child_die; + Dwarf_Error err; + Dwarf_Half dietag, type_tag; + Dwarf_Attribute attr; +@@ -4648,6 +4648,18 @@ get_type_values(Dwarf_Debug dbg, Dwarf_D + /* give the caller the tag of the type */ + *tagp = dietag; + hashdiesum = dietag; ++ if (dietag == DW_TAG_array_type ) { ++ /* unnamed array descriptors are common; add the bound */ ++ if (get_child(die, &child_die)) { ++ bound = get_bound(child_die); ++ if (bound) { ++ if (debug) ++ printf ("adding bound %d to hashdiesum\n", ++ bound); ++ hashdiesum += bound; ++ } ++ } ++ } + + /* make pointers, arrays, volatiles and constants unique to the + type they point to */ +@@ -5005,7 +5017,7 @@ get_offset(Dwarf_Debug dbg, Dwarf_Attrib + } else { + result = dwarf_formudata(attr, &value, &error); + if (result == DW_DLV_ERROR) { +- printf ( "dwarf_formudata error\n"); ++ printf ( "get_offset: dwarf_formudata error\n"); + exit(1); + } + offset = value; Index: lcrash/cmds/cmd_search.c =================================================================== --- lcrash/cmds/cmd_search.c (Revision 1339) +++ lcrash/cmds/cmd_search.c (Revision 1346) @@ -186,7 +186,7 @@ for(i=0; i+8 <= nbytes; i+=8) { if(((TODWORD(pattern+i) & TODWORD(mask+i)) != - ( TODWORD(buf+j+i) & + (KL_GET_UINT64(buf+j+i) & TODWORD(mask+i)))) { goto next; } @@ -196,7 +196,7 @@ for(i=0; i+4 <= nbytes; i+=4) { if(((TOWORD(pattern+i) & TOWORD(mask+i)) != - (TOWORD(buf+j+i) & + (KL_GET_UINT32(buf+j+i) & TOWORD(mask+i)))) { goto next; } @@ -206,7 +206,7 @@ for(i=0; i+2 <= nbytes; i+=2) { if(((TOHALF(pattern+i) & TOHALF(mask+i)) != - (TOHALF(buf+j+i) & + (KL_GET_UINT16(buf+j+i) & TOHALF(mask+i)))) { goto next; } @@ -300,7 +300,8 @@ naddr += KL_PAGE_SIZE; continue; } - if (kl_paddr_in_dump(paddr)) { + if (kl_paddr_in_dump(paddr) || + (KLP->dump->core_type == s390_core)) { /* Found a valid and in-the-dump page. Add * it to the list. */ @@ -360,10 +361,10 @@ naddr += KL_PAGE_SIZE; } } -done: if (faddr == 0) { return(1); } +done: if (found_bad_page) { /* The last page checked was bad. Make * sure that we trim off the bytes from the ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org