Hello from Gregg C Levine Now something else has happened. I've managed to build a copy of GCC version 2.9.5.3 and have it installed in the /opt directory. But there are unusual problems in the building of the bare metal library, here's a script output regarding the errors: Script started on Mon May 10 14:47:28 2004 root@who5:/usr/src/lobos/freebios/util/baremetal/lib# make /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c ../../../src/lib/printk.c /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c -o serial_subr.o serial_subr.c /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c -o subr.o subr.c In file included from subr.c:16: ../include/string.h:9: warning: conflicting types for built-in function `strcpy' /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c ../../../src/lib/vsprintf.c In file included from ../../../src/lib/vsprintf.c:18: ../include/string.h:9: warning: conflicting types for built-in function `strcpy' /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c ../../../src/lib/memcpy.c In file included from ../../../src/lib/memcpy.c:1: ../include/string.h:9: warning: conflicting types for built-in function `strcpy' /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c ../../../src/lib/malloc.c /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c ../../../src/lib/memset.c In file included from ../../../src/lib/memset.c:1: ../include/string.h:9: warning: conflicting types for built-in function `strcpy' /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c ../../../src/lib/compute_ip_checksum.c /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c -o elfboot.o elfboot.c In file included from elfboot.c:8: ../include/string.h:9: warning: conflicting types for built-in function `strcpy' /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c -o boot.o boot.c In file included from boot.c:4: ../include/string.h:9: warning: conflicting types for built-in function `strcpy' /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -c ../../../src/pc80/ide/ide.c ../../../src/pc80/ide/ide.c:27: delay.h: No such file or directory ../../../src/pc80/ide/ide.c:28: pci.h: No such file or directory make: *** [ide.o] Error 1 root@who5:/usr/src/lobos/freebios/util/baremetal/lib# exit Script done on Mon May 10 14:47:36 2004
Obviously some of those errors can be corrected by reminding the make file to find the include files that GCC 2.95.3 prefers. But the ones that concern me, are the "missing files" for the IDE issues.
And here's the latest problem with the USB attachment to bare metal: Script started on Mon May 10 14:49:02 2004 root@who5:/usr/src/lobos/freebios/util/baremetal/usb# make /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000 -c -o uhci.o uhci.c uhci.c:332: warning: `USBCMD' redefined uhci.h:290: warning: this is the location of the previous definition uhci.c:333: warning: `USBSTS' redefined uhci.h:291: warning: this is the location of the previous definition uhci.c:334: warning: `USBINTR' redefined uhci.h:292: warning: this is the location of the previous definition uhci.c:335: warning: `FRNUM' redefined uhci.h:293: warning: this is the location of the previous definition uhci.c:336: warning: `FLBASE' redefined uhci.h:294: warning: this is the location of the previous definition uhci.c:337: warning: `SOFMOD' redefined uhci.h:295: warning: this is the location of the previous definition uhci.c:338: warning: `PORTSC1' redefined uhci.h:296: warning: this is the location of the previous definition uhci.c:339: warning: `PORTSC2' redefined uhci.h:297: warning: this is the location of the previous definition uhci.c: In function `ctrl_msg': uhci.c:776: warning: assignment makes pointer from integer without a cast uhci.c: In function `hub_port_reset': uhci.c:1193: warning: passing arg 1 of `dump_hex' from incompatible pointer type uhci.c: In function `usb_hub_init': uhci.c:1272: warning: assignment makes pointer from integer without a cast uhci.c: In function `configure_device': uhci.c:1383: warning: passing arg 1 of `dump_config_descriptor' from incompatible pointer type /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000 -c -o usb_scsi_low.o usb_scsi_low.c /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000 -c -o debug.o debug.c In file included from debug.c:31: ../include/string.h:9: warning: conflicting types for built-in function `strcpy' /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000 -c -o scsi_cmds.o scsi_cmds.c In file included from scsi_cmds.c:26: /usr/include/sys/types.h:152: warning: redefinition of `ushort' uhci.h:13: warning: `ushort' previously declared here scsi_cmds.c: In function `ll_read_block': scsi_cmds.c:258: warning: passing arg 2 of `scsi_command' from incompatible pointer type scsi_cmds.c: In function `ll_write_block': scsi_cmds.c:280: warning: passing arg 2 of `scsi_command' from incompatible pointer type scsi_cmds.c: In function `ll_read_long': scsi_cmds.c:311: warning: passing arg 2 of `scsi_command' from incompatible pointer type scsi_cmds.c: In function `get_capacity': scsi_cmds.c:328: warning: passing arg 5 of `scsi_command' from incompatible pointer type scsi_cmds.c: In function `query': scsi_cmds.c:349: warning: passing arg 5 of `scsi_command' from incompatible pointer type scsi_cmds.c: In function `ReportLUNS': scsi_cmds.c:372: warning: passing arg 5 of `scsi_command' from incompatible pointer type scsi_cmds.c: In function `ReportOpCodes': scsi_cmds.c:423: warning: passing arg 2 of `scsi_command' from incompatible pointer type scsi_cmds.c:423: warning: passing arg 5 of `scsi_command' from incompatible pointer type scsi_cmds.c: In function `CheckVolumes': scsi_cmds.c:469: warning: passing arg 2 of `scsi_command' from incompatible pointer type scsi_cmds.c: In function `CheckPartitions': scsi_cmds.c:494: warning: passing arg 2 of `scsi_command' from incompatible pointer type scsi_cmds.c: In function `UnitReady': scsi_cmds.c:514: warning: passing arg 2 of `scsi_command' from incompatible pointer type /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000 -c -o pci_util.o pci_util.c /opt/gcc-2.95.3/bin/gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000 -c -o block_fill_inbuf.o block_fill_inbuf.c In file included from block_fill_inbuf.c:8: ../include/string.h:9: warning: conflicting types for built-in function `strcpy' make: *** No rule to make target `../lib/baremetal.a', needed by `usbboot.elf'. Stop. root@who5:/usr/src/lobos/freebios/util/baremetal/usb# exit Script done on Mon May 10 14:49:10 2004
Again I expect that by instructing the make file to use the include files supplied by GCC 2.95.3, that most of the errors will be gone, but I'm listing those for reference. ------------------- Gregg C Levine hansolofalcon@worldnet.att.net ------------------------------------------------------------ "The Force will be with you...Always." Obi-Wan Kenobi "Use the Force, Luke." Obi-Wan Kenobi