Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: compile libukfs/ukfs.ln fails on amd64



On Tue Jul 29 2008 at 16:09:55 -0600, Greg Oster wrote:
> I think in src/sys/rump/librump/rumpkern/Makefile.rumpkern you'd need 
> to split this:
> 
> rumpdefs.h rumpvnode_if.h rumpvnode_if.c: vnode_if.c \
>   ...
> 
> into:
> rumpdefs.h: vnode_if.c \
>   ...
> rumpvnode_if.h: vnode_if.c \
>   ...
> rumpvnode_if.c: vnode_if.c \
>   ...
> 
> I suspect the issue here is that one branch of the build is trying to
> build rumpdefs.h, and one rumpvnode_if.h, and one rumpvnode_if.c, but 
> that results in the same Makefile bits being executed for all 3.

Aah, it magically extracted the different targets.  Ok.

> > Also, bonus question: why hasn't this been seen before?  That portion
> > of the Makefile didn't change.
> 
> All it takes is for something to change the timing of something 
> earlier in the build, and that will change what bits are running in 
> parallel at any given moment...  e.g. even running w/ -j 15 or -j 17 
> might or might not show the same problem...  (www... races in 
> build.sh..)

Hmm.....  before this rumpkern was entered after a .WAIT.  If anything,
I'd think the problem would be *more* likely to show up then.

Anyway, can you try the attached patch?
Index: Makefile.rumpkern
===================================================================
RCS file: /cvsroot/src/sys/rump/librump/rumpkern/Makefile.rumpkern,v
retrieving revision 1.1
diff -p -u -r1.1 Makefile.rumpkern
--- Makefile.rumpkern   29 Jul 2008 13:17:47 -0000      1.1
+++ Makefile.rumpkern   29 Jul 2008 22:25:13 -0000
@@ -64,21 +64,27 @@ VOPTORUMPVOP="-e s/vop/rump_vop/g;/VOPAR
 VOPTORUMPVOP+="-e s/vm_prot_t/int/g"
 VOPTORUMPVOP+="-e s/voff_t/off_t/g;/sys\/buf\.h/s/.*/struct buf;/"
 RVNH=\#include \<rump\/rump.h\>
-rumpdefs.h rumpvnode_if.h rumpvnode_if.c: vnode_if.c \
-               ${RUMPTOP}/../sys/vnode_if.h \
-               ${RUMPTOP}/../kern/vnode_if.c \
-               ${RUMPTOP}/../sys/namei.h \
-               ${RUMPTOP}/../sys/fcntl.h \
-               ${RUMPTOP}/../sys/vnode.h \
-               ${RUMPTOP}/../sys/errno.h \
+
+rumpvnode_if.h: ${RUMPTOP}/../kern/vnode_if.c \
                ${RUMPTOP}/librump/rumpkern/Makefile.rumpkern
-       echo Regenerating rumpdefs.h, rumpvnode_if.h and rumpvnode_if.c
+       echo Generating rumpvnode_if.h
        sed ${VOPTORUMPVOP}";s/SYS_VNODE_IF_H/SYS_RUMPVNODE_IF_H/g"     \
            < ${RUMPTOP}/../sys/vnode_if.h > rumpvnode_if.h
+
+rumpvnode_if.c: ${RUMPTOP}/../sys/vnode_if.h \
+               ${RUMPTOP}/librump/rumpkern/Makefile.rumpkern
+       echo Generating rumpvnode_if.c
        # XXX: some creative kludging to simulate 'a\' (I have no
        # clue how to make it work in a Makefile
        sed ${VOPTORUMPVOP}";/sys\/vnode.h/{x;s/.*/${RVNH}/;x;G;n;}"    \
            < ${RUMPTOP}/../kern/vnode_if.c > rumpvnode_if.c
+
+rumpdefs.h: ${RUMPTOP}/../sys/namei.h \
+           ${RUMPTOP}/../sys/fcntl.h \
+           ${RUMPTOP}/../sys/vnode.h \
+           ${RUMPTOP}/../sys/errno.h \
+           ${RUMPTOP}/librump/rumpkern/Makefile.rumpkern
+       echo Generating rumpdefs.h
        sed -n '/#define NAMEI_/s/NAMEI_/RUMP_NAMEI_/gp'                \
            < ${RUMPTOP}/../sys/namei.h > rumpdefs.h
        sed -n '/#define        O_[A-Z]*        *0x/s/O_/RUMP_O_/gp'    \
@@ -95,7 +101,7 @@ rumpdefs.h rumpvnode_if.h rumpvnode_if.c
 
 CLEANFILES+=   rumpvnode_if.c rumpvnode_if.h rumpdefs.h
 
-beforedepend: rumpvnode_if.c
+beforedepend: rumpvnode_if.c rumpvnode_if.h rumpdefs.h
 
 .include <bsd.lib.mk>
 .include <bsd.klinks.mk>


Home | Main Index | Thread Index | Old Index