Really (I think) fix the sporadic heimdal build failures with high -j

levels. The root of the problem was that make was attempting to run up
to three concurrent asn1_compile commands to produce the three outputs
that it was declared to produce.  The failure was caused when the
asn1_compiles were started out of sync and a later one was truncating
the files that another thread was trying to copy.  In reality it is
supposed to be run exactly once and all three outputs are produced in
one pass.

Use the same hack as for the parent's Makefile.inc for the compile_et
multi-output rule.
This commit is contained in:
Peter Wemm 2014-02-19 07:09:14 +00:00
parent a9ad42220a
commit f0258c45f2
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=262209
4 changed files with 14 additions and 0 deletions

View File

@ -56,10 +56,12 @@ INCS+= krb5_asn1.h \
digest_asn1.h \
kx509_asn1.h
.ORDER: ${GEN_CMS}
${GEN_CMS}: cms.asn1 cms.opt
${ASN1_COMPILE} --one-code-file \
--option-file=${.ALLSRC:M*.opt} ${.ALLSRC:M*.asn1} cms_asn1
.ORDER: ${GEN_RFC2459}
${GEN_RFC2459}: rfc2459.asn1
${ASN1_COMPILE} \
--one-code-file \
@ -70,32 +72,39 @@ ${GEN_RFC2459}: rfc2459.asn1
--sequence=Extensions \
--sequence=CRLDistributionPoints ${.ALLSRC:M*.asn1} rfc2459_asn1
.ORDER: ${GEN_K5}
${GEN_K5}: krb5.asn1 krb5.opt
${ASN1_COMPILE} \
--one-code-file \
--option-file=${.ALLSRC:M*.opt} \
${.ALLSRC:M*.asn1} krb5_asn1
.ORDER: ${GEN_PKINIT}
${GEN_PKINIT}: pkinit.asn1
${ASN1_COMPILE} --one-code-file \
${.ALLSRC:M*.asn1} pkinit_asn1
.ORDER: ${GEN_PKCS8}
${GEN_PKCS8}: pkcs8.asn1
${ASN1_COMPILE} --one-code-file \
${.ALLSRC:M*.asn1} pkcs8_asn1
.ORDER: ${GEN_PKCS9}
${GEN_PKCS9}: pkcs9.asn1
${ASN1_COMPILE} --one-code-file \
${.ALLSRC:M*.asn1} pkcs9_asn1
.ORDER: ${GEN_PKCS12}
${GEN_PKCS12}: pkcs12.asn1
${ASN1_COMPILE} --one-code-file \
${.ALLSRC:M*.asn1} pkcs12_asn1
.ORDER: ${GEN_DIGEST}
${GEN_DIGEST}: digest.asn1
${ASN1_COMPILE} --one-code-file \
${.ALLSRC:M*.asn1} digest_asn1
.ORDER: ${GEN_KX509}
${GEN_KX509}: kx509.asn1
${ASN1_COMPILE} --one-code-file \
${.ALLSRC:M*.asn1} kx509_asn1

View File

@ -38,6 +38,7 @@ CFLAGS+=-I${KRB5DIR}/lib/roken -I.
CLEANFILES= ${GEN} ${GEN:S/.x$/.c/:S/.hx$/.h/} \
spnego_asn1_files spnego_asn1-template.c
.ORDER: ${GEN}
${GEN}: spnego.asn1 spnego.opt
${ASN1_COMPILE} --option-file=${.ALLSRC:M*.opt} \
${.ALLSRC:M*.asn1} spnego_asn1

View File

@ -84,6 +84,7 @@ GEN= asn1_Salt.x \
CLEANFILES= ${GEN} ${GEN:S/.x$/.c/:S/.hx$/.h/} hdb_asn1_files \
hdb_asn1-template.[ch]*
.ORDER: ${GEN}
${GEN}: hdb.asn1
${ASN1_COMPILE} ${.ALLSRC:M*.asn1} hdb_asn1

View File

@ -269,14 +269,17 @@ CLEANFILES= ${GEN} ${GEN:S/.x$/.c/:S/.hx$/.h/} ocsp_asn1_files \
INCS+= ocsp_asn1.h pkcs10_asn1.h crmf_asn1.h
.ORDER: ${GEN_OSCP}
${GEN_OCSP}: ocsp.asn1 ocsp.opt
${ASN1_COMPILE} --option-file=${.ALLSRC:M*.opt} \
${.ALLSRC:M*.asn1} ocsp_asn1
.ORDER: ${GEN_PKCS10}
${GEN_PKCS10}: pkcs10.asn1 pkcs10.opt
${ASN1_COMPILE} --option-file=${.ALLSRC:M*.opt} \
${.ALLSRC:M*.asn1} pkcs10_asn1
.ORDER: ${GEN_CRMF}
${GEN_CRMF}: crmf.asn1
${ASN1_COMPILE} ${.ALLSRC:M*.asn1} crmf_asn1