NetBSD Problem Report #59967
From www@netbsd.org Sat Feb 7 01:09:52 2026
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (2048 bits)
client-signature RSA-PSS (2048 bits))
(Client CN "mail.netbsd.org", Issuer "R13" (verified OK))
by mollari.NetBSD.org (Postfix) with ESMTPS id AB8CB1A923D
for <gnats-bugs@gnats.NetBSD.org>; Sat, 7 Feb 2026 01:09:52 +0000 (UTC)
Message-Id: <20260207010951.705411A923E@mollari.NetBSD.org>
Date: Sat, 7 Feb 2026 01:09:51 +0000 (UTC)
From: campbell+netbsd@mumble.net
Reply-To: campbell+netbsd@mumble.net
To: gnats-bugs@NetBSD.org
Subject: heimdal: broken .et/.asn1 rules
X-Send-Pr-Version: www-1.0
X-From4GNATS: "campbell+netbsd@mumble.net via gnats" <gnats-admin@NetBSD.org>
>Number: 59967
>Category: toolchain
>Synopsis: heimdal: broken .et/.asn1 rules
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: toolchain-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Feb 07 01:10:00 +0000 2026
>Last-Modified: Sat Feb 07 17:35:01 +0000 2026
>Originator: Taylor R Campbell
>Release: current, 11, 10, 9, ...
>Organization:
The NetKRB5 Machination, Inc.
>Environment:
>Description:
1. The procedure to generate .c and .h files from .et (error
table) files is to run compile_et to generate both at the
same time. The rule for this is:
${et_src:.et=.c} ${et_src:.et=.h}: ${et_src} ${TOOL_COMPILE_ET}
${_MKTARGET_CREATE}
${TOOL_COMPILE_ET} ${.ALLSRC:[1]}
This is equivalent to two rules for the .c and the .h files
independently; nothing prevents a parallel make(1) from
trying to run two compile_et instances in parallel jobs,
potentially clobbering each other's output.
2. The procedure to generate, e.g., krb5_asn1.h from krb5.asn1
goes through several stages, the first of which is to
simultaneously generate
krb5.ts
krb5_asn1-priv.hx
krb5.hx
krb5_asn1_files
from krb5.asn1 and krb5.opt by this rule:
${src:.asn1=.ts}: ${src} ${src:.asn1=.opt} ${TOOL_ASN1_COMPILE}
${_MKTARGET_CREATE}
@touch $@
${TOOL_ASN1_COMPILE} \
${ASN1_OPTS.${src}} \
--option-file=${.ALLSRC:[2]} \
${.ALLSRC:[1]} ${src:.asn1=_asn1}
The next stage is to generate krb5_asn1.h and
krb5_asn1-priv.h from krb5_asn1.hx and krb5_asn1-priv.hx,
but the rules to do these don't mention the .hx file, so if
it gets deleted then the build just fails:
${src:.asn1=_asn1.h}: ${src:.asn1=.ts}
${_MKTARGET_CREATE}
@${TOOL_SED} -E \
-e 's,#include <(.*)_asn1\.h>,#include <krb5/\1_asn1.h>,' \
2> /dev/null < ${src:.asn1=_asn1.hx} > ${src:.asn1=_asn1.h}
${src:.asn1=_asn1-priv.h}: ${src:.asn1=.ts}
${_MKTARGET_CREATE}
@cmp -s ${src:.asn1=_asn1-priv.hx} ${src:.asn1=_asn1-priv.h} \
2> /dev/null || \
cp ${src:.asn1=_asn1-priv.hx} ${src:.asn1=_asn1-priv.h}
3. Same deal as (1) for slc .in -> .c/.h files:
${slc_src:.in=.c} ${slc_src:.in=.h}: ${slc_src}
${_MKTARGET_CREATE}
${TOOL_SLC} ${.ALLSRC}
>How-To-Repeat:
1. run a highly parallel build, probably
2. delete the .hx and .h files and rebuild
3. run a highly parallel build, probably
>Fix:
1. .ORDER: ${et_src:.et=.c} ${et_src:.et=.h}
2. add intermediate .hx targets
3. .ORDER: ${slc_src:.et=.c} ${slc_src:.et=.h}
>Audit-Trail:
From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/59967 CVS commit: src/crypto/external/bsd/heimdal
Date: Sat, 7 Feb 2026 03:12:04 +0000
Module Name: src
Committed By: riastradh
Date: Sat Feb 7 03:12:04 UTC 2026
Modified Files:
src/crypto/external/bsd/heimdal: Makefile.rules.inc
Log Message:
heimdal: Fix .asn1 and .et rules, again.
PR toolchain/59967: heimdal: broken .et/.asn1 rules
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/crypto/external/bsd/heimdal/Makefile.rules.inc
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: "Robert Elz" <kre@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/59967 CVS commit: src/crypto/external/bsd/heimdal
Date: Sat, 7 Feb 2026 08:53:28 +0000
Module Name: src
Committed By: kre
Date: Sat Feb 7 08:53:28 UTC 2026
Modified Files:
src/crypto/external/bsd/heimdal: Makefile.rules.inc
Log Message:
PR toolchain/59967: Revert previous, it breaks the builds, all 75 of them.
To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/crypto/external/bsd/heimdal/Makefile.rules.inc
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/59967 CVS commit: src/crypto/external/bsd/heimdal
Date: Sat, 7 Feb 2026 17:34:25 +0000
Module Name: src
Committed By: riastradh
Date: Sat Feb 7 17:34:25 UTC 2026
Modified Files:
src/crypto/external/bsd/heimdal: Makefile.rules.inc
Log Message:
heimdal: Fix .asn1 and .et rules, again.
And write .in as needed, not .et, oops.
PR toolchain/59967: heimdal: broken .et/.asn1 rules
To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/crypto/external/bsd/heimdal/Makefile.rules.inc
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
(Contact us)
$NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2026
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.