Hello community, here is the log from the commit of package crash.1648 for openSUSE:12.2:Update checked in at 2013-05-27 16:00:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.2:Update/crash.1648 (Old) and /work/SRC/openSUSE:12.2:Update/.crash.1648.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crash.1648" Changes: -------- New Changes file: --- /dev/null 2013-05-23 01:40:31.032032505 +0200 +++ /work/SRC/openSUSE:12.2:Update/.crash.1648.new/crash.changes 2013-05-27 16:00:42.000000000 +0200 @@ -0,0 +1,2393 @@ +------------------------------------------------------------------- +Tue Jul 17 16:52:55 UTC 2012 - [email protected] + +- Enabled support for reading dumpfiles compressed by LZO using + makedumpfile version 1.4.4 or later. + +------------------------------------------------------------------- +Fri Jun 1 09:20:03 UTC 2012 - [email protected] + +- Update to crash 6.0.7 from upstream and adjust patches to apply + without offsets. Upstream changes: + o Enhanced the search command to allow the searched-for value to + be entered as a crash (expression) or a kernel symbol name. The + resultant value of an (expression) or kernel symbol value must + fit into in the designated value size if -w or -h are used, and + neither variant may be used with the -c option. If found, both + the resultant value and the argument input string will be + displayed next to the target address(es). + o Added a new "search -t" option that will restrict the search to + the kernel stack pages of all tasks. If one or more matches + are found in a task's kernel stack, the output is preceded with + a task-identifying header. + o Fix for the s390x "bt -[tT]" options when run on an active task + on a live system. Without the patch, the options fail with the + message "bt: invalid/stale stack pointer for this task: 0". + o Fix for s390x "vm -p" option, which may show invalid user to + physical address translation data if a page is not mapped. + Without the patch, a page's translation may indicate + "<address> SWAP: (unknown swap location) OFFSET: 0", + or show an incorrect swap offset on an actual swap device. + o Added new "vm -[xd]" options to be used in conjunction with + "vm -[mv]", which override the current default output format + with hexadecimal or decimal format for just the command instance. + Without the patch, it would require changing the default output + format with "hex" or "dec" prior to executing "vm -[mv]". The + new flags may also be used with "foreach vm -[mv]". + o Fix for the s390x "vm -p" and "vtop -u <user-address>" commands + if the page containing the relevant PTE is not mapped. Without + the patch, the commands fail with the error message "vm: read + error: kernel virtual address: 0 type: entry" or "vtop: read + error: kernel virtual address: 0 type: entry" + o Fix for the s390x "vm -p" command and "vtop -u <user-address>" + commands to properly translate pages that are swapped out into + their swap file and offset. Without the patch, the swap file + and offset would not be displayed. + o Added new "list -[xd]" options to be used in conjunction with + "list -s", which override the current default output format + with hexadecimal or decimal format for just the command instance. + Without the patch, it would require changing the default output + format with "hex" or "dec" prior to executing "list -s". + o Added new "net -[xd]" options to be used in conjunction with + "net -S", which override the current default output format + with hexadecimal or decimal format for just the command instance. + Without the patch, it would require changing the default output + format with "hex" or "dec" prior to executing "net -S". The new + flags may also be used with "foreach net -S". + o Added new "mach -[xd]" options to be used in conjunction with + "mach -c", which override the current default output format + with hexadecimal or decimal format for just the command instance. + Without the patch, it would require changing the default output + format with "hex" or "dec" prior to executing "mach -c". + o If the value read from the cpu online, present, or possible masks + contains a cpu bit value that is outside the architecture's maximum + NR_CPUS value, print a warning message during invocation. Without + the patch, a corrupt vmcore containing a bogus mask value could + quietly corrupt heap memory. + o Add support to for reading dumpfiles compressed by LZO using + makedumpfile version 1.4.4 or later. This feature is disabled by + default. To enable this feature, build the crash utility in the + following manner: + (1) Install the LZO libraries by using the host system's package + manager or by directly downloading libraries from author's + website. The packages required are: + - lzo + - lzo-minilzo + - lzo-devel + The author's website is: http://www.oberhumer.com/opensource/lzo + (2) Create a CFLAGS.extra file and an LDFLAGS.extra file in top-level + crash sources directory: + - enter -DLZO in the CFLAGS.extra file + - enter -llzo2 in the LDFLAGS.extra file. + (3) Build crash with "make" as always. + * Only available as a source option for manual build in this + environment + o Fix for the included "trace" extension module. Without the patch, + if the module initialization sequence fails, a double-free in the + module may lead to a subsequent malloc() segmentation violation + in the crash session. + o Incorporated the "ipcs" extension module written by Qiao Nuohan + as a built-in command. The command displays the kernel's usage + of the System V shared memory, semaphore and message queue IPC + facilities. It differs from the original extension module by + fixing a failure scenario if the current task is exiting, and + adds a "-n pid|task" option, which displays the IPCS facilities + with respect to the namespace of a given pid or task. + o Fix for a gdb-7.3.1 regression that causes the line number capability + to fail with certain ranges of x86 base kernel text addresses. + Without the patch, the "dis -l <symbol>" or "sym <symbol>" + commands would fail to show line number information for certain + ranges of base kernel text addresses. + o Added a new "printm" command to the embedded gdb module. It + is currently only used by the "pstruct" extension module, but + can be used to dump the type, size, offset, bitpos and bitsize + values of an expression. + o Added a new "runq -t" option that displays the timestamp information + of each cpu's runqueue, which consists of either the rq.clock, the + rq.most_recent_timestamp or rq.timestamp_last_tick value, whichever + applies. Following each cpu timestamp is the last_run or timestamp + value of the active task on that cpu, whichever applies, along with + the task identification. + o Fix for an initialization-time warning when running on a live system + with the most recent version of the modprobe command, which no longer + supports the -l and --type options. The modprobe is used to detect + whether the crash.ko memory driver is part of the distribution. + Without the patch, a warning message is issued that indicates + "/sbin/modprobe: invalid option -- 'l'". If the driver is built into + the kernel, the message is harmless. If the driver is not built into + kernel, then the crash.ko (/dev/crash) driver would not be selected + as the live memory source. + +------------------------------------------------------------------- +Thu May 17 07:54:29 UTC 2012 - [email protected] + +- delete crash-foreach-match-running.patch: upstream + +------------------------------------------------------------------- +Mon May 14 20:24:51 UTC 2012 - [email protected] + +- Update to crash 6.0.6 from upstream + o Extend the supported cross-architecture build capability so + that it applies to the SIAL extentension module. Without the + patch, when building the SIAL module an environment where the + overlying crash utility was built with "make target=ARM", + "make target=PPC", or "make target=X86", the SIAL extension + module would continue to be built for the host architecture + o Fixes for memory leaks and possible segmentation violations + when unloading SIAL extension module scripts. + o Fix for the new "foreach RU" task state qualifier. Without the + patch, the runnable tasks are not selected. + o Fix to disallow multiple task states from being entered using + the "foreach <task-state>" qualifier. Without the patch, if + multiple states were entered, the last one on the command line + would be honored. + o Fix for the "extend" command to allow the usage of 32-bit PPC + extension modules. Without the patch, the command fails with the + message: "extend: <object>.so: not an ELF format object file". + o If an input line starts with "#" or "//", then the line will be + saved as a comment that is visible when re-cycling through the + command history list. + o Fix for a crash-5.1.9 regression that broke the "bt -g" option. + Without the patch, the option is ignored completely. + o Fix for s390x virtual-to-physical translation of virtual + addresses that are backed by 1MB pages. + o The s390x has a dumpfile method that creates "live dumps", where + the kernel continues to run while the dumpfile is being created. + The initial system banner display and the "sys" command will + inform the user that the dumpfile is a "[LIVE DUMP]", and the + "bt -a" option will fail with the message "bt: -a option not + supported on a live system or live dump". + o Newly-created dumpfiles generated by the "snap.c" extension module + will now be recognized as "live dumps". Accordingly, the initial + system banner display and the "sys" command will inform the user + that the dumpfile is a "[LIVE DUMP]", and the "bt -a" option will + fail with the message "bt: -a option not supported on a live + system or live dump". + o If "bt" alone is attempted on an active task in a "live dump", it + will indicate "(active)", i.e., the same as if it were attempted + on a live system. + o If an extension module does not define the appropriate architecture, + i.e., "-DX86", "-DX86_64", etc., then the inclusion of "defs.h" + will generate a compiler failure indicating "error: 'NR_CPUS' + undeclared here (not in a function)". In that case, the + architecture will now default to that of the host machine. + o Prevent a highly-unlikely incorrect calculation of the maximum + cpudata array length of a kmem_cache during initialization of + of CONFIG_SLAB kernels. + o Prevent an infinite loop during the initialization of the + kmem_cache subsystem in CONFIG_SLAB kernels if the cache list or + the vmcore is corrupt. If the kmem_cache list links back into + itself, messages showing the first "duplicate" entry in the list + and "crash: unable to initialize kmem slab cache subsystem" will + be displayed. + o Update to the "mod" command to additionally search for module + object files in the directory containing the kernel namelist + (vmlinux) file. This will allow an alternate module-debuginfo + directory tree to be set up like so: + + # cd <directory> + # rpm2cpio kernel-debuginfo-<release>.rpm | cpio -idv + + Having done that, and by referencing the vmlinux file in that + directory tree directly or by symbolic link, the "mod" command + will search for module object files starting from the directory + containing the vmlinux file if they are not found in the standard + /lib/modules/<release> directory. + o Update to the s390x "bt" command if a task was running in + userspace. Without the patch, the back trace display ended at the ++++ 2196 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:12.2:Update/.crash.1648.new/crash.changes New: ---- README.SUSE crash-6.0.7.tar.gz crash-crosscrash-hint.diff crash-debuginfo-compressed.patch crash-kmp-preamble crash-make-emacs-default.diff crash-missing-declarations.patch crash-rl_digit_loop-return.patch crash-sial-ps-2.6.29.diff crash-sles9-quirk.patch crash-sles9-time.patch crash.changes crash.spec crash_enable_lzo_support.patch crash_whitepaper-2003.tar.bz2 depmod.sh gcore-2011-09-22.tar.bz2 get-kernel-flavors.sh mkinitrd.sh rpmlintrc sial-scripts-2008-02-08.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crash.spec ++++++ # # spec file for package crash # # 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 # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define crash_version 6.0.7 %define whitepaper_version 2003 %define scripts_version 2008-02-08 %define gcore_version 2011-09-22 Name: crash %ifarch ppc %define build_sial 0 %else %define build_sial 1 %endif %ifarch %ix86 x86_64 %define build_gcore 1 %else %define build_gcore 0 %endif %define build_kmp 1 Url: http://people.redhat.com/anderson/ Summary: Crash utility for live systems; netdump, diskdump, LKCD or mcore dumpfiles License: GPL-3.0+ ; GFDL-1.2 Group: Development/Tools/Debuggers Version: %{crash_version} Release: 0 Source: %{name}-%{version}.tar.gz Source2: crash_whitepaper-%{whitepaper_version}.tar.bz2 Source3: README.SUSE Source4: sial-scripts-%{scripts_version}.tar.bz2 Source5: gcore-%{gcore_version}.tar.bz2 Source95: get-kernel-flavors.sh Source96: depmod.sh Source97: mkinitrd.sh Source98: %{name}-kmp-preamble Source99: rpmlintrc BuildRoot: %{_tmppath}/%{name}-%{version}-build Patch1: %{name}-make-emacs-default.diff Patch2: %{name}-sles9-quirk.patch Patch4: %{name}-sles9-time.patch Patch6: %{name}-crosscrash-hint.diff Patch7: %{name}-rl_digit_loop-return.patch Patch8: %{name}-missing-declarations.patch Patch9: %{name}-debuginfo-compressed.patch Patch10: %{name}_enable_lzo_support.patch Patch90: %{name}-sial-ps-2.6.29.diff BuildRequires: bison BuildRequires: flex BuildRequires: lzo-devel BuildRequires: ncurses-devel BuildRequires: zlib-devel Requires: /usr/bin/nm ExclusiveArch: %ix86 x86_64 ia64 s390 s390x ppc64 alpha # Source code says it can do ppc32. Excluded here? ExcludeArch: ppc # crash driver KMP %if %build_kmp BuildRequires: kernel-syms BuildRequires: module-init-tools %if 0%{?suse_version} >= 1130 BuildRequires: kernel-devel %endif %endif %if %build_kmp %if 0%{?suse_version} >= 920 %suse_kernel_module_package -n crash -p %_sourcedir/%{name}-kmp-preamble um %define arch %_target_cpu %define kmp_pkg KMP %else %define kver %(rpm -q --qf '%{VERSION}-%{RELEASE}' kernel-source) %define kver_ %(rpm -q --qf '%{VERSION}_%{RELEASE}' kernel-source) %define arch %(echo %_target_cpu | sed -e 's/i.86/i386/') %define flavors_to_build %(sh %_sourcedir/get-kernel-flavors.sh %arch) %define kmp_pkg kmp %endif %endif %description The core analysis suite is a self-contained tool that can be used to investigate either live systems, kernel core dumps created from the netdump and diskdump packages from Red Hat Linux, the mcore kernel patch offered by Mission Critical Linux, or the LKCD kernel patch. Authors: -------- David Anderson <[email protected]> %package doc Requires: %{name} = %{version} Summary: Documentation for Crash License: GFDL-1.2 Group: Development/Tools/Debuggers %description doc This subpackage contains the crash whitepaper from Dave Anderson. Authors: -------- David Anderson <[email protected]> %package devel Requires: %{name} = %{version} Summary: Development files for crash License: GPL-2.0+ Group: Development/Tools/Debuggers %description devel This files are required to build extensions for crash. Crash is the core analysis suite that can be used to investigate either live systems, kernel core dumps created from the netdump and diskdump packages from Red Hat Linux, the mcore kernel patch offered by Mission Critical Linux, or the LKCD kernel patch. Authors: -------- David Anderson <[email protected]> %if %build_sial %package sial Requires: %{name} = %{version} Summary: SIAL extension for crash License: GPL-2.0+ Group: Development/Tools/Debuggers %description sial This module is a prerequisite for the loading of SIAL scripts. Upon loading the sial.so object file with extend, any SIAL scripts located in the /usr/share/sial/crash or $HOME/.sial directories will be loaded automatically. Authors: -------- David Anderson <[email protected]> %endif %if %build_gcore %package gcore Requires: %{name} = %{version} Summary: Gcore extension for crash License: GPL-2.0+ Group: Development/Tools/Debuggers %description gcore Create a core dump file of a user-space task that was running in a kernel dumpfile. Authors: -------- Daisuke Hatayama <[email protected]> %endif %if %build_kmp %package %kmp_pkg Summary: Memory driver for the crash utility License: GPL-2.0 Group: System/Kernel %if 0%{?suse_version} < 920 Version: %{version}_%{kver_} Release: 0 Requires: kernel = %kver %endif %description %kmp_pkg To run the crash utility on a live system, a memory device must be present. Due to many limitations of the /dev/mem interface, a separate kernel module is provided to access all RAM through the /dev/crash device. Authors: -------- David Anderson <[email protected]> %endif %prep %setup -q -a 2 -a 4 %patch1 -p1 %patch2 -p1 %patch4 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 ## SIAL patches cd sial-scripts-%{scripts_version} %patch90 -p1 cd - ## gcore extension cd extensions tar xfvj %{S:5} cd - cp %{S:3} . mkdir kbuild %build export CFLAGS="$RPM_OPT_FLAGS -fno-builtin-memset -fno-strict-aliasing" make RPMPKG="`cat .rh_rpm_package`" %{?jobs:-j%jobs} make extensions %{?jobs:-j%jobs} %if %build_kmp export EXTRA_CFLAGS='-DVERSION=\"%version\"' for flavor in %flavors_to_build; do rm -rf kbuild/$flavor cp -r memory_driver kbuild/$flavor make -C /usr/src/linux-obj/%arch/$flavor modules \ M=$PWD/kbuild/$flavor done %endif %install mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_libdir} make DESTDIR=%{buildroot} install mkdir -p %{buildroot}%{_mandir}/man8 install -m 0644 crash.8 %{buildroot}%{_mandir}/man8/crash.8 # devel files mkdir -p $RPM_BUILD_ROOT/%{_includedir}/crash install -m 0644 defs.h $RPM_BUILD_ROOT/%{_includedir}/crash # permissions chmod 644 COPYING3 # extensions mkdir -p $RPM_BUILD_ROOT/%{_libdir}/crash/extensions %if %build_gcore install -m 0644 extensions/gcore.so $RPM_BUILD_ROOT/%{_libdir}/crash/extensions %endif %if %build_sial install -m 0644 extensions/sial.so $RPM_BUILD_ROOT/%{_libdir}/crash/extensions # scripts mkdir -p $RPM_BUILD_ROOT/%{_datadir}/sial/crash install -m 0644 sial-scripts-%{scripts_version}/*.c \ $RPM_BUILD_ROOT/%{_datadir}/sial/crash %endif %if %build_kmp # memory driver module export INSTALL_MOD_PATH=$RPM_BUILD_ROOT export INSTALL_MOD_DIR=updates for flavor in %flavors_to_build; do make -C /usr/src/linux-obj/%arch/$flavor modules_install \ M=$PWD/kbuild/$flavor done # Ugly SLES9-style KMP %if 0%{?suse_version} < 920 set -- $(ls $RPM_BUILD_ROOT/lib/modules) KERNELRELEASES=$* set -- $(find $RPM_BUILD_ROOT/lib/modules -type f -name '*.ko' \ | sed -e 's:.*/::' -e 's:\.ko$::' | sort -u) MODULES=$* ( cat <<-EOF # IMPORTANT: Do not change the KERNELRELEASES definition; it will be # replaced during driver reuse! KERNELRELEASES="$KERNELRELEASES" MODULES="$MODULES" EOF cat %_sourcedir/depmod.sh cat %_sourcedir/mkinitrd.sh ) > post_postun.sh %post kmp -f post_postun.sh %postun kmp -f post_postun.sh %endif %endif %clean rm -rf %{buildroot} %files %defattr(-,root,root) %{_bindir}/crash %{_mandir}/man8/crash.8* %doc README README.SUSE COPYING3 %dir %{_libdir}/crash %dir %{_libdir}/crash/extensions %files devel %defattr(-,root,root) %{_includedir}/* %files doc %defattr(-,root,root) %doc crash_whitepaper/* %if %build_sial %files sial %defattr(-,root,root) %doc extensions/libsial/README %{_libdir}/crash/extensions/sial.so %{_datadir}/sial/crash %dir %{_datadir}/sial %endif %if %build_gcore %files gcore %defattr(-,root,root) %{_libdir}/crash/extensions/gcore.so %doc extensions/README.gcore %endif %if build_kmp %if 0%{?suse_version} < 920 %files %kmp_pkg %defattr(-,root,root) /lib/modules/* %endif %endif %changelog ++++++ README.SUSE ++++++ Changes in the SUSE package =========================== - Emacs is the default editing mode, can still be overwritten to vi mode via command line or configuration file - added the Crash Whitepaper from http://people.redhat.com/anderson/.crash_whitepaper/ - fix for LKCD header (SLES9 has another header format than SLES10) in IA64 SIAL ==== To use the SIAL extension, install crash-sial and load it with "extend sial.so" in crash. If you want to have the sial extension automatically loaded at startup, add this command to your ~/.crashrc configuration file. Place custom scripts in /usr/share/sial/crash (system wide) or ~/.sial (per user). ++++++ crash-crosscrash-hint.diff ++++++ From: Bernhard Walle <[email protected]> Subject: [PATCH] Add crosscrash hint Patch-mainline: never References: FATE #302896 This patch gives the user a hint to try the 'crosscrash' tool when he tries to open a dump from a different architecture. Signed-off-by: Bernhard Walle <[email protected]> --- tools.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) Index: crash-6.0.7/tools.c =================================================================== --- crash-6.0.7.orig/tools.c +++ crash-6.0.7/tools.c @@ -4817,7 +4817,12 @@ machine_type_mismatch(char *file, char * fprintf(fp, " crash utility: %s\n", MACHINE_TYPE); fprintf(fp, " %s: %s%s%s\n\n", file, e_machine, alt ? " or " : "", alt ? alt : ""); - + + fprintf(fp, "\n"); + fprintf(fp, "NOTE: You might want to try the 'crosscrash' tool which is\n"); + fprintf(fp, " distributed in the 'crosscrash' package on SUSE Linux.\n"); + fprintf(fp, "\n"); + return TRUE; } void ++++++ crash-debuginfo-compressed.patch ++++++ From: Petr Tesarik <[email protected]> Subject: Search debuginfo files in the original directory References: bnc#723639 If debuginfo is in a separate file and the kernel image is compressed, then it should be found in the same directory as the original (compressed) image, not in the directory with the uncompressed image (TMPDIR). Signed-off-by: Petr Tesarik <[email protected]> --- symbols.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) --- a/symbols.c +++ b/symbols.c @@ -183,9 +183,9 @@ symtab_init(void) * Pull a bait-and-switch on st->bfd if we've got a separate * .gnu_debuglink file that matches the CRC. Not done for kerntypes. */ - if (!(LKCD_KERNTYPES()) && - !(bfd_get_file_flags(st->bfd) & HAS_SYMS)) { - if (!check_gnu_debuglink(st->bfd)) + if (!(LKCD_KERNTYPES())) { + if (!check_gnu_debuglink(st->bfd) && + !(bfd_get_file_flags(st->bfd) & HAS_SYMS)) no_debugging_data(FATAL); } @@ -244,13 +244,16 @@ check_gnu_debuglink(bfd *bfd) char *contents; int crc_offset; unsigned long crc32; + char *namelist; char *dirname; char *namelist_debug; char **matching; + namelist = pc->namelist_orig ? pc->namelist_orig : pc->namelist; + sect = bfd_get_section_by_name(bfd, ".gnu_debuglink"); if (!sect) { - error(INFO, "%s: no .gnu_debuglink section\n", pc->namelist); + error(INFO, "%s: no .gnu_debuglink section\n", namelist); return FALSE; } @@ -271,14 +274,14 @@ check_gnu_debuglink(bfd *bfd) contents, crc32); if ((pc->debuginfo_file = (char *) - malloc(((strlen(pc->namelist) + strlen("/.debug/") + + malloc(((strlen(namelist) + strlen("/.debug/") + + strlen(".debug") + strlen(" /usr/lib/debug/boot/ "))*10) + strlen(pc->namelist_debug ? pc->namelist_debug : " "))) == NULL) error(FATAL, "debuginfo file name malloc: %s\n", strerror(errno)); - dirname = GETBUF(strlen(pc->namelist)+1); - strcpy(dirname, pc->namelist); + dirname = GETBUF(strlen(namelist)+1); + strcpy(dirname, namelist); for (i = strlen(dirname)-1; i >= 0; i--) { ++++++ crash-kmp-preamble ++++++ Requires: kernel-%1 ++++++ crash-make-emacs-default.diff ++++++ --- main.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) --- a/main.c +++ b/main.c @@ -1025,12 +1025,6 @@ setup_environment(int argc, char **argv) pc->flags |= READLINE; pc->editing_mode = "no_mode"; - if ((p1 = getenv("EDITOR"))) { - if (strstr(p1, "vi")) - pc->editing_mode = "vi"; - if (strstr(p1, "emacs")) - pc->editing_mode = "emacs"; - } /* * Resolve $HOME .rc file first, then the one in the local directory. @@ -1080,7 +1074,7 @@ setup_environment(int argc, char **argv) } if (STREQ(pc->editing_mode, "no_mode")) - pc->editing_mode = "vi"; + pc->editing_mode = "emacs"; machdep_init(SETUP_ENV); } ++++++ crash-missing-declarations.patch ++++++ From: Petr Tesarik <[email protected]> Subject: Add missing includes This fixes a compilation failure on ppc64. --- gdb-7.3.1.patch | 10 ++++++++++ 1 file changed, 10 insertions(+) --- a/gdb-7.3.1.patch +++ b/gdb-7.3.1.patch @@ -1253,6 +1253,16 @@ ./pex-djgpp.$(objext) ./pex-msdos.$(objext) \ ./pex-unix.$(objext) ./pex-win32.$(objext) \ ./putenv.$(objext) \ +--- gdb-7.3.1/sim/common/gentmap.c.orig ++++ gdb-7.3.1/sim/common/gentmap.c +@@ -2,6 +2,7 @@ + + #include <stdio.h> + #include <stdlib.h> ++#include <string.h> + + 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-rl_digit_loop-return.patch ++++++ --- gdb-7.3.1.patch | 9 +++++++++ 1 file changed, 9 insertions(+) --- a/gdb-7.3.1.patch +++ b/gdb-7.3.1.patch @@ -1177,6 +1177,15 @@ extern int rl_show_char PARAMS((int)); --- gdb-7.3.1/readline/misc.c.orig +++ gdb-7.3.1/readline/misc.c +@@ -212,6 +212,8 @@ rl_digit_loop () + if (r <= 0 || (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)) + break; + } ++ ++ return r; + } + + /* Create a default argument. */ @@ -401,7 +401,7 @@ _rl_history_set_point () #if defined (VI_MODE) ++++++ crash-sial-ps-2.6.29.diff ++++++ diff -Nurp sial-scripts-2008-02-08.orig//ps.c sial-scripts-2008-02-08/ps.c --- sial-scripts-2008-02-08.orig//ps.c 2010-03-12 19:59:03.227788951 +0100 +++ sial-scripts-2008-02-08/ps.c 2010-03-12 19:59:16.690665574 +0100 @@ -192,7 +192,11 @@ string cmd; printf("%p %7d %7d %7d 0x%02x 0x%08x %5d:%-5d %s\n" , t +#if LINUX_RELEASE > 0x02061d + , t->real_cred->uid +#else , t->uid +#endif , t->pid #if LINUX_2_6_X , t->parent->pid ++++++ crash-sles9-quirk.patch ++++++ From: Bernhard Walle <[email protected]> Subject: [PATCH] Add quirk for SLES9 LKCD header Patch-mainline: never On SLES9, we have a different header on IA64: SLES 10: typedef struct __dump_header_asm { uint64_t dha_magic_number; uint32_t dha_version; uint32_t dha_header_size; uint64_t dha_pt_regs; struct pt_regs dha_regs; uint64_t dha_rnat; uint64_t dha_pfs; uint64_t dha_bspstore; uint32_t dha_smp_num_cpus; uint32_t dha_dumping_cpu; struct pt_regs dha_smp_regs[NR_CPUS]; uint64_t dha_smp_current_task[NR_CPUS]; uint64_t dha_stack[NR_CPUS]; uint64_t dha_stack_ptr[NR_CPUS]; uint64_t dha_kernel_addr; } __attribute__((packed)) dump_header_asm_t; SLES 9: typedef struct __dump_header_asm { uint64_t dha_magic_number; uint32_t dha_version; uint32_t dha_header_size; uint64_t dha_kernel_addr; uint64_t dha_pt_regs; struct pt_regs dha_regs; uint64_t dha_rnat; uint64_t dha_pfs; uint64_t dha_bspstore; uint32_t dha_smp_num_cpus; uint32_t dha_dumping_cpu; struct pt_regs dha_smp_regs[NR_CPUS]; uint64_t dha_smp_current_task[NR_CPUS]; uint64_t dha_stack[NR_CPUS]; uint64_t dha_stack_ptr[NR_CPUS]; } __attribute__((packed)) dump_header_asm_t; That patch tries to guess if it's a SLES 9 or a SLES 10 header at runtime. Signed-off-by: Bernhard Walle <[email protected]> --- lkcd_v8.c | 11 +++++++++++ 1 file changed, 11 insertions(+) --- a/lkcd_v8.c +++ b/lkcd_v8.c @@ -130,6 +130,17 @@ lkcd_dump_init_v8_arch(dump_header_t *dh goto err; } +#if IA64 + /* SLES9 on IA64? */ + if ( *((uint64_t *)(hdr_buf + hdr_size - sizeof(uint64_t))) <= NR_CPUS) { + uint64_t kernel_addr; + kernel_addr = ((dump_header_asm_t *)hdr_buf)->dha_pt_regs; + memmove(hdr_buf + offsetof(dump_header_asm_t, dha_pt_regs), + hdr_buf + offsetof(dump_header_asm_t, dha_regs), + hdr_size - offsetof(dump_header_asm_t, dha_regs)); + *((uint64_t *)(hdr_buf + hdr_size - sizeof(uint64_t))) = kernel_addr; + } +#endif /* * Though we have KL_NR_CPUS is 128, the header size is different ++++++ crash-sles9-time.patch ++++++ From: Alan Tyson <[email protected]> Subject: [PATCH] Fix "uptime" and "ps -t" for SLES9 References: 352836 This patch adds a quirk for SLES9 jiffies initialisation and corrects the time data in "uptime" and "ps -t" command. Acked-by: Bernhard Walle <[email protected]> --- defs.h | 8 ++++++++ kernel.c | 9 ++++++++- task.c | 11 +++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) Index: crash-6.0.7/defs.h =================================================================== --- crash-6.0.7.orig/defs.h +++ crash-6.0.7/defs.h @@ -657,6 +657,7 @@ struct kernel_table { ulong p2m_missing; } pvops_xen; int highest_irq; + int is_suse_kernel; #define IKCONFIG_AVAIL 0x1 /* kernel contains ikconfig data */ #define IKCONFIG_LOADED 0x2 /* ikconfig data is currently loaded */ int ikconfig_flags; @@ -5357,6 +5358,13 @@ extern struct lkcd_environment *lkcd; #endif /* LKCD_COMMON */ + +/* + * SUSE specific + */ +#define is_SLES9() \ + ((THIS_KERNEL_VERSION == LINUX(2,6,5)) && kt->is_suse_kernel) + /* * gdb_interface.c */ Index: crash-6.0.7/kernel.c =================================================================== --- crash-6.0.7.orig/kernel.c +++ crash-6.0.7/kernel.c @@ -216,6 +216,12 @@ kernel_init() verify_version(); + /* + * check if we have a suse kernel (this is the module supported + * patch of [email protected] + */ + kt->is_suse_kernel = symbol_exists("unsupported"); + if (symbol_exists("__per_cpu_offset")) { if (LKCD_KERNTYPES()) i = get_cpus_possible(); @@ -4271,7 +4277,7 @@ get_uptime(char *buf, ulonglong *j64p) if (symbol_exists("jiffies_64")) { get_symbol_data("jiffies_64", sizeof(ulonglong), &jiffies_64); - if (THIS_KERNEL_VERSION >= LINUX(2,6,0)) { + if (THIS_KERNEL_VERSION >= LINUX(2,6,0) && !is_SLES9()) { wrapped = (jiffies_64 & 0xffffffff00000000ULL); if (wrapped) { wrapped -= 0x100000000ULL; @@ -4805,6 +4811,7 @@ no_cpu_flags: fprintf(fp, " p2m_top: %lx\n", kt->pvops_xen.p2m_top); fprintf(fp, " p2m_top_entries: %d\n", kt->pvops_xen.p2m_top_entries); fprintf(fp, " p2m_missing: %lx\n", kt->pvops_xen.p2m_missing); + fprintf(fp, " is_suse_kernel: %ld\n", kt->is_suse_kernel); } /* Index: crash-6.0.7/task.c =================================================================== --- crash-6.0.7.orig/task.c +++ crash-6.0.7/task.c @@ -3554,6 +3554,12 @@ start_time_timespec(void) default: break; } + /* SLES9 stores start_time in nanoseconds, so set TIMESPEC in order */ + /* to do the right calculations in convert_start_time */ + if (is_SLES9()) { + tt->flags |= TIMESPEC; + return TRUE; + } tt->flags |= NO_TIMESPEC; @@ -3585,6 +3591,11 @@ convert_start_time(ulonglong start_time, ulong tmp1, tmp2; ulonglong wrapped; + /* SLES9's start_time is neither jiffies nor a timespec. It's ns */ + if (is_SLES9()) { + start_time = start_time / 1000000000; + } + switch(tt->flags & (TIMESPEC | NO_TIMESPEC)) { case TIMESPEC: ++++++ crash_enable_lzo_support.patch ++++++ --- CFLAGS.extra | 1 + LDFLAGS.extra | 1 + 2 files changed, 2 insertions(+) --- /dev/null +++ b/CFLAGS.extra @@ -0,0 +1 @@ +-DLZO --- /dev/null +++ b/LDFLAGS.extra @@ -0,0 +1 @@ +-llzo2 ++++++ depmod.sh ++++++ # Need to call depmod when the list of modules changes for kernelrelease in $KERNELRELEASES; do if [ -e /boot/System.map-$kernelrelease ]; then depmod -a -F /boot/System.map-$kernelrelease $kernelrelease fi done ++++++ get-kernel-flavors.sh ++++++ #! /bin/sh arch=$1 flavors= for flavor in $(ls /usr/src/linux-obj/$arch 2>/dev/null); do if [ "$flavor" = um ]; then continue fi flavors="$flavors $flavor" done echo $flavors ++++++ mkinitrd.sh ++++++ # If one of the modules in this package is in the initrd, # we need to recreate the initrd. if [ -e /etc/sysconfig/kernel -a -f /etc/fstab ]; then source /etc/sysconfig/kernel run_mkinitrd= for module in $INITRD_MODULES; do case " $MODULES " in *" $module "*) run_mkinitrd=1 break ;; esac done if [ -n "$run_mkinitrd" ]; then for kernelrelease in $KERNELRELEASES; do for image in vmlinuz image vmlinux linux bzImage; do if [ -f /boot/$image-$kernelrelease ]; then /sbin/mkinitrd -k /boot/$image-$kernelrelease \ -i /boot/initrd-$kernelrelease \ || exit 1 fi done done fi fi ++++++ rpmlintrc ++++++ addFilter("devel-file-in-non-devel-package .*/usr/share/sial/crash.*") # crash-6.0.6.tar compresses better with gzip than with bzip2 addFilter(" source-or-patch-not-bzipped crash-6.0.6.tar.gz") addFilter(" source-or-patch-not-compressed bz2 crash-6.0.6.tar.gz") -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
