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