Hello community, here is the log from the commit of package crash.2807 for openSUSE:13.1:Update checked in at 2014-05-19 11:26:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:13.1:Update/crash.2807 (Old) and /work/SRC/openSUSE:13.1:Update/.crash.2807.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crash.2807" Changes: -------- New Changes file: --- /dev/null 2014-05-19 01:51:27.372033255 +0200 +++ /work/SRC/openSUSE:13.1:Update/.crash.2807.new/crash.changes 2014-05-19 11:26:08.000000000 +0200 @@ -0,0 +1,2475 @@ +------------------------------------------------------------------- +Fri Sep 13 07:20:59 UTC 2013 - [email protected] + +- crash-crosscrash-hint.diff: Removed, because crosscrash isn't + maintained any longer. + +------------------------------------------------------------------- +Thu Sep 12 19:03:05 UTC 2013 - [email protected] + +- Implementation of v7.0.2 from upstream. + o See http://people.redhat.com/anderson/crash.changelog.html + for a complete list of changes from 6.1.3. + +- crash-rl_digit_loop-return.patch - removed +- crash-missing-declarations.patch - refreshed +- crash-rl_digit_loop-return.patch - refreshed +- eppic-switch-to-system-lib.patch - refreshed + +------------------------------------------------------------------- +Fri May 10 21:56:52 UTC 2013 - [email protected] + +- Implementation of v6.1.3 from upstream. + + crash-display-date-fix.patch - removed/redundant + crash-kmem_cache_slab.patch - removed/redundant + crash-siginfo.patch - removed/redundant + crash-var_length_log_rec.patch - removed/redundant + + eppic-switch-to-system-lib.patch - Implementation of EPPIC via + system library rather than retrieve and include in build. Added + eppic constants to spec file without removing the sial constants + for now. + + crash-crosscrash-hint.diff - refreshed + crash-make-emacs-default.diff - refreshed + crash-sles9-time.patch - refreshed + +------------------------------------------------------------------- +Wed Feb 27 06:23:31 UTC 2013 - [email protected] + +- update license to new format + +------------------------------------------------------------------- +Mon Feb 4 23:26:14 UTC 2013 - [email protected] + +- Re-execution of 150764 by [email protected] to re-align patch + content, re-number patches for latest spec contents and to + remove some incidental content (e.g. whitespace insertion and + leftover comments of new lines). Comment from tabraham follows: + + - added crash-display-date-fix.patch + This is a backport of the fix from crash-6.0.9 to fix the date + displayed by the initial system banner and by the "sys" command + for linux kernel 3.6 and later. Without the patch, the date + displayed will be that of the UNIX epoch adjusted to local time. + + - added crash-kmem_cache_slab.patch + This is a backport of the fix from crash-6.1.0 for Linux 3.0 and + later kernels that have been configured with CONFIG_SLAB and with- + out CONFIG_NODES_SHIFT. Without the patch, the warning messages + "crash: nr_node_ids: symbol does not exist" and "crash: unable to + initialize kmem slab cache subsystem" are displayed during + initialization, and the "kmem -[sS]" options fail with the message + "kmem: kmem cache slab subsystem not available". + +------------------------------------------------------------------- +Mon Feb 4 18:47:06 UTC 2013 - [email protected] + +- crash-compressed-booted-kernel.patch: Fix for "crash when invoked + without arguments fails to analyze the live system" (bnc#777516). + +------------------------------------------------------------------- +Fri Jan 25 20:33:38 UTC 2013 - [email protected] + +- crash-var_length_log_rec.patch: support variable-length record + kernel log buffer present in kernel 3.5 and later (bnc#796151). + +------------------------------------------------------------------- +Sun Jul 29 07:04:13 UTC 2012 - [email protected] + +- Fix build with glibc 2.16 (struct siginfo -> siginfo_t). + +------------------------------------------------------------------- +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 ++++ 2278 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:13.1:Update/.crash.2807.new/crash.changes New: ---- README.SUSE crash-7.0.2.tar.gz crash-compressed-booted-kernel.patch crash-debuginfo-compressed.patch crash-kmp-preamble crash-make-emacs-default.diff crash-missing-declarations.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 eppic-switch-to-system-lib.patch 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) 2013 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 7.0.2 %define whitepaper_version 2003 %define scripts_version 2008-02-08 %define gcore_version 2011-09-22 Name: crash %ifarch ppc %define build_sial 0 %define build_eppic 0 %else %define build_sial 0 %define build_eppic 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+ and 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 Patch8: %{name}-missing-declarations.patch Patch9: %{name}-debuginfo-compressed.patch Patch10: %{name}_enable_lzo_support.patch Patch11: %{name}-compressed-booted-kernel.patch Patch12: eppic-switch-to-system-lib.patch Patch90: %{name}-sial-ps-2.6.29.diff BuildRequires: bison BuildRequires: flex BuildRequires: libeppic-devel 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_eppic %package eppic Requires: %{name} = %{version} %if %build_sial # Nothing to do %else Provides: %{name}-sial = %{version} Obsoletes: %{name}-sial < %{version} %endif Summary: Embeddable Pre-Processor and Interpreter for C extension for crash License: GPL-2.0+ Group: Development/Tools/Debuggers %description eppic EPPIC is a C interpreter that permits easy access to the symbol and type information stored in a executable image like a coredump or live memory interfaces (e.g. /dev/kmem, /dev/mem). Although it has a strong association with live or postmortem kernel analysis, it is not constraint to it and can be embedded in any tools that is C friendly. Authors: -------- Luc Chouinard <[email protected]> %endif %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 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 ## SIAL patches cd sial-scripts-%{scripts_version} %patch90 -p1 cd - ## gcore extension cd extensions tar xfvj %{S:5} cd - %patch12 -p1 cp %{S:3} . mkdir kbuild %build export CFLAGS="$RPM_OPT_FLAGS -fno-builtin-memset -fno-strict-aliasing" export GDB="gdb-%{gdb_version}" 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_eppic install -m 0644 extensions/eppic.so $RPM_BUILD_ROOT/%{_libdir}/crash/extensions %endif %if %build_sial install -m 0644 extensions/sial.so $RPM_BUILD_ROOT/%{_libdir}/crash/extensions %endif %if %build_eppic # 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_eppic %files eppic %defattr(-,root,root) %{_libdir}/crash/extensions/eppic.so %{_datadir}/sial/crash %dir %{_datadir}/sial %endif %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-compressed-booted-kernel.patch ++++++ --- filesys.c | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) --- a/filesys.c +++ b/filesys.c @@ -530,6 +530,8 @@ static int find_booted_kernel(void) { char kernel[BUFSIZE]; + char *kernel_unpacked; + char *real_kernel; char buffer[BUFSIZE]; char **searchdirs; int i, preferred, wrapped; @@ -579,16 +581,25 @@ find_booted_kernel(void) sprintf(kernel, "%s%s", searchdirs[i], dp->d_name); if (mount_point(kernel) || - !file_readable(kernel) || - !is_elf_file(kernel)) + !file_readable(kernel)) continue; + if (is_compressed_kernel(kernel, &kernel_unpacked)) + real_kernel = kernel_unpacked; + else { + kernel_unpacked = NULL; + real_kernel = kernel; + } + if (CRASHDEBUG(1)) fprintf(fp, "find_booted_kernel: check: %s\n", kernel); - found = match_file_string(kernel, kt->proc_version, buffer); - + if (!is_elf_file(real_kernel)) + continue; + + found = match_file_string(real_kernel, kt->proc_version, buffer); + if (found) break; } @@ -599,17 +610,25 @@ find_booted_kernel(void) build_searchdirs(DESTROY, NULL); if (found) { - if ((pc->namelist = (char *)malloc - (strlen(kernel)+1)) == NULL) + if ((pc->namelist_orig = strdup(kernel)) == NULL) + error(FATAL, "booted kernel real name malloc: %s\n", + strerror(errno)); + else if ((pc->namelist = strdup(real_kernel)) == NULL) error(FATAL, "booted kernel name malloc: %s\n", strerror(errno)); - else { - strcpy(pc->namelist, kernel); + else if (CRASHDEBUG(1)) fprintf(fp, "find_booted_kernel: found: %s\n", pc->namelist); + if (kernel_unpacked) + free(kernel_unpacked); return TRUE; - } + } + + if (kernel_unpacked) { + remove(kernel_unpacked); + if (kernel_unpacked) + free(kernel_unpacked); } error(INFO, ++++++ 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 @@ -1048,12 +1048,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. @@ -1103,7 +1097,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.6.patch | 10 ++++++++++ 1 file changed, 10 insertions(+) --- a/gdb-7.6.patch +++ b/gdb-7.6.patch @@ -17,6 +17,16 @@ ./pex-djgpp.$(objext) ./pex-msdos.$(objext) \ ./pex-unix.$(objext) ./pex-win32.$(objext) \ ./putenv.$(objext) \ +--- gdb-7.6/sim/common/gentmap.c.orig ++++ gdb-7.6/sim/common/gentmap.c +@@ -2,6 +2,7 @@ + + #include <stdio.h> + #include <stdlib.h> ++#include <string.h> + + struct tdefs { + char *symbol; --- gdb-7.6/opcodes/i386-dis.c.orig +++ gdb-7.6/opcodes/i386-dis.c @@ -11510,6 +11510,10 @@ print_insn (bfd_vma pc, disassemble_info ++++++ 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(-) --- a/defs.h +++ b/defs.h @@ -682,6 +682,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; @@ -5536,6 +5537,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 */ --- a/kernel.c +++ b/kernel.c @@ -237,6 +237,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(); @@ -4558,7 +4564,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; @@ -5110,6 +5116,7 @@ no_cpu_flags: if (symbol_exists("p2m_mid_missing")) fprintf(fp, " p2m_mid_missing: %lx\n", kt->pvops_xen.p2m_mid_missing); fprintf(fp, " p2m_missing: %lx\n", kt->pvops_xen.p2m_missing); + fprintf(fp, " is_suse_kernel: %ld\n", kt->is_suse_kernel); } /* --- a/task.c +++ b/task.c @@ -3669,6 +3669,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; @@ -3700,6 +3706,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 ++++++ eppic-switch-to-system-lib.patch ++++++ ++++ 1161 lines (skipped) ++++++ 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]
