Accepting request 412328 from Kernel:kdump
Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/412328 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/makedumpfile?expand=0&rev=61
This commit is contained in:
commit
597c9a1264
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:47d16312b3226f6d1a1e6548e22c33d00e8851fedab793d97da8d3c0a6205d4a
|
|
||||||
size 166881
|
|
3
makedumpfile-1.6.0.tar.gz
Normal file
3
makedumpfile-1.6.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e3147abc52df2ceac1e9affef45bf37e2f2e1d9979bc94a761ee11e4044072ac
|
||||||
|
size 175080
|
102
makedumpfile-_count-_refcount-rename.patch
Normal file
102
makedumpfile-_count-_refcount-rename.patch
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
|
Date: Fri, 17 Jun 2016 18:41:26 +0900
|
||||||
|
Subject: [PATCH v2] Support _count -> _refcount rename in struct page
|
||||||
|
Patch-mainline: Released-1-6-1?
|
||||||
|
Git-commit: 2c21d4656e8d3c2af2b1e14809d076941ae69e96
|
||||||
|
|
||||||
|
_count member was renamed to _refcount in linux commit 0139aa7b7fa12
|
||||||
|
("mm: rename _count, field of the struct page, to _refcount") and this
|
||||||
|
broke makedumpfile. The reason for making the change was to find all users
|
||||||
|
accessing it directly and not through the recommended API. I tried
|
||||||
|
suggesting to revert the change but failed, I see no other choice than to
|
||||||
|
start supporting both _count and _refcount in makedumpfile.
|
||||||
|
|
||||||
|
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
makedumpfile.c | 26 +++++++++++++++++++++-----
|
||||||
|
makedumpfile.h | 3 ++-
|
||||||
|
2 files changed, 23 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
--- a/makedumpfile.c
|
||||||
|
+++ b/makedumpfile.c
|
||||||
|
@@ -1579,7 +1579,14 @@ get_structure_info(void)
|
||||||
|
*/
|
||||||
|
SIZE_INIT(page, "page");
|
||||||
|
OFFSET_INIT(page.flags, "page", "flags");
|
||||||
|
- OFFSET_INIT(page._count, "page", "_count");
|
||||||
|
+ OFFSET_INIT(page._refcount, "page", "_refcount");
|
||||||
|
+ if (OFFSET(page._refcount) == NOT_FOUND_STRUCTURE) {
|
||||||
|
+ info->flag_use_count = TRUE;
|
||||||
|
+ OFFSET_INIT(page._refcount, "page", "_count");
|
||||||
|
+ } else {
|
||||||
|
+ info->flag_use_count = FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
OFFSET_INIT(page.mapping, "page", "mapping");
|
||||||
|
OFFSET_INIT(page._mapcount, "page", "_mapcount");
|
||||||
|
OFFSET_INIT(page.private, "page", "private");
|
||||||
|
@@ -2044,7 +2051,7 @@ get_mem_type(void)
|
||||||
|
|
||||||
|
if ((SIZE(page) == NOT_FOUND_STRUCTURE)
|
||||||
|
|| (OFFSET(page.flags) == NOT_FOUND_STRUCTURE)
|
||||||
|
- || (OFFSET(page._count) == NOT_FOUND_STRUCTURE)
|
||||||
|
+ || (OFFSET(page._refcount) == NOT_FOUND_STRUCTURE)
|
||||||
|
|| (OFFSET(page.mapping) == NOT_FOUND_STRUCTURE)) {
|
||||||
|
ret = NOT_FOUND_MEMTYPE;
|
||||||
|
} else if ((((SYMBOL(node_data) != NOT_FOUND_SYMBOL)
|
||||||
|
@@ -2151,7 +2158,10 @@ write_vmcoreinfo_data(void)
|
||||||
|
* write the member offset of 1st kernel
|
||||||
|
*/
|
||||||
|
WRITE_MEMBER_OFFSET("page.flags", page.flags);
|
||||||
|
- WRITE_MEMBER_OFFSET("page._count", page._count);
|
||||||
|
+ if (info->flag_use_count)
|
||||||
|
+ WRITE_MEMBER_OFFSET("page._count", page._refcount);
|
||||||
|
+ else
|
||||||
|
+ WRITE_MEMBER_OFFSET("page._refcount", page._refcount);
|
||||||
|
WRITE_MEMBER_OFFSET("page.mapping", page.mapping);
|
||||||
|
WRITE_MEMBER_OFFSET("page.lru", page.lru);
|
||||||
|
WRITE_MEMBER_OFFSET("page._mapcount", page._mapcount);
|
||||||
|
@@ -2491,7 +2501,13 @@ read_vmcoreinfo(void)
|
||||||
|
|
||||||
|
|
||||||
|
READ_MEMBER_OFFSET("page.flags", page.flags);
|
||||||
|
- READ_MEMBER_OFFSET("page._count", page._count);
|
||||||
|
+ READ_MEMBER_OFFSET("page._refcount", page._refcount);
|
||||||
|
+ if (OFFSET(page._refcount) == NOT_FOUND_STRUCTURE) {
|
||||||
|
+ info->flag_use_count = TRUE;
|
||||||
|
+ READ_MEMBER_OFFSET("page._count", page._refcount);
|
||||||
|
+ } else {
|
||||||
|
+ info->flag_use_count = FALSE;
|
||||||
|
+ }
|
||||||
|
READ_MEMBER_OFFSET("page.mapping", page.mapping);
|
||||||
|
READ_MEMBER_OFFSET("page.lru", page.lru);
|
||||||
|
READ_MEMBER_OFFSET("page._mapcount", page._mapcount);
|
||||||
|
@@ -5615,7 +5631,7 @@ __exclude_unnecessary_pages(unsigned lon
|
||||||
|
pcache = page_cache + (index_pg * SIZE(page));
|
||||||
|
|
||||||
|
flags = ULONG(pcache + OFFSET(page.flags));
|
||||||
|
- _count = UINT(pcache + OFFSET(page._count));
|
||||||
|
+ _count = UINT(pcache + OFFSET(page._refcount));
|
||||||
|
mapping = ULONG(pcache + OFFSET(page.mapping));
|
||||||
|
|
||||||
|
if (OFFSET(page.compound_order) != NOT_FOUND_STRUCTURE) {
|
||||||
|
--- a/makedumpfile.h
|
||||||
|
+++ b/makedumpfile.h
|
||||||
|
@@ -1100,6 +1100,7 @@ struct DumpInfo {
|
||||||
|
int flag_nospace; /* the flag of "No space on device" error */
|
||||||
|
int flag_vmemmap; /* kernel supports vmemmap address space */
|
||||||
|
int flag_excludevm; /* -e - excluding unused vmemmap pages */
|
||||||
|
+ int flag_use_count; /* _refcount is named _count in struct page */
|
||||||
|
unsigned long vaddr_for_vtop; /* virtual address for debugging */
|
||||||
|
long page_size; /* size of page */
|
||||||
|
long page_shift;
|
||||||
|
@@ -1483,7 +1484,7 @@ struct size_table {
|
||||||
|
struct offset_table {
|
||||||
|
struct page {
|
||||||
|
long flags;
|
||||||
|
- long _count;
|
||||||
|
+ long _refcount;
|
||||||
|
long mapping;
|
||||||
|
long lru;
|
||||||
|
long _mapcount;
|
32
makedumpfile-override-libtinfo.patch
Normal file
32
makedumpfile-override-libtinfo.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Subject: Allow to override the tinfo library used for eppic
|
||||||
|
Patch-mainline: never; only needed for compatibility with older ncurses
|
||||||
|
|
||||||
|
Allow to override the "-ltinfo" linker option with a make variable.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
Makefile | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -67,6 +67,8 @@ LIBS := -lsnappy $(LIBS)
|
||||||
|
CFLAGS += -DUSESNAPPY
|
||||||
|
endif
|
||||||
|
|
||||||
|
+TINFOLIB = -ltinfo
|
||||||
|
+
|
||||||
|
LIBS := -lpthread $(LIBS)
|
||||||
|
|
||||||
|
all: makedumpfile
|
||||||
|
@@ -90,7 +92,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(
|
||||||
|
gzip -c ./makedumpfile.conf.5 > ./makedumpfile.conf.5.gz
|
||||||
|
|
||||||
|
eppic_makedumpfile.so: extension_eppic.c
|
||||||
|
- $(CC) $(CFLAGS) $(LDFLAGS) -shared -rdynamic -o $@ extension_eppic.c -fPIC -leppic -ltinfo
|
||||||
|
+ $(CC) $(CFLAGS) $(LDFLAGS) -shared -rdynamic -o $@ extension_eppic.c -fPIC -leppic ${TINFOLIB}
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(OBJ) $(OBJ_PART) $(OBJ_ARCH) makedumpfile makedumpfile.8.gz makedumpfile.conf.5.gz
|
1
makedumpfile-rpmlintrc
Normal file
1
makedumpfile-rpmlintrc
Normal file
@ -0,0 +1 @@
|
|||||||
|
addFilter("devel-file-in-non-devel-package .*/usr/share/makedumpfile-1\.6\.0/eppic_scripts/.*\.c")
|
@ -1,3 +1,46 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 12 15:56:04 UTC 2016 - ptesarik@suse.com
|
||||||
|
|
||||||
|
- Rename Support-_count-_refcount-rename-in-struct-p.patch to
|
||||||
|
makedumpfile-_count-_refcount-rename.patch.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 12 12:16:40 UTC 2016 - ptesarik@suse.com
|
||||||
|
|
||||||
|
- Silence rpmlint errors about devel files in non-devel package;
|
||||||
|
despite their .c suffix, the provided eppic scripts are intended
|
||||||
|
for production, not development.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 12 10:08:41 UTC 2016 - ptesarik@suse.com
|
||||||
|
|
||||||
|
- Build and install the eppic extension.
|
||||||
|
- makedumpfile-override-libtinfo.patch: Allow to override the tinfo
|
||||||
|
library used for eppic.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 12 09:13:25 UTC 2016 - ptesarik@suse.com
|
||||||
|
|
||||||
|
- Update to 1.6.0
|
||||||
|
* Exclude page structures of non-dumped pages.
|
||||||
|
- Drop upstreamed patch
|
||||||
|
* Looking-for-page.compound_order-compound_dtor-.patch
|
||||||
|
* Skip-examining-compound-tail-pages.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 8 08:50:40 UTC 2016 - mkubecek@suse.cz
|
||||||
|
|
||||||
|
- Looking-for-page.compound_order-compound_dtor-.patch:
|
||||||
|
fix excluding hugepages (kernel 4.4 compatibility)
|
||||||
|
- Skip-examining-compound-tail-pages.patch
|
||||||
|
fix excluding compound tail pages (kernel 4.5 compatibility)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 8 05:57:04 UTC 2016 - mkubecek@suse.cz
|
||||||
|
|
||||||
|
- Support-_count-_refcount-rename-in-struct-p.patch:
|
||||||
|
support 4.7 kernel (page._count renamed to page._refcount)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sun Feb 14 08:11:59 UTC 2016 - mpluskal@suse.com
|
Sun Feb 14 08:11:59 UTC 2016 - mpluskal@suse.com
|
||||||
|
|
||||||
|
@ -23,23 +23,33 @@
|
|||||||
%define have_snappy 0
|
%define have_snappy 0
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?suse_version} < 1310 && 0%{?sles_version} < 12
|
||||||
|
%define ncurses_make_opts TINFOLIB=-lncurses
|
||||||
|
%endif
|
||||||
|
|
||||||
Name: makedumpfile
|
Name: makedumpfile
|
||||||
Version: 1.5.9
|
Version: 1.6.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Partial kernel dump
|
Summary: Partial kernel dump
|
||||||
License: GPL-2.0
|
License: GPL-2.0
|
||||||
Group: System/Kernel
|
Group: System/Kernel
|
||||||
Url: https://sourceforge.net/projects/makedumpfile/
|
Url: https://sourceforge.net/projects/makedumpfile/
|
||||||
Source: https://sourceforge.net/projects/makedumpfile/files/makedumpfile/%{version}/%{name}-%{version}.tar.gz
|
Source: https://sourceforge.net/projects/makedumpfile/files/makedumpfile/%{version}/%{name}-%{version}.tar.gz
|
||||||
|
Source99: %{name}-rpmlintrc
|
||||||
Patch0: %{name}-coptflags.diff
|
Patch0: %{name}-coptflags.diff
|
||||||
|
Patch1: %{name}-_count-_refcount-rename.patch
|
||||||
|
Patch2: %{name}-override-libtinfo.patch
|
||||||
BuildRequires: libdw-devel
|
BuildRequires: libdw-devel
|
||||||
BuildRequires: libebl-devel
|
BuildRequires: libebl-devel
|
||||||
BuildRequires: libelf-devel
|
BuildRequires: libelf-devel
|
||||||
|
BuildRequires: libeppic-devel
|
||||||
BuildRequires: lzo-devel
|
BuildRequires: lzo-devel
|
||||||
|
BuildRequires: ncurses-devel
|
||||||
BuildRequires: xz-devel
|
BuildRequires: xz-devel
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
ExclusiveArch: %ix86 x86_64 ia64 ppc ppc64 ppc64le s390x %arm aarch64
|
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 ppc64le s390x %{arm} aarch64
|
||||||
%if 0%{?suse_version} >= 1140 || 0%{?sles_version} >= 11
|
%if 0%{?suse_version} >= 1140 || 0%{?sles_version} >= 11
|
||||||
BuildRequires: libbz2-devel
|
BuildRequires: libbz2-devel
|
||||||
%else
|
%else
|
||||||
@ -58,18 +68,24 @@ via gdb or crash utility.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{have_snappy}
|
%if %{have_snappy}
|
||||||
export USESNAPPY=on
|
export USESNAPPY=on
|
||||||
%endif
|
%endif
|
||||||
make %{?_smp_mflags} COPTFLAGS="%{optflags}" USELZO=on LINKTYPE=dynamic
|
export USELZO=on
|
||||||
|
export LINKTYPE=dynamic
|
||||||
|
make %{?_smp_mflags} COPTFLAGS="%{optflags}" LDFLAGS="-Wl,-rpath,%{_libdir}/%{name}-%{version}"
|
||||||
|
make %{?_smp_mflags} COPTFLAGS="%{optflags}" eppic_makedumpfile.so %{?ncurses_make_opts}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
install -D -m 0755 makedumpfile %{buildroot}%{_bindir}/makedumpfile
|
install -D -m 0755 makedumpfile %{buildroot}%{_bindir}/makedumpfile
|
||||||
install -D -m 0755 makedumpfile-R.pl %{buildroot}%{_bindir}/makedumpfile-R.pl
|
install -D -m 0755 makedumpfile-R.pl %{buildroot}%{_bindir}/makedumpfile-R.pl
|
||||||
install -D -m 0644 makedumpfile.8 %{buildroot}%{_mandir}/man8/makedumpfile.8
|
install -D -m 0644 makedumpfile.8 %{buildroot}%{_mandir}/man8/makedumpfile.8
|
||||||
install -D -m 0644 makedumpfile.conf.5 %{buildroot}%{_mandir}/man5/makedumpfile.conf.5
|
install -D -m 0644 makedumpfile.conf.5 %{buildroot}%{_mandir}/man5/makedumpfile.conf.5
|
||||||
|
install -D -m 0755 eppic_makedumpfile.so %{buildroot}%{_libdir}/%{name}-%{version}/eppic_makedumpfile.so
|
||||||
install -d -m 0755 %{buildroot}%{_datadir}/%{name}-%{version}/eppic_scripts
|
install -d -m 0755 %{buildroot}%{_datadir}/%{name}-%{version}/eppic_scripts
|
||||||
install -m 0644 -t %{buildroot}%{_datadir}/%{name}-%{version}/eppic_scripts/ eppic_scripts/*
|
install -m 0644 -t %{buildroot}%{_datadir}/%{name}-%{version}/eppic_scripts/ eppic_scripts/*
|
||||||
|
|
||||||
@ -78,6 +94,8 @@ install -m 0644 -t %{buildroot}%{_datadir}/%{name}-%{version}/eppic_scripts/ epp
|
|||||||
%doc README COPYING IMPLEMENTATION
|
%doc README COPYING IMPLEMENTATION
|
||||||
%{_mandir}/man?/*
|
%{_mandir}/man?/*
|
||||||
%{_bindir}/*
|
%{_bindir}/*
|
||||||
|
%dir %{_libdir}/%{name}-%{version}
|
||||||
|
%{_libdir}/%{name}-%{version}/eppic_makedumpfile.so
|
||||||
%dir %{_datadir}/%{name}-%{version}
|
%dir %{_datadir}/%{name}-%{version}
|
||||||
%{_datadir}/%{name}-%{version}/eppic_scripts/
|
%{_datadir}/%{name}-%{version}/eppic_scripts/
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user