[SeaBIOS] New build warnings with GCC 5

Kevin O'Connor kevin at koconnor.net
Tue Jun 2 00:36:46 CEST 2015


On Sat, May 23, 2015 at 03:47:32PM +0200, Paul Menzel wrote:
> Dear SeaBIOS folks,
> 
> 
> building SeaBIOS commit 67643955 (make SeaBios compatible with Xen
> vTPM.) for coreboot with the attached configuration with GCC 5.1.1, (CPP
> 4.9) the following warnings are printed.
> 
>         $ gcc-5 --version
>         gcc-5 (Debian 5.1.1-7) 5.1.1 20150522
>         Copyright (C) 2015 Free Software Foundation, Inc.
>         This is free software; see the source for copying conditions.
>         There is NO
>         warranty; not even for MERCHANTABILITY or FITNESS FOR A
>         PARTICULAR PURPOSE.
> 
>         $ CC=gcc-5 make
>           Build Kconfig config file
>           Compile checking out/src/misc.o
>         In file included from src/misc.c:13:0:
>         src/string.h:18:13: warning: inline function 'memcpy_far'
>         declared but never defined
>          inline void memcpy_far(u16 d_seg, void *d_far
>                      ^

Thanks.  It looks like gcc v5 is picky about using the "inline"
keyword in function declarations.  Patch below fixes the warnings for
me.

-Kevin


commit a8a8fc9e35af6d1ee660a5f3a6f4a825f4465824
Author: Kevin O'Connor <kevin at koconnor.net>
Date:   Mon Jun 1 18:32:06 2015 -0400

    Don't forward declare functions with "inline" in headers
    
    Don't mark function definitions in headers with "inline" - it causes
    compile warnings on gcc v5.
    
    Signed-off-by: Kevin O'Connor <kevin at koconnor.net>

diff --git a/src/hw/usb-hid.h b/src/hw/usb-hid.h
index ef34e79..fd7b8f8 100644
--- a/src/hw/usb-hid.h
+++ b/src/hw/usb-hid.h
@@ -4,10 +4,10 @@
 // usb-hid.c
 struct usbdevice_s;
 int usb_hid_setup(struct usbdevice_s *usbdev);
-inline int usb_kbd_active(void);
-inline int usb_kbd_command(int command, u8 *param);
-inline int usb_mouse_active(void);
-inline int usb_mouse_command(int command, u8 *param);
+int usb_kbd_active(void);
+int usb_kbd_command(int command, u8 *param);
+int usb_mouse_active(void);
+int usb_mouse_command(int command, u8 *param);
 void usb_check_event(void);
 
 
diff --git a/src/string.h b/src/string.h
index a557d6a..d069989 100644
--- a/src/string.h
+++ b/src/string.h
@@ -11,12 +11,12 @@ size_t strlen(const char *s);
 int memcmp_far(u16 s1seg, const void *s1, u16 s2seg, const void *s2, size_t n);
 int memcmp(const void *s1, const void *s2, size_t n);
 int strcmp(const char *s1, const char *s2);
-inline void memset_far(u16 d_seg, void *d_far, u8 c, size_t len);
-inline void memset16_far(u16 d_seg, void *d_far, u16 c, size_t len);
+void memset_far(u16 d_seg, void *d_far, u8 c, size_t len);
+void memset16_far(u16 d_seg, void *d_far, u16 c, size_t len);
 void *memset(void *s, int c, size_t n);
 void memset_fl(void *ptr, u8 val, size_t size);
-inline void memcpy_far(u16 d_seg, void *d_far
-                       , u16 s_seg, const void *s_far, size_t len);
+void memcpy_far(u16 d_seg, void *d_far
+                , u16 s_seg, const void *s_far, size_t len);
 void memcpy_fl(void *d_fl, const void *s_fl, size_t len);
 void *memcpy(void *d1, const void *s1, size_t len);
 #if MODESEGMENT == 0



More information about the SeaBIOS mailing list