Subject: Re: make build fail
To: None <spiff@cybernarian.org>
From: James Chacon <jchacon@genuity.net>
List: current-users
Date: 09/12/2000 11:22:52
This took a while to find. When the pullup of 
sys/arch/i386/stand/lib/Makefile.inc happened it didn't get pulled up
correctly. It's got a line wrong in it.

When you unset a var in shell if the var wasn't defined it sets $? to 1. This
will cause make to error out (and make it really hard to find....I need to
come up with a test case and send-pr against make on this). The main trunk has
the correct code and this simply adds back in the null'ing out the value, then
unset logic.

Here's the diff to fix: (I'm also typing up a send-pr right now)

cvs diff Makefile.inc 
Index: Makefile.inc
===================================================================
RCS file: /usr/local/cvs/src/sys/arch/i386/stand/lib/Makefile.inc,v
retrieving revision 1.2
diff -u -r1.2 Makefile.inc
--- Makefile.inc        2000/09/10 01:18:39     1.2
+++ Makefile.inc        2000/09/12 14:52:54
@@ -20,7 +20,7 @@
 I386LIB=               ${I386DST}/libi386.a
 
 I386MAKE= \
-       cd ${I386DIR} && unset MAKEOBJDIRPREFIX && \
+       cd ${I386DIR} && MAKEOBJDIRPREFIX= && unset MAKEOBJDIRPREFIX && \
          MAKEOBJDIR=${I386DST} ${MAKE} \
            CC=${CC:Q} CFLAGS=${CFLAGS:Q} \
            AS=${AS:Q} AFLAGS=${AFLAGS:Q} \
James


>I basically did a `make -k UPDATE=1 build', and it built fine. The '-k' got
>it to avoid the cleandir error. Not optimal, but it worked.
>
>-spiff
>
>On Mon, Sep 11, 2000 at 10:20:52PM -0500, Paul B Dokas wrote:
>> On Tue, 12 Sep 2000, Clarence Chan wrote:
>> >
>> > Hello,
>> > 
>> > I got an error when I tried to make build with source upto September 11,
>> > 2000.  Any idea how to fix it.  Thanks.
>> > 
>> > Clarence
>> > 
>> > =============================================================================
>> > rm -f llib-lsa.ln  alloc.ln bcmp.ln bcopy.ln bzero.ln errno.ln exit.ln
>> > exec.ln g
>> > etfile.ln gets.ln globals.ln memcmp.ln memcpy.ln memset.ln panic.ln
>> > printf.ln sn
>> > printf.ln sprintf.ln strerror.ln subr_prf.ln twiddle.ln vsprintf.ln
>> > checkpasswd.
>> > ln closeall.ln dev.ln disklabel.ln dkcksum.ln ioctl.ln nullfs.ln stat.ln
>> > fstat.l
>> > n close.ln lseek.ln open.ln read.ln write.ln cread.ln loadfile.ln lfs.ln
>> > ufs.ln
>> > ufs_ls.ln cd9660.ln ustarfs.ln
>> > rm -f .depend /usr/src/sys/arch/i386/stand/biosboot/lib/sa/tags
>> > cleandiring the i386 library objects
>> > *** Error code 1
>> > 
>> > ============================================================================
>> 
>> 
>> 
>> 
>> Yea, comment out all of the 'SUBDIR' lines in /usr/src/sys/arch/i386/stand/Makefile
>> 
>> Ok, so that's not a real fix.  I just *really* needed to do a 'make build'
>> today...
>> 
>> 
>> Anyway, it still fails, but this time much later on:
>> 
>> cc -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -Wno-main  -Werror  -I/usr/src/sys/arch/i386/stand/biosboot/../../../..//lib/libkern/arch/i386 -DCOMPAT_OLDBOOT -DCOMPAT_386BSD_MBRPART -DSUPPORT_SERIAL=CONSDEV_PC -DDIRECT_SERIAL -DSUPPORT_USTARFS -DPASS_BIOSGEOM -DPASS_MEMMAP -nostdinc -I/usr/src/sys/arch/i386/stand/biosboot -I/usr/src/sys/arch/i386/stand/biosboot/../../../../ -I/usr/src/sys/arch/i386/stand/biosboot/../../../..//arch/i386/stand/lib -I/usr/src/sys/arch/i386/stand/biosboot/../../../..//lib/libsa -D_STANDALONE  -c /usr/src/sys/arch/i386/stand/biosboot/../../../..//lib/libkern/sha1.c
>> cc -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -Wno-main  -Werror  -I/usr/src/sys/arch/i386/stand/biosboot/../../../..//lib/libkern/arch/i386 -DCOMPAT_OLDBOOT -DCOMPAT_386BSD_MBRPART -DSUPPORT_SERIAL=CONSDEV_PC -DDIRECT_SERIAL -DSUPPORT_USTARFS -DPASS_BIOSGEOM -DPASS_MEMMAP -nostdinc -I/usr/src/sys/arch/i386/stand/biosboot -I/usr/src/sys/arch/i386/stand/biosboot/../../../../ -I/usr/src/sys/arch/i386/stand/biosboot/../../../..//arch/i386/stand/lib -I/usr/src/sys/arch/i386/stand/biosboot/../../../..//lib/libsa -D_STANDALONE  -c /usr/src/sys/arch/i386/stand/biosboot/../../../..//lib/libkern/pmatch.c
>> building standard kern library
>> ranlib libkern.a
>> making sure the i386 library is up to date...
>> *** Error code 1
>> 
>> Stop.
>> *** Error code 1
>> 
>> Stop.
>> *** Error code 1
>> 
>> Stop.
>> *** Error code 1
>> 
>> Stop.
>> *** Error code 1
>> 
>> Stop.
>> *** Error code 1
>> 
>> Stop.
>> *** Error code 1
>> 
>> Stop.
>> *** Error code 1
>> 
>> Stop.
>> 
>> 
>> 
>> Looks like a problem /usr/src/sys/arch/i386/stand.  Those 'SUBDIR' lines are
>> probably needed  ;-)
>> 
>> Paul
>> --
>> Paul Dokas                                            dokas@cs.umn.edu
>> ======================================================================
>> Don Juan Matus:  "an enigma wrapped in mystery wrapped in a tortilla."
>> 
>> 
>
>
>
>