enclosed bug report filed and CC: to the raid list...

berkley

-- 
               [EMAIL PROTECTED]     "Software Enforcer"
[1.] One line summary of the problem:    
        gcc crashes compiling drivers/block/md.c on alpha (redhat 6.1)

[2.] Full description of the problem/report:
        gcc crashes while compiling md.c on my alpha - routine md_error()
uses lots of builtin macros in a printk(). Further errors are found as below...

/* plain vanilla kernel compile no patches */

gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 
-fomit-frame-pointer \
        -fno-strict-aliasing -pipe -mno-fp-regs -ffixed-8 -mcpu=ev5 -Wa,-mev6   
-DEXPORT_SYMTAB -c md.c
md.c:40: conflicting types for `sys_setsid'
/usr/src/linux/include/asm/unistd.h:562: previous declaration of `sys_setsid'
md.c: In function `alloc_array_sb':
md.c:459: warning: passing arg 1 of `clear_page' makes pointer from integer without a 
cast
md.c: In function `alloc_disk_sb':
md.c:473: warning: passing arg 1 of `clear_page' makes pointer from integer without a 
cast
../../gcc/expr.c:2624: Internal compiler error in function emit_move_insn_1
cpp: output pipe has been closed
make[3]: *** [md.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.3.99-pre6/drivers/block'

/* errors after patch on line 2921 in module md_error() to remove builtins on printk */

gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 
-fomit-frame-pointer \
        -fno-strict-aliasing -pipe -mno-fp-regs -ffixed-8 -mcpu=ev5 -Wa,-mev6   
-DEXPORT_SYMTAB -c md.c
md.c:40: conflicting types for `sys_setsid'
/usr/src/linux/include/asm/unistd.h:562: previous declaration of `sys_setsid'
md.c: In function `alloc_array_sb':
md.c:459: warning: passing arg 1 of `clear_page' makes pointer from integer without a 
cast
md.c: In function `alloc_disk_sb':
md.c:473: warning: passing arg 1 of `clear_page' makes pointer from integer without a 
cast
make[3]: *** [md.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.3.99-pre6/drivers/block'

/* after inserting the #if ! defined(__alpha__) fixes */

gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 
-fomit-frame-pointer \
        -fno-strict-aliasing -pipe -mno-fp-regs -ffixed-8 -mcpu=ev5 -Wa,-mev6   
-DEXPORT_SYMTAB -c md.c
md.c: In function `alloc_array_sb':
md.c:461: warning: passing arg 1 of `clear_page' makes pointer from integer without a 
cast
md.c: In function `alloc_disk_sb':
md.c:475: warning: passing arg 1 of `clear_page' makes pointer from integer without a 
cast
rm -f block.a
ar  rcs block.a ll_rw_blk.o blkpg.o md.o genhd.o elevator.o floppy.o

/* at least it compiles now :-) */


[3.] Keywords (i.e., modules, networking, kernel):
        drivers, block, raid, alpha, XP1000, redhat 6.1, 2.3.99-pre6
[4.] Kernel version (from /proc/version):
        Linux version 2.2.14 ([EMAIL PROTECTED]) (gcc version egcs-2.91.66 
19990314/Linux
         (egcs-1.1.2 release)) #79 Fri Apr 28 08:31:48 CDT 2000

[5.] Output of Oops.. message (if applicable) with symbolic information 
     resolved (see Documentation/oops-tracing.txt)
        see above.
[6.] A small shell script or example program which triggers the
     problem (if possible)
        see above.
[7.] Environment
[7.1.] Software (add the output of the ver_linux script here)

-- Versions installed: (if some fields are empty or look
-- unusual then possibly you have very old versions)
Linux alleycat.arl.wustl.edu 2.2.14 #79 Fri Apr 28 08:31:48 CDT 2000 alpha unknown
Kernel modules         2.1.121
Gnu C                  egcs-2.91.66
Binutils               2.9.1.0.24
Linux C Library        2.1.2
Dynamic linker         ldd (GNU libc) 2.1.2
Procps                 2.0.5
Mount                  2.9u
Net-tools              1.53
Console-tools          1999.03.02
Sh-utils               2.0
Modules Loaded         

Apr 27 10:07:41 alleycat kernel: Linux version 2.2.14 ([EMAIL PROTECTED])
        (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #76 Thu Apr 27 
09:50:25 CDT 2000
Apr 27 10:07:41 alleycat kernel: Booting GENERIC on Tsunami variation Monet using 
machine vector Monet from SRM
Apr 27 10:07:41 alleycat kernel: Command line: root=/dev/sdg4 bootdevice=sda5 
bootfile=vmlinux-2.2.14
Apr 27 10:07:41 alleycat kernel: Console: colour VGA+ 80x25
Apr 27 10:07:41 alleycat kernel: Calibrating delay loop... 996.15 BogoMIPS
Apr 27 10:07:41 alleycat kernel: Memory: 514736k available

[7.2.] Processor information (from /proc/cpuinfo):
cpu                     : Alpha
cpu model               : EV6
cpu variation           : 7
cpu revision            : 0
cpu serial number       : 
system type             : Tsunami
system variation        : Monet
system revision         : 0
system serial number    : 4003DPKZ1007
cycle frequency [Hz]    : 500000000 
timer frequency [Hz]    : 1024.00
page size [bytes]       : 8192
phys. address bits      : 44
max. addr. space #      : 255
BogoMIPS                : 996.14
kernel unaligned acc    : 0 (pc=0,va=0)
user unaligned acc      : 0 (pc=0,va=0)
platform string         : COMPAQ Professional Workstation XP1000
cpus detected           : 1

[7.3.] Module information (from /proc/modules):
[7.4.] Loaded driver and hardware information (/proc/ioports, /proc/iomem)
[7.5.] PCI information ('lspci -vvv' as root)
[7.6.] SCSI information (from /proc/scsi/scsi)
[7.7.] Other information that might be relevant to the problem
       (please look in /proc and include all information that you
       think to be relevant):
[X.] Other notes, patches, fixes, workarounds:

        I did not look to see if the gcc error was patched in redhat 6.2.
        Included is the patch file to at least make the gcc error go away.

******************************************************
diff -Naur linux-2.3.99-pre6-clean/drivers/block/md.c 
linux-2.3.99-pre6/drivers/block/md.c
--- linux-2.3.99-pre6-clean/drivers/block/md.c  Wed Apr 12 11:38:52 2000
+++ linux-2.3.99-pre6/drivers/block/md.c        Fri Apr 28 12:49:32 2000
@@ -37,7 +37,9 @@
 #include <asm/unaligned.h>
 
 extern asmlinkage int sys_sched_yield(void);
+#if ! defined(__alpha__)
 extern asmlinkage int sys_setsid(void);
+#endif
 
 extern unsigned long io_events[MAX_BLKDEV];
 
@@ -2917,9 +2919,9 @@
        mddev_t *mddev = kdev_to_mddev(dev);
        mdk_rdev_t * rrdev;
        int rc;
-
+#if ! defined(__alpha__)       /* gcc chokes on this macro */
        printk("md_error dev:(%d:%d), rdev:(%d:%d), (caller: 
%p,%p,%p,%p).\n",MAJOR(dev),MINOR(dev),MAJOR(rdev),MINOR(rdev), 
__builtin_return_address(0),__builtin_return_address(1),__builtin_return_address(2),__builtin_return_address(3));
-
+#endif
        if (!mddev) {
                MD_BUG();
                return 0;
*********************************************************

Thank you
        You are welcome!
begin:vcard 
n:Shands;Berkley
tel;fax:(314)-935-7302
tel;work:(314)-935-6636
x-mozilla-html:FALSE
url:http://www.cs.wustl.edu/~berkley
org:Washington University;Department of Computer Science
adr:;;Campus Box 1045, Bryan Hall room 509;St. Louis;Missouri;63130-4899;USA
version:2.1
email;internet:[EMAIL PROTECTED]
title:Senior Research Associate
note:"Software Enforcer"
x-mozilla-cpt:;-24128
fn:E. F. Berkley Shands
end:vcard

Reply via email to