NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/51460: Source code bugs
>Number: 51460
>Category: kern
>Synopsis: Source code bugs
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Sep 03 16:15:00 +0000 2016
>Originator: Ray Phillips
>Release: 7.0.1
>Organization:
>Environment:
NetBSD aw135.sbs.uq.edu.au 7.0.1 NetBSD 7.0.1 (GENERIC.201605221355Z) amd64
>Description:
I hesitate to submit this report because I've no experience with kernel programming. Hopefully it's not a bogus report...
I've been attempting to get Hubert Feyrer's g4u 2.6beta1:
http://www.feyrer.de/g4u/g4u-2.6beta1.tgz
to build with NetBSD 7.0.1 source code and found it was necessary to edit two files in the 7.0.1 source to get them to compile:
usr/srcsys/dev/acpi/fujhk_acpi.c
usr/src/sys/kern/core_elf32.c
The errors were (as shown in the "Fix to the problem if known" section of this send-pr):
/usr/src/sys/dev/acpi/fujhk_acpi.c:262:10: error: 'irb' may be used uninitialized in this function
/usr/src/sys/kern/core_elf32.c:513:12: error: conflicting types for 'coredump_elf32'
>How-To-Repeat:
It's probably not necessary, but if you like I can send you my modified g4u-2.6beta1.tgz if you want to follow the same steps I have, but you can see from the error messages why the compile stopped.
They're obviously not critical problems since NetBSD/i386 7.0.1 has been compiled successfully and released. I suppose the g4u-build script must use different compiler settings to have produced these errors.
>Fix:
Edit ./sys/dev/acpi/fujhk_acpi.c :
# diff -u ./sys/dev/acpi/fujhk_acpi.c.orig ./sys/dev/acpi/fujhk_acpi.c
--- ./sys/dev/acpi/fujhk_acpi.c.orig 2016-08-31 21:55:27.000000000 +1000
+++ ./sys/dev/acpi/fujhk_acpi.c 2016-08-31 22:13:25.000000000 +1000
@@ -246,6 +246,7 @@
uint32_t irb;
int i, index;
+ irb = 0; /* make sure irb has been initialized */
for (i = 0; i < max_irb_buffer_size; i++) {
if (fujitsu_hk_get_irb(sc, &irb) || irb == 0)
return;
#
Without that change this error occurred:
# compile G4U-KERNEL/fujhk_acpi.o
/usr/src/obj.i386/tooldir-NetBSD/bin/i486--netbsdelf-gcc -msoft-float -mno-mmx -
mno-sse -mno-avx -ffreestanding -fno-zero-initialized-in-bss -g -Os -fstack-prot
ector -Wstack-protector --param ssp-buffer-size=1 -fno-strict-aliasing -fno-comm
on -std=gnu99 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -W
missing-prototypes -Wstrict-prototypes -Wold-style-definition -Wswitch -Wshadow
-Wcast-qual -Wwrite-strings -Wno-unreachable-code -Wno-pointer-sign -Wno-attribu
tes -Wextra -Wno-unused-parameter -Wold-style-definition -Wno-sign-compare -marc
h=i486 -mtune=pentiumpro --sysroot=/usr/src/obj.i386/destdir -Di386 -I. -I/usr/s
rc/sys/../common/include -I/usr/src/sys/arch -I/usr/src/sys -nostdinc -DCHILD_MA
X=1024 -DOPEN_MAX=1024 -DMSGBUFSIZE=50000 -DHALT_ON_PANIC -DMAXUSERS=2 -D_KERNEL
-D_KERNEL_OPT -std=gnu99 -I/usr/src/sys/lib/libkern/../../../common/lib/libc/qu
ad -I/usr/src/sys/lib/libkern/../../../common/lib/libc/string -I/usr/src/sys/lib
/libkern/../../../common/lib/libc/arch/i386/string -D_FORTIFY_SOURCE=2 -I/usr/sr
c/sys/external/isc/atheros_hal/dist -I/usr/src/sys/external/isc/atheros_hal/ic -
I/usr/src/sys/external/bsd/acpica/dist/include -c /usr/src/sys/dev/acpi/fujhk_ac
pi.c
/usr/src/sys/dev/acpi/fujhk_acpi.c: In function 'fujitsu_hk_event_callback':
/usr/src/sys/dev/acpi/fujhk_acpi.c:262:10: error: 'irb' may be used uninitialized in this function [-Werror=maybe-uninitialized]
index = FUJITSU_HK_IRB_HOTKEY_INDEX(irb);
^
cc1: all warnings being treated as errors
*** Failed target: fujhk_acpi.o
Edit ./sys/kern/core_elf32.c :
# diff -u ./sys/kern/core_elf32.c.orig ./sys/kern/core_elf32.c
--- ./sys/kern/core_elf32.c.orig 2016-08-31 15:24:19.000000000 +1000
+++ ./sys/kern/core_elf32.c 2016-08-31 17:32:59.000000000 +1000
@@ -510,7 +510,7 @@
#else /* COREDUMP */
int
-ELFNAMEEND(coredump)(struct lwp *l, void *cookie)
+ELFNAMEEND(coredump)(struct lwp *l, struct coredump_iostate *cookie)
{
return ENOSYS;
#
Without that change this error occurred:
# compile G4U-KERNEL/core_elf32.o
/usr/src/obj.i386/tooldir-NetBSD/bin/i486--netbsdelf-gcc -msoft-float -mno-mmx -mno-sse -mno-avx -ffreestanding -fno-zero-initialized-in-bss -g -Os -fstack-protector -Wstack-protector --param ssp-buffer-size=1 -fno-strict-aliasing -fno-common -std=gnu99 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wold-style-definition -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wno-unreachable-code -Wno-pointer-sign -Wno-attributes -Wextra -Wno-unused-parameter -Wold-style-definition -Wno-sign-compare -march=i486 -mtune=pentiumpro --sysroot=/usr/src/obj.i386/destdir -Di386 -I. -I/usr/src/sys/../common/include -I/usr/src/sys/arch -I/usr/src/sys -nostdinc -DCHILD_MAX=1024 -DOPEN_MAX=1024 -DMSGBUFSIZE=50000 -DHALT_ON_PANIC -DMAXUSERS=2 -D_KERNEL -D_KERNEL_OPT -std=gnu99 -I/usr/src/sys/lib/libkern/../../../common/lib/libc/quad -I/usr/src/sys/lib/libkern/../../../common/lib/libc/string -I/usr/src/sys/lib/libkern/../../../common/lib/libc/arch
/i386/string -D_FORTIFY_SOURCE=2 -I/usr/src/sys/external/isc/atheros_hal/dist -I/usr/src/sys/external/isc/atheros_hal/ic -I/usr/src/sys/external/bsd/acpica/dist/include -c /usr/src/sys/kern/core_elf32.c
In file included from /usr/src/sys/kern/core_elf32.c:42:0:
/usr/src/sys/kern/core_elf32.c:513:12: error: conflicting types for 'coredump_elf32'
ELFNAMEEND(coredump)(struct lwp *l, void *cookie)
^
/usr/src/sys/sys/cdefs.h:93:23: note: in definition of macro '__CONCAT'
#define __CONCAT(x,y) x ## y
^
/usr/src/sys/sys/exec_elf.h:1029:23: note: in expansion of macro 'CONCAT'
#define ELFNAMEEND(x) CONCAT(x,CONCAT(_elf,ELFSIZE))
^
/usr/src/sys/kern/core_elf32.c:513:1: note: in expansion of macro 'ELFNAMEEND'
ELFNAMEEND(coredump)(struct lwp *l, void *cookie)
^
In file included from /usr/src/sys/kern/core_elf32.c:58:0:
/usr/src/sys/sys/exec_elf.h:1286:5: note: previous declaration of 'coredump_elf32' was here
int coredump_elf32(struct lwp *, struct coredump_iostate *);
^
*** Failed target: core_elf32.o
Home |
Main Index |
Thread Index |
Old Index