Hello community, here is the log from the commit of package crash for openSUSE:Factory checked in at 2012-01-10 14:50:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/crash (Old) and /work/SRC/openSUSE:Factory/.crash.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crash", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/crash/crash.changes 2011-12-27 18:13:07.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.crash.new/crash.changes 2012-01-10 14:50:53.000000000 +0100 @@ -1,0 +2,10 @@ +Mon Jan 9 22:05:10 UTC 2012 - [email protected] + +- crash-wrong-memset.patch: fix compilation on SLE11. + +------------------------------------------------------------------- +Thu Jan 5 17:14:24 UTC 2012 - [email protected] + +- Update to crash 6.0.2 from upstream and modifications to compile. + +------------------------------------------------------------------- Old: ---- crash-6.0.0.tar.gz New: ---- crash-6.0.2.tar.gz crash-add-read-diags.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crash.spec ++++++ --- /var/tmp/diff_new_pack.gLC3WS/_old 2012-01-10 14:50:58.000000000 +0100 +++ /var/tmp/diff_new_pack.gLC3WS/_new 2012-01-10 14:50:58.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package crash # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,7 +16,7 @@ # -%define crash_version 6.0.0 +%define crash_version 6.0.2 %define whitepaper_version 2003 %define scripts_version 2008-02-08 %define gcore_version 2011-09-22 @@ -58,6 +58,7 @@ Patch8: %{name}-missing-declarations.patch Patch9: %{name}-debuginfo-compressed.patch Patch10: %{name}-wrong-memset.patch +Patch11: %{name}-add-read-diags.patch Patch90: %{name}-sial-ps-2.6.29.diff BuildRequires: bison BuildRequires: flex @@ -214,6 +215,7 @@ %patch8 -p1 %patch9 -p1 %patch10 -p1 +%patch11 -p1 ## SIAL patches cd sial-scripts-%{scripts_version} %patch90 -p1 ++++++ crash-6.0.0.tar.gz -> crash-6.0.2.tar.gz ++++++ /work/SRC/openSUSE:Factory/crash/crash-6.0.0.tar.gz /work/SRC/openSUSE:Factory/.crash.new/crash-6.0.2.tar.gz differ: char 5, line 1 ++++++ crash-add-read-diags.patch ++++++ From: David Mair <[email protected]> Subject: [PATCH] Add read offset debug output to read_mem() Patch-mainline: never References: BNC #732433 This patch adds read offset calculation path and result debug output to read_mem() Signed-off-by: David Mair <[email protected]> --- --- a/diskdump.c 2012-01-04 09:23:32.000000000 -0700 +++ b/diskdump.c 2012-01-04 11:13:01.000000000 -0700 @@ -432,6 +432,9 @@ restart: dd->dumpable_bitmap = calloc(bitmap_len, 1); + if (CRASHDEBUG(8)) + error(INFO, + " memory bitmap: %llx\n", offset); if (FLAT_FORMAT()) { if (!read_flattened_format(dd->dfd, offset, dd->bitmap, bitmap_len)) { error(INFO, "%s: cannot read memory bitmap\n", @@ -829,6 +832,11 @@ read_diskdump(int fd, void *bufptr, int pfn = paddr_to_pfn(paddr); + if (CRASHDEBUG(8)) + error(INFO, + "read_diskdump(%d, %llx, %d, %lx, %llx), pfn=%lx\n", + fd, (ulonglong)bufptr, cnt, addr, (ulonglong)paddr, pfn); + if (KDUMP_SPLIT()) { /* Find proper dd */ int i; @@ -845,26 +853,67 @@ read_diskdump(int fd, void *bufptr, int } if (i == num_dumpfiles) + { + if (CRASHDEBUG(8)) + error(INFO, + "Address is beyond last dumpfile.\n"); return SEEK_ERROR; + } } curpaddr = paddr & ~((physaddr_t)(dd->block_size-1)); page_offset = paddr & ((physaddr_t)(dd->block_size-1)); if ((pfn >= dd->header->max_mapnr) || !page_is_ram(pfn)) + { + if (CRASHDEBUG(8) && (pfn >= dd->header->max_mapnr)) + error(INFO, + "pfn (%lx) is >= maximum map number (%lx)\n", + pfn, dd->header->max_mapnr); + if (CRASHDEBUG(8) && !page_is_ram(pfn)) + error(INFO, + "pfn (%lx) is not in ram\n", + pfn); return SEEK_ERROR; + } if (!page_is_dumpable(pfn)) { if ((dd->flags & (ZERO_EXCLUDED|ERROR_EXCLUDED)) == ERROR_EXCLUDED) + { + if (CRASHDEBUG(8)) + error(INFO, + "pfn (%lx) is excluded\n", + pfn); return PAGE_EXCLUDED; + } + if (CRASHDEBUG(8)) + error(INFO, + "Zero-filling page with pfn=%lx\n", + pfn); memset(bufptr, 0, cnt); return cnt; } if (!page_is_cached(curpaddr)) + { + if (CRASHDEBUG(8)) + error(INFO, + "caching page with current physaddr=%llx\n", + curpaddr); if ((ret = cache_page(curpaddr)) < 0) + { + if (CRASHDEBUG(8)) + error(INFO, + "Failed with err=%d to cache page with current physaddr=%llx\n", + ret, curpaddr); return ret; + } + } + if (CRASHDEBUG(8)) + error(INFO, + "Buffering page with pfn=%lx and current physaddr=%llx\n", + pfn, curpaddr); memcpy(bufptr, dd->curbufptr + page_offset, cnt); return cnt; --- a/filesys.c 2012-01-04 09:23:32.000000000 -0700 +++ b/filesys.c 2012-01-04 11:15:37.000000000 -0700 @@ -163,6 +163,9 @@ memory_source_init(void) error(INFO, "using /dev/mem\n\n"); pc->flags &= ~MEMMOD; pc->flags |= DEVMEM; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_dev_mem\n"); pc->readmem = read_dev_mem; pc->writemem = write_dev_mem; pc->live_memsrc = "/dev/mem"; @@ -3382,6 +3385,9 @@ get_live_memory_source(void) if (use_module) { pc->flags &= ~DEVMEM; pc->flags |= MEMMOD; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_memory_device\n"); pc->readmem = read_memory_device; pc->writemem = write_memory_device; pc->live_memsrc = pc->memory_device; @@ -3390,6 +3396,9 @@ get_live_memory_source(void) if (crashbuiltin) { pc->flags &= ~DEVMEM; pc->flags |= CRASHBUILTIN; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_memory_device/builtin\n"); pc->readmem = read_memory_device; pc->writemem = write_memory_device; pc->live_memsrc = pc->memory_device; --- a/main.c 2012-01-04 09:23:32.000000000 -0700 +++ b/main.c 2012-01-04 11:25:35.000000000 -0700 @@ -431,6 +431,9 @@ main(int argc, char **argv) } pc->flags |= DEVMEM; pc->dumpfile = NULL; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_dev_mem\n"); pc->readmem = read_dev_mem; pc->writemem = write_dev_mem; pc->live_memsrc = argv[optind]; @@ -443,6 +446,9 @@ main(int argc, char **argv) } pc->flags |= PROC_KCORE; pc->dumpfile = NULL; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_proc_kcore\n"); pc->readmem = read_proc_kcore; pc->writemem = write_proc_kcore; pc->live_memsrc = argv[optind]; @@ -457,9 +463,15 @@ main(int argc, char **argv) pc->dumpfile = argv[optind]; if (is_sadump_xen()) { + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_kdump\n"); pc->readmem = read_kdump; pc->writemem = write_kdump; } else { + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_netdump\n"); pc->readmem = read_netdump; pc->writemem = write_netdump; } @@ -472,6 +484,9 @@ main(int argc, char **argv) } pc->flags |= KDUMP; pc->dumpfile = argv[optind]; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_kdump for KDUMP_LOCAL\n"); pc->readmem = read_kdump; pc->writemem = write_kdump; @@ -483,6 +498,9 @@ main(int argc, char **argv) } pc->flags |= KVMDUMP; pc->dumpfile = argv[optind]; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_kvmdump\n"); pc->readmem = read_kvmdump; pc->writemem = write_kvmdump; @@ -502,6 +520,9 @@ main(int argc, char **argv) } pc->flags |= XENDUMP; pc->dumpfile = argv[optind]; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_xendump\n"); pc->readmem = read_xendump; pc->writemem = write_xendump; @@ -518,6 +539,9 @@ main(int argc, char **argv) } pc->flags |= DISKDUMP; pc->dumpfile = argv[optind]; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_diskdump\n"); pc->readmem = read_diskdump; pc->writemem = write_diskdump; @@ -529,6 +553,9 @@ main(int argc, char **argv) } pc->flags |= LKCD; pc->dumpfile = argv[optind]; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_lkcddump\n"); pc->readmem = read_lkcd_dumpfile; pc->writemem = write_lkcd_dumpfile; @@ -540,6 +567,9 @@ main(int argc, char **argv) } pc->flags |= MCLXCD; pc->dumpfile = argv[optind]; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_mclxdump\n"); pc->readmem = read_mclx_dumpfile; pc->writemem = write_mclx_dumpfile; @@ -551,6 +581,9 @@ main(int argc, char **argv) } pc->flags |= S390D; pc->dumpfile = argv[optind]; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_s390_dumpfile\n"); pc->readmem = read_s390_dumpfile; pc->writemem = write_s390_dumpfile; @@ -563,6 +596,9 @@ main(int argc, char **argv) } pc->flags |= SADUMP; pc->dumpfile = argv[optind]; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_sadump\n"); pc->readmem = read_sadump; pc->writemem = write_sadump; @@ -950,6 +986,9 @@ setup_environment(int argc, char **argv) pc->flags |= DATADEBUG; /* default until unnecessary */ pc->confd = -2; pc->machine_type = MACHINE_TYPE; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to default read_dev_mem\n"); pc->readmem = read_dev_mem; /* defaults until argv[] is parsed */ pc->writemem = write_dev_mem; pc->memory_module = NULL; @@ -1595,7 +1634,12 @@ check_xen_hyper(void) #ifdef XEN_HYPERVISOR_ARCH pc->cmd_table = xen_hyper_command_table; if (pc->flags & XENDUMP) + { + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_xendump_hyper\n"); pc->readmem = read_xendump_hyper; + } #else error(FATAL, XEN_HYPERVISOR_NOT_SUPPORTED); #endif --- a/memory.c 2012-01-04 09:23:32.000000000 -0700 +++ b/memory.c 2012-01-04 11:26:29.000000000 -0700 @@ -2215,6 +2215,9 @@ switch_to_proc_kcore(void) pc->flags &= ~DEVMEM; pc->flags |= PROC_KCORE; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_proc_kcore for memory.c\n"); pc->readmem = read_proc_kcore; pc->writemem = write_proc_kcore; pc->live_memsrc = "/proc/kcore"; --- a/netdump.c 2012-01-04 09:23:32.000000000 -0700 +++ b/netdump.c 2012-01-04 11:33:27.000000000 -0700 @@ -496,6 +496,11 @@ read_netdump(int fd, void *bufptr, int c struct pt_load_segment *pls; int i; + if (CRASHDEBUG(8)) + error(INFO, + "read_netdump(%d, %llx, %d, %lx, %llx)\n", + fd, (ulonglong)bufptr, cnt, addr, (ulonglong)paddr); + offset = 0; /* @@ -509,6 +514,11 @@ read_netdump(int fd, void *bufptr, int c { case NETDUMP_ELF32: offset = (off_t)paddr + (off_t)nd->header_size; + if (CRASHDEBUG(8)) + error(INFO, + "read NETDUMP_ELF32 for offset: %llx\n", + (ulonglong)offset); + break; case NETDUMP_ELF64: @@ -517,6 +527,10 @@ read_netdump(int fd, void *bufptr, int c if (nd->num_pt_load_segments == 1) { offset = (off_t)paddr + (off_t)nd->header_size - (off_t)nd->pt_load_segments[0].phys_start; + if (CRASHDEBUG(8)) + error(INFO, + "read KDUMP or NETDUMP_ELF64 for single segment: %llx\n", + (ulonglong)offset); break; } @@ -526,11 +540,18 @@ read_netdump(int fd, void *bufptr, int c (paddr < pls->phys_end)) { offset = (off_t)(paddr - pls->phys_start) + pls->file_offset; + if (CRASHDEBUG(8)) + error(INFO, + "read KDUMP or NETDUMP_ELF64 for multi-segment: %llx\n", + (ulonglong)offset); break; } if (pls->zero_fill && (paddr >= pls->phys_end) && (paddr < pls->zero_fill)) { memset(bufptr, 0, cnt); + if (CRASHDEBUG(8)) + error(INFO, + "read KDUMP or NETDUMP_ELF64 for zero-fill\n"); return cnt; } } @@ -542,9 +563,17 @@ read_netdump(int fd, void *bufptr, int c } if (FLAT_FORMAT()) { + if (CRASHDEBUG(8)) + error(INFO, + "read flat-format offset: %llx\n", + (ulonglong)offset); if (!read_flattened_format(nd->ndfd, offset, bufptr, cnt)) return READ_ERROR; } else { + if (CRASHDEBUG(8)) + error(INFO, + "seek and read offset: %llx\n", + (ulonglong)offset); if (lseek(nd->ndfd, offset, SEEK_SET) == -1) return SEEK_ERROR; if (read(nd->ndfd, bufptr, cnt) != cnt) @@ -2618,6 +2647,11 @@ get_kdump_panic_task(void) int read_kdump(int fd, void *bufptr, int cnt, ulong addr, physaddr_t paddr) { + if (CRASHDEBUG(8)) + error(INFO, + "read_kdump for: virt=%lx phys=%llx\n", + addr, (ulonglong)paddr); + if (XEN_CORE_DUMPFILE() && !XEN_HYPER_MODE()) { if (!(nd->xen_kdump_data->flags & KDUMP_P2M_INIT)) { if (!machdep->xen_kdump_p2m_create) @@ -2640,6 +2674,10 @@ read_kdump(int fd, void *bufptr, int cnt return READ_ERROR; } + if (CRASHDEBUG(8)) + error(INFO, + "read_kdump trying read_netdump for: virt=%lx phys=%llx\n", + addr, (ulonglong)paddr); return read_netdump(fd, bufptr, cnt, addr, paddr); } --- a/remote.c 2012-01-04 09:23:32.000000000 -0700 +++ b/remote.c 2012-01-04 11:34:03.000000000 -0700 @@ -2244,6 +2244,9 @@ remote_fd_init(void) * if no remote dumpfile name was entered. If it is /dev/mem, * then also go get the remote /proc/version. */ + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_daemon\n"); pc->readmem = read_daemon; if (!pc->server_memsrc) --- a/x86_64.c 2012-01-04 09:23:32.000000000 -0700 +++ b/x86_64.c 2012-01-04 11:37:52.000000000 -0700 @@ -5398,6 +5398,9 @@ x86_64_xen_kdump_p2m_create(struct xen_k * Temporarily read physical (machine) addresses from vmcore by * going directly to read_netdump() instead of via read_kdump(). */ + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_netdump for x86_64\n"); pc->readmem = read_netdump; if (xkd->flags & KDUMP_CR3) @@ -5458,6 +5461,9 @@ x86_64_xen_kdump_p2m_create(struct xen_k fprintf(fp, "\n"); } + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_kdump for x86_64\n"); pc->readmem = read_kdump; return TRUE; @@ -5524,6 +5530,9 @@ use_cr3: machdep->last_pgd_read = 0; machdep->last_ptbl_read = 0; machdep->last_pmd_read = 0; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_kdump for x86_64 and using cr3\n"); pc->readmem = read_kdump; return TRUE; --- a/x86.c 2012-01-04 09:23:32.000000000 -0700 +++ b/x86.c 2012-01-04 11:39:25.000000000 -0700 @@ -4390,6 +4390,9 @@ x86_xen_kdump_p2m_create(struct xen_kdum * Temporarily read physical (machine) addresses from vmcore by * going directly to read_netdump() instead of via read_kdump(). */ + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_netdump for x86\n"); pc->readmem = read_netdump; if (xkd->flags & KDUMP_CR3) @@ -4467,6 +4470,9 @@ x86_xen_kdump_p2m_create(struct xen_kdum fprintf(fp, "\n"); } + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_kdump for x86\n"); pc->readmem = read_kdump; return TRUE; @@ -4553,6 +4559,9 @@ use_cr3: machdep->last_ptbl_read = 0; machdep->last_pmd_read = 0; + if (CRASHDEBUG(8)) + error(INFO, + "Setting readmem to read_kdump for x86 and use cr3\n"); pc->readmem = read_kdump; return TRUE; ++++++ crash-missing-declarations.patch ++++++ --- /var/tmp/diff_new_pack.gLC3WS/_old 2012-01-10 14:50:58.000000000 +0100 +++ /var/tmp/diff_new_pack.gLC3WS/_new 2012-01-10 14:50:58.000000000 +0100 @@ -9,7 +9,7 @@ --- a/gdb-7.3.1.patch +++ b/gdb-7.3.1.patch -@@ -1253,3 +1253,13 @@ +@@ -1244,6 +1244,16 @@ ./pex-djgpp.$(objext) ./pex-msdos.$(objext) \ ./pex-unix.$(objext) ./pex-win32.$(objext) \ ./putenv.$(objext) \ @@ -23,3 +23,7 @@ + + struct tdefs { + char *symbol; + --- gdb-7.3.1/gdb/symtab.c.orig + +++ gdb-7.3.1/gdb/symtab.c + @@ -4951,10 +4951,17 @@ static void + ++++++ crash-wrong-memset.patch ++++++ --- /var/tmp/diff_new_pack.gLC3WS/_old 2012-01-10 14:50:58.000000000 +0100 +++ /var/tmp/diff_new_pack.gLC3WS/_new 2012-01-10 14:50:58.000000000 +0100 @@ -2,10 +2,10 @@ =================================================================== --- crash-6.0.0.orig/gdb-7.3.1.patch +++ crash-6.0.0/gdb-7.3.1.patch -@@ -1263,3 +1263,14 @@ - - struct tdefs { - char *symbol; +@@ -1329,3 +1329,14 @@ + fclose (stream); + return 0; + } +--- gdb-7.3.1/bfd/bfdio.c ++++ gdb-7.3.1/bfd/bfdio.c +@@ -577,7 +577,7 @@ memory_bstat (bfd *abfd, struct stat *st @@ -17,3 +17,4 @@ + statbuf->st_size = bim->size; + + return 0; + -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
