NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-xen/44083: Compiling domU kernel with PCI bus enabled fails on a compiler warning of unused variable "mode"



>Number:         44083
>Category:       port-xen
>Synopsis:       Compiling domU kernel with PCI bus enabled fails on a compiler 
>warning of unused variable "mode"
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    port-xen-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Nov 11 23:20:00 +0000 2010
>Originator:     Juho Salminen
>Release:        5.99.39
>Organization:
Home
>Environment:
NetBSD hohtokaija1.jmos.iki.fi 5.99.39 NetBSD 5.99.39 (XEN3_DOMU_HK1) #1: Thu 
Nov 11 23:37:33 EET 2010  
fijusal%siniara.jmos.iki.fi@localhost:/usr/netbsd-current/obj/sys/arch/i386/compile/XEN3_DOMU_HK1
 i386

>Description:
Building the i386 Xen domU kernel with PCI bus enabled fails
on a compiler warning when compiling mainbus.c. The warning
states that variable "mode" is declared but not used.

The variable "mode" is declared in mainbus_attach() inside a #if
NPCI > 0. It is only used afterwards if DOM0OPS is also
defined. Thus, if DOM0OPS is not defined when NPCI is non-zero,
the variable is declared but not used, causing a compiler warning
that breaks the build.

The kernel configuration I used is the following:
---
include         "arch/i386/conf/XEN3_DOMU"

# Add support for PCI busses to the XEN3_DOMU kernel
xpci* at xenbus?
pci* at xpci ?

# Now add PCI and related devices to be used by this domain
# USB Controller and Devices

# PCI USB controllers
ehci*   at pci? dev ? function ?        # Enhanced Host Controller
uhci*   at pci? dev ? function ?        # Universal Host Controller

# USB bus support
usb*    at ehci?
usb*    at uhci?

# USB Hubs
uhub*   at usb?
uhub*   at uhub? port ? configuration ? interface ?

# USB Mass Storage
umass*  at uhub? port ? configuration ? interface ?
wd*     at umass?

# SCSI bus support (for both ahc and umass)
scsibus* at scsi?

# SCSI devices
sd*     at scsibus? target ? lun ?      # SCSI disk drives
---

The compiler error is the following:
---
#   compile  XEN3_DOMU_HK1/mainbus.o
/usr/netbsd-current/src/../tools/bin/i486--netbsdelf-gcc -ffreestanding 
-fno-zero-initialized-in-bss -O2 -std=gnu99 -fstack-protector -Wstack-protector 
--param ssp-buffer-size=1 -fno-strict-aliasing -fstack-protector 
-Wstack-protector --param ssp-buffer-size=1 -Werror -Wall -Wno-main 
-Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes 
-Wstrict-prototypes -Wswitch -Wshadow -Wcast-qual -Wwrite-strings 
-Wno-unreachable-code -Wno-sign-compare -Wno-pointer-sign -Wno-attributes 
-Werror -march=i686 -Di386 -I. 
-I/usr/netbsd-current/obj/sys/arch/i386/compile/XEN3_DOMU_HK1/xen-ma 
-I/usr/netbsd-current/src/sys/../common/include 
-I/usr/netbsd-current/src/sys/arch -I/usr/netbsd-current/src/sys -nostdinc 
-DDIAGNOSTIC -DDEBUG -DMAXPHYS=32768 -DMAXUSERS=32 -D_KERNEL -D_KERNEL_OPT 
-I/usr/netbsd-current/src/sys/lib/libkern/../../../common/lib/libc/quad 
-I/usr/netbsd-current/src/sys/lib/libkern/../../../common/lib/libc/string 
-I/usr/netbsd-current/src/sys/lib/libkern/../../../common/li
 b/libc/arch/i386/string -I/usr/netbsd-current/src/sys/dist/ipf -c 
/usr/netbsd-current/src/sys/arch/xen/x86/mainbus.c
cc1: warnings being treated as errors
/usr/netbsd-current/src/sys/arch/xen/x86/mainbus.c: In function 
'mainbus_attach':
/usr/netbsd-current/src/sys/arch/xen/x86/mainbus.c:137: warning: unused 
variable 'mode'

*** Failed target:  mainbus.o
---


>How-To-Repeat:
With the configuration file shown above, attempt to compile the
kernel.

>Fix:
Wrapping the variable declaration in #ifdef DOM0OPS fixes this:

Index: mainbus.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/x86/mainbus.c,v
retrieving revision 1.12
diff -u -r1.12 mainbus.c
--- mainbus.c   7 Aug 2010 21:59:11 -0000       1.12
+++ mainbus.c   11 Nov 2010 22:44:40 -0000
@@ -133,9 +133,11 @@
 void
 mainbus_attach(device_t parent, device_t self, void *aux)
 {
+#ifdef DOM0OPS
 #if NPCI > 0
        int mode;
 #endif
+#endif
        union mainbus_attach_args mba;
 #if defined(DOM0OPS)
        int numcpus = 0;



Home | Main Index | Thread Index | Old Index