Subject: port-i386/21614: Building bootblock blues
To: None <gnats-bugs@gnats.netbsd.org>
From: None <kwellsch@tampabay.rr.com>
List: netbsd-bugs
Date: 05/18/2003 12:22:58
>Number:         21614
>Category:       port-i386
>Synopsis:       chronic -current builds of bootblocks fails
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun May 18 16:24:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Ken Wellsch
>Release:        NetBSD 1.6T
>Organization:
>Environment:
System: NetBSD t450 1.6T NetBSD 1.6T (T450) #0: Sat May 17 14:30:16 EDT 2003 kwellsch@t450:/sys/arch/i386/compile/T450 i386
Architecture: i386
Machine: i386
>Description:

I see stuff like this quite frequently.  The failure with
not finding stdint.h in bootblock.h could be worked around
by just tweaking line 105 to say sys/stdint.h to match the
prior condition (which is probably totally wrong, but allowed
me to complete builds).  I encountered this as much as a month ago.

But the whole x86 thing appears to be new this week.

% cd /usr/src/sys/arch && make dependall
[ ... ]
dependall ===> i386/stand/bootxx/bootxx_ufs
rm -f machine
ln -s /usr/src/sys/arch/i386/stand/bootxx/bootxx_ufs/../../../../..//arch/i386/include machine
rm -f machine
ln -s /usr/src/sys/arch/i386/stand/bootxx/bootxx_ufs/../../../../..//arch/i386/include machine
making sure the i386 library is up to date...
cc -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -Os -mcpu=i386 -ffreestanding  -Werror -I/usr/src/sys/arch/i386/stand/lib/../../../..//lib/libsa -DBOOTXX -I /usr/src/sys/arch/i386/stand/bootxx/bootxx_ufs/../../lib -I /usr/src/sys/arch/i386/stand/bootxx/bootxx_ufs/obj -DBOOTXX_SECTORS=15 -DPRIMARY_LOAD_ADDRESS=0x600 -DSECONDARY_LOAD_ADDRESS=0x10000 -DX86_BOOT_MAGIC_1="('x' << 24 | 0x86b << 12 | 'm' << 4 | 1)" -DXXfs_open=ufs_open -DXXfs_close=ufs_close -DXXfs_read=ufs_read -DXXfs_stat=ufs_stat -nostdinc -D_STANDALONE -I/usr/src/sys/arch/i386/stand/bootxx/bootxx_ufs/../../../../../ -DLIBSA_SINGLE_FILESYSTEM=xxfs -DLIBSA_NO_TWIDDLE -DLIBSA_NO_FD_CHECKING -DLIBSA_NO_RAW_ACCESS -DLIBSA_NO_FS_WRITE -DLIBSA_NO_FS_SEEK -DLIBSA_USE_MEMCPY -DLIBSA_USE_MEMSET -DLIBSA_SINGLE_DEVICE=blkdev -DLIBKERN_OPTIMISE_SPACE -D"blkdevioctl(x,y,z)=EINVAL" -D"blkdevclose(f)=0" -D"devopen(f,n,fl)=(*(fl)=(void *)n,0)" -DLIBSA_NO_DISKLABEL_MSGS    -c /usr/src/sys/arch/i386/stand/lib/pcio.c
In file included from /usr/src/sys/arch/i386/stand/lib/pcio.c:42:
/usr/src/sys/arch/i386/stand/bootxx/bootxx_ufs/../../../../../sys/bootblock.h:105: stdint.h: No such file or directory
In file included from /usr/src/sys/arch/i386/stand/lib/bootinfo.h:35,
                 from /usr/src/sys/arch/i386/stand/lib/pcio.c:45:
/usr/src/sys/arch/i386/stand/bootxx/bootxx_ufs/obj/machine/bootinfo.h:3: x86/bootinfo.h: No such file or directory
*** Error code 1

I made this hack to be able to continue building:

Index: src/sys/arch/i386/stand/boot/Makefile.boot
===================================================================
RCS file: /cvsroot/src/sys/arch/i386/stand/boot/Makefile.boot,v
retrieving revision 1.3
diff -u -r1.3 Makefile.boot
--- src/sys/arch/i386/stand/boot/Makefile.boot  2003/05/12 14:35:54     1.3
+++ src/sys/arch/i386/stand/boot/Makefile.boot  2003/05/18 15:47:42
@@ -89,6 +89,8 @@
 machine::
        -rm -f $@
        ln -s $S/arch/i386/include $@
+       -rm -f x86
+       ln -s $S/arch/x86/include x86
 
 ${OBJS}: machine
 

Index: src/sys/arch/i386/stand/bootxx/Makefile.bootxx
===================================================================
RCS file: /cvsroot/src/sys/arch/i386/stand/bootxx/Makefile.bootxx,v
retrieving revision 1.4
diff -u -r1.4 Makefile.bootxx
--- src/sys/arch/i386/stand/bootxx/Makefile.bootxx      2003/05/12 14:34:55     
1.4
+++ src/sys/arch/i386/stand/bootxx/Makefile.bootxx      2003/05/18 15:48:11
@@ -94,6 +94,8 @@
 machine::
        -rm -f $@
        ln -s $S/arch/i386/include $@
+       -rm -f x86
+       ln -s $S/arch/x86/include x86
 
 ${OBJS}: machine
 

obj ===> i386/../x86/include


>How-To-Repeat:
cd /usr/src && make build
   or more directly
cd /usr/src/sys/arch && make dependall
>Fix:
Get rid of old dinosaurs like me who like to build native directly?
>Release-Note:
>Audit-Trail:
>Unformatted: