From: Dave Anderson <anderson(a)redhat.com>
Subject: Re: [Crash-utility] [ANNOUNCE] crash gcore command, version 1.3.0 is released
Date: Tue, 4 Nov 2014 12:10:05 -0500
----- Original Message -----
> This is the release of crash gcore command, version 1.3.0.
>
> This release newly adds ARM64 and PPC64 supports, thanks to respective
> maintainers for their development of patch sets and verifications at
> each rc release.
Hello Daisuke,
Because Red Hat no longer support 32-bit x86 in RHEL7, I never bothered to
test it. However, in our build system, the 32-bit x86 package does still
get built. And as luck would have it, it fails to build, because the
user_i387_struct is not defined for X86:
# make -f gcore.mk
make[1]: Entering directory `/root/crash-gcore-command-1.3.0'
gcc -D_FILE_OFFSET_BITS=64 -Wall -I/usr/include/crash -I./libgcore -fPIC -DX86
-DVERSION='"1.3.0"' -DRELEASE_DATE='"4 Nov 2014"'
-DPERIOD='"2010, 2011, 2012, 2013, 2014"' -c -o
libgcore/gcore_coredump.o libgcore/gcore_coredump.c
gcc -D_FILE_OFFSET_BITS=64 -Wall -I/usr/include/crash -I./libgcore -fPIC -DX86
-DVERSION='"1.3.0"' -DRELEASE_DATE='"4 Nov 2014"'
-DPERIOD='"2010, 2011, 2012, 2013, 2014"' -c -o
libgcore/gcore_coredump_table.o libgcore/gcore_coredump_table.c
gcc -D_FILE_OFFSET_BITS=64 -Wall -I/usr/include/crash -I./libgcore -fPIC -DX86
-DVERSION='"1.3.0"' -DRELEASE_DATE='"4 Nov 2014"'
-DPERIOD='"2010, 2011, 2012, 2013, 2014"' -c -o
libgcore/gcore_dumpfilter.o libgcore/gcore_dumpfilter.c
gcc -D_FILE_OFFSET_BITS=64 -Wall -I/usr/include/crash -I./libgcore -fPIC -DX86
-DVERSION='"1.3.0"' -DRELEASE_DATE='"4 Nov 2014"'
-DPERIOD='"2010, 2011, 2012, 2013, 2014"' -c -o
libgcore/gcore_elf_struct.o libgcore/gcore_elf_struct.c
gcc -D_FILE_OFFSET_BITS=64 -Wall -I/usr/include/crash -I./libgcore -fPIC -DX86
-DVERSION='"1.3.0"' -DRELEASE_DATE='"4 Nov 2014"'
-DPERIOD='"2010, 2011, 2012, 2013, 2014"' -c -o
libgcore/gcore_global_data.o libgcore/gcore_global_data.c
gcc -D_FILE_OFFSET_BITS=64 -Wall -I/usr/include/crash -I./libgcore -fPIC -DX86
-DVERSION='"1.3.0"' -DRELEASE_DATE='"4 Nov 2014"'
-DPERIOD='"2010, 2011, 2012, 2013, 2014"' -c -o libgcore/gcore_regset.o
libgcore/gcore_regset.c
gcc -D_FILE_OFFSET_BITS=64 -Wall -I/usr/include/crash -I./libgcore -fPIC -DX86
-DVERSION='"1.3.0"' -DRELEASE_DATE='"4 Nov 2014"'
-DPERIOD='"2010, 2011, 2012, 2013, 2014"' -c -o
libgcore/gcore_verbose.o libgcore/gcore_verbose.c
gcc -D_FILE_OFFSET_BITS=64 -Wall -I/usr/include/crash -I./libgcore -fPIC -DX86
-DVERSION='"1.3.0"' -DRELEASE_DATE='"4 Nov 2014"'
-DPERIOD='"2010, 2011, 2012, 2013, 2014"' -c -o libgcore/gcore_x86.o
libgcore/gcore_x86.c
libgcore/gcore_x86.c: In function ‘gcore_x86_get_thread_struct_fpu_thread_xstate_size’:
libgcore/gcore_x86.c:580: error: invalid application of ‘sizeof’ to incomplete type
‘struct user_i387_struct’
make[1]: *** [libgcore/gcore_x86.o] Error 1
make[1]: Leaving directory `/root/crash-gcore-command-1.3.0'
make: *** [gcore.so] Error 2
#
As I understand it, it can be fixed like so:
--- crash-gcore-command-1.3.0/libgcore/gcore_x86.c.orig
+++ crash-gcore-command-1.3.0/libgcore/gcore_x86.c
@@ -577,7 +577,11 @@ static ulong gcore_x86_get_thread_struct
static ulong gcore_x86_get_thread_struct_fpu_thread_xstate_size(void)
{
+#ifdef X86
+ return sizeof(struct user_i387_ia32_struct);
+#else
return sizeof(struct user_i387_struct);
+#endif
}
static ulong gcore_x86_get_thread_struct_thread_xstate(struct task_context *tc)
But how do you want to handle this?
Yes, I don't lay so much a focus on x86 than ever now, but this should
successsfully be build. This is my mistake.
I'll release 1.3.1 for this fix.
--
Thanks.
HATAYAMA, Daisuke