Kexec Archive on lore.kernel.org
 help / color / mirror / Atom feed
* kexec-tools: fix build error with glibc 2.19 and earlier version
@ 2015-10-03  6:38 Dave Young
  2015-10-06  8:54 ` Simon Horman
  0 siblings, 1 reply; 2+ messages in thread
From: Dave Young @ 2015-10-03  6:38 UTC (permalink / raw)
  To: kexec

kexec-tools build fails on my laptop with RHEL7.1 installed:
  gcc -g -O2 -fno-strict-aliasing -Wall -Wstrict-prototypes -I./include -I./util_lib/include -Iinclude/  -I./kexec/arch/x86_64/include  -c -MD -o kexec/arch/i386/kexec-x86-common.o kexec/arch/i386/kexec-x86-common.c
  In file included from kexec/arch/i386/kexec-x86-common.c:36:0:
  kexec/arch/i386/../../kexec.h:19:2: error: #error BYTE_ORDER not defined
   #error BYTE_ORDER not defined
    ^
  kexec/arch/i386/../../kexec.h:23:2: error: #error LITTLE_ENDIAN not defined
   #error LITTLE_ENDIAN not defined
    ^
  kexec/arch/i386/../../kexec.h:27:2: error: #error BIG_ENDIAN not defined
   #error BIG_ENDIAN not defined
    ^
  In file included from kexec/arch/i386/kexec-x86-common.c:37:0:
  kexec/arch/i386/../../kexec-syscall.h: In function ‘kexec_load’:
  kexec/arch/i386/../../kexec-syscall.h:74:2: warning: implicit declaration of function ‘syscall’ [-Wimplicit-function-declaration]
    return (long) syscall(__NR_kexec_load, entry, nr_segments, segments, flags);
    ^
  make: *** [kexec/arch/i386/kexec-x86-common.o] Error 1

The build error was introduced by below commit:

  commit c9c21cc107dcc9b6053e39ead1069e03717513f9
  Author: Baoquan He <bhe@redhat.com>
  Date:   Thu Aug 6 19:10:55 2015 +0800

      kexec: use _DEFAULT_SOURCE instead to remove compiling warning

      Now compiling will print warning like below. Change code as it suggested.
       # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
         ^

See manpage: http://man7.org/linux/man-pages/man7/feature_test_macros.7.html

_BSD_SOURCE has been deprecated since glibc 2.20, To allow code that requires
_BSD_SOURCE in glibc 2.19 and earlier and _DEFAULT_SOURCE in glibc 2.20 and
later to compile without warnings, define both _BSD_SOURCE and _DEFAULT_SOURCE.

Thus fix it by adding back _BSD_SOURCE along with _DEFAULT_SOURCE.

Signed-off-by: Dave Young <dyoung@redhat.com>
---
 kexec/arch/i386/crashdump-x86.c    |    1 +
 kexec/arch/i386/kexec-x86-common.c |    1 +
 2 files changed, 2 insertions(+)

--- kexec-tools.orig/kexec/arch/i386/crashdump-x86.c
+++ kexec-tools/kexec/arch/i386/crashdump-x86.c
@@ -20,6 +20,7 @@
  */
 
 #define _XOPEN_SOURCE	600
+#define _BSD_SOURCE
 #define _DEFAULT_SOURCE
 
 #include <fcntl.h>
--- kexec-tools.orig/kexec/arch/i386/kexec-x86-common.c
+++ kexec-tools/kexec/arch/i386/kexec-x86-common.c
@@ -18,6 +18,7 @@
  */
 
 #define _XOPEN_SOURCE	600
+#define _BSD_SOURCE
 #define _DEFAULT_SOURCE
 
 #include <fcntl.h>

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-10-06  8:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-03  6:38 kexec-tools: fix build error with glibc 2.19 and earlier version Dave Young
2015-10-06  8:54 ` Simon Horman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox