NetBSD Problem Report #58376
From www@netbsd.org Fri Jun 28 17:31:51 2024
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) server-digest SHA256
client-signature RSA-PSS (2048 bits) client-digest SHA256)
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id 13D221A923A
for <gnats-bugs@gnats.NetBSD.org>; Fri, 28 Jun 2024 17:31:51 +0000 (UTC)
Message-Id: <20240628173149.D36BD1A923C@mollari.NetBSD.org>
Date: Fri, 28 Jun 2024 17:31:49 +0000 (UTC)
From: campbell+netbsd@mumble.net
Reply-To: campbell+netbsd@mumble.net
To: gnats-bugs@NetBSD.org
Subject: Missing DPADD for library version scripts
X-Send-Pr-Version: www-1.0
>Number: 58376
>Category: lib
>Synopsis: Missing DPADD for library version scripts
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: lib-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Jun 28 17:35:00 +0000 2024
>Last-Modified: Fri Nov 01 23:45:06 +0000 2024
>Originator: Taylor R Campbell
>Release: current, 10, 9, ...
>Organization:
The -Wl,--version-script=NetBSD.map Foundation
>Environment:
>Description:
Many (if not most, or even perhaps all) libraries that use version scripts do so by something like
LDFLAGS+=-Wl,--version-script=${.CURDIR}/foo.map
but do nothing to ensure that changes to foo.map trigger relinking, so the libraries can have stale symbol version exports.
>How-To-Repeat:
1. build libcrypto, heimdal, libnetpgpverify, gallium, ...
2. change the version script
3. rebuild
4. observe the changes to the version script do not trigger relinking and are not reflected in the library
>Fix:
Two options:
1. Sprinkle DPADD+= .../foo.map everywhere.
2. Invent a variable in bsd.lib.mk, say VERSIONSCRIPT, which (a) adds the appropriate -Wl,--version-script flag to LDFLAGS, and (b) updates DPADD accordingly.
>Audit-Trail:
From: Jason Thorpe <thorpej@me.com>
To: gnats-bugs@netbsd.org
Cc: lib-bug-people@netbsd.org,
gnats-admin@netbsd.org,
netbsd-bugs@netbsd.org
Subject: Re: lib/58376: Missing DPADD for library version scripts
Date: Fri, 28 Jun 2024 10:51:58 -0700
> On Jun 28, 2024, at 10:35=E2=80=AFAM, campbell+netbsd@mumble.net =
wrote:
>=20
> 2. Invent a variable in bsd.lib.mk, say VERSIONSCRIPT, which (a) adds =
the appropriate -Wl,--version-script flag to LDFLAGS, and (b) updates =
DPADD accordingly.
This option is the better one, IMO.
-- thorpej
From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/58376 CVS commit: src/share/mk
Date: Fri, 28 Jun 2024 20:45:26 +0000
Module Name: src
Committed By: riastradh
Date: Fri Jun 28 20:45:26 UTC 2024
Modified Files:
src/share/mk: bsd.README bsd.lib.mk
Log Message:
bsd.lib.mk: New variable VERSION_MAP.
This updates LDFLAGS with the right -Wl,--version-script=... argument
as well as DPADD so that changing the version script causes the
library to be rebuilt.
Name chosen to match FreeBSD.
PR lib/58376
To generate a diff of this commit:
cvs rdiff -u -r1.447 -r1.448 src/share/mk/bsd.README
cvs rdiff -u -r1.405 -r1.406 src/share/mk/bsd.lib.mk
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/58376 CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto
Date: Fri, 28 Jun 2024 21:15:55 +0000
Module Name: src
Committed By: riastradh
Date: Fri Jun 28 21:15:55 UTC 2024
Modified Files:
src/crypto/external/bsd/openssl/lib/libcrypto: Makefile
Log Message:
libcrypto: Use VERSION_MAP, not explicit -Wl,--version-script.
Fixes dependencies as in PR lib/58376.
To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 \
src/crypto/external/bsd/openssl/lib/libcrypto/Makefile
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/58376 CVS commit: src/share/mk
Date: Fri, 28 Jun 2024 21:58:24 +0000
Module Name: src
Committed By: riastradh
Date: Fri Jun 28 21:58:24 UTC 2024
Modified Files:
src/share/mk: bsd.README bsd.lib.mk
Log Message:
bsd.lib.mk: Resolve VERSION_MAP like a target prerequisite.
Not sure what I did before to make ${${VERSION_MAP}:P} fail to work;
can't reproduce it any more!
PR lib/58376
To generate a diff of this commit:
cvs rdiff -u -r1.448 -r1.449 src/share/mk/bsd.README
cvs rdiff -u -r1.406 -r1.407 src/share/mk/bsd.lib.mk
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/58376 CVS commit: src/crypto/external/bsd/openssl/lib/libcrypto
Date: Fri, 28 Jun 2024 21:59:18 +0000
Module Name: src
Committed By: riastradh
Date: Fri Jun 28 21:59:18 UTC 2024
Modified Files:
src/crypto/external/bsd/openssl/lib/libcrypto: Makefile
Log Message:
libcrypto: No need for ${.CURDIR}/ qualification in VERSION_MAP.
PR lib/58376
To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 \
src/crypto/external/bsd/openssl/lib/libcrypto/Makefile
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/58376 CVS commit: src/crypto/external/bsd/heimdal/lib
Date: Thu, 31 Oct 2024 15:05:53 +0000
Module Name: src
Committed By: riastradh
Date: Thu Oct 31 15:05:53 UTC 2024
Added Files:
src/crypto/external/bsd/heimdal/lib/libcom_err: com_err.expsym
src/crypto/external/bsd/heimdal/lib/libgssapi: gssapi.expsym
src/crypto/external/bsd/heimdal/lib/libhdb: hdb.expsym
src/crypto/external/bsd/heimdal/lib/libheimbase: heimbase.expsym
src/crypto/external/bsd/heimdal/lib/libheimntlm: heimntlm.expsym
src/crypto/external/bsd/heimdal/lib/libhx509: hx509.expsym
src/crypto/external/bsd/heimdal/lib/libkadm5srv: kadm5srv.expsym
src/crypto/external/bsd/heimdal/lib/libkdc: kdc.expsym
src/crypto/external/bsd/heimdal/lib/libkrb5: krb5.expsym
src/crypto/external/bsd/heimdal/lib/libroken: roken.expsym
src/crypto/external/bsd/heimdal/lib/libwind: wind.expsym
Log Message:
heimdal: Add expected symbols lists.
Excluded:
- libasn1 -- exported symbol list is currently machine-dependent
(vax, m68k, amd64 have _end/_init/_fini; earmv7 only has _end;
aarch64 adds _bss_end__, __end__, __bss_end__, __bss_start__; ...)
because it just does `global: *'
- libkafs, libsl -- no symbol version map, so exported list is
currently machine-dependent
- libkadm5clnt -- has a symbol version map, but we're not using it
(PR lib/58795: libkadm5clnt.so is built without symbol version map)
so exported symbol list is currently machine-dependent
Preparing for adopting VERSION_MAP to fix:
PR lib/58376: Missing DPADD for library version scripts
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/heimdal/lib/libcom_err/com_err.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/heimdal/lib/libgssapi/gssapi.expsym
cvs rdiff -u -r0 -r1.1 src/crypto/external/bsd/heimdal/lib/libhdb/hdb.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/heimdal/lib/libheimbase/heimbase.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/heimdal/lib/libheimntlm/heimntlm.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/heimdal/lib/libhx509/hx509.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/heimdal/lib/libkadm5srv/kadm5srv.expsym
cvs rdiff -u -r0 -r1.1 src/crypto/external/bsd/heimdal/lib/libkdc/kdc.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/heimdal/lib/libkrb5/krb5.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/heimdal/lib/libroken/roken.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/heimdal/lib/libwind/wind.expsym
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/58376 CVS commit: src/crypto/external/bsd/netpgp/lib/verify
Date: Thu, 31 Oct 2024 15:06:10 +0000
Module Name: src
Committed By: riastradh
Date: Thu Oct 31 15:06:10 UTC 2024
Modified Files:
src/crypto/external/bsd/netpgp/lib/verify: Makefile
Added Files:
src/crypto/external/bsd/netpgp/lib/verify: verify.expsym
Log Message:
libnetpgpverify: Add expected symbols list.
Preparing for adopting VERSION_MAP to fix:
PR lib/58376: Missing DPADD for library version scripts
To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/crypto/external/bsd/netpgp/lib/verify/Makefile
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/netpgp/lib/verify/verify.expsym
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/58376 CVS commit: src/crypto/external/bsd/openssl/lib
Date: Thu, 31 Oct 2024 15:06:53 +0000
Module Name: src
Committed By: riastradh
Date: Thu Oct 31 15:06:53 UTC 2024
Added Files:
src/crypto/external/bsd/openssl/lib/engines/dasync: dasync.expsym
src/crypto/external/bsd/openssl/lib/engines/devcrypto: devcrypto.expsym
src/crypto/external/bsd/openssl/lib/engines/loader_attic:
loader_attic.expsym
src/crypto/external/bsd/openssl/lib/engines/ossltest: ossltest.expsym
src/crypto/external/bsd/openssl/lib/engines/padlock: padlock.expsym
src/crypto/external/bsd/openssl/lib/liblegacy: legacy.expsym
src/crypto/external/bsd/openssl/lib/libssl: ssl.expsym
Log Message:
openssl: Add expected symbols lists.
Preparing for adopting VERSION_MAP to fix:
PR lib/58376: Missing DPADD for library version scripts
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/openssl/lib/engines/dasync/dasync.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/openssl/lib/engines/devcrypto/devcrypto.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/openssl/lib/engines/loader_attic/loader_attic.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/openssl/lib/engines/ossltest/ossltest.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/openssl/lib/engines/padlock/padlock.expsym
cvs rdiff -u -r0 -r1.1 \
src/crypto/external/bsd/openssl/lib/liblegacy/legacy.expsym
cvs rdiff -u -r0 -r1.1 src/crypto/external/bsd/openssl/lib/libssl/ssl.expsym
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/58376 CVS commit: src/external/bsd/libfido2/lib
Date: Thu, 31 Oct 2024 15:07:06 +0000
Module Name: src
Committed By: riastradh
Date: Thu Oct 31 15:07:06 UTC 2024
Added Files:
src/external/bsd/libfido2/lib: fido2.expsym
Log Message:
libfido2: Add expected symbols list.
Preparing for adopting VERSION_MAP to fix:
PR lib/58376: Missing DPADD for library version scripts
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/external/bsd/libfido2/lib/fido2.expsym
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/58376 CVS commit: src/crypto/external/bsd/heimdal
Date: Fri, 1 Nov 2024 23:43:33 +0000
Module Name: src
Committed By: riastradh
Date: Fri Nov 1 23:43:32 UTC 2024
Modified Files:
src/crypto/external/bsd/heimdal: Makefile.rules.inc
Log Message:
heimdal: Use VERSION_MAP, not bespoke LDFLAGS.
Verified that the exported symbols list doesn't change on amd64 for
libasn1, libkadm5clnt, libkafs, and libsl, even though they don't
currently have a .expsym file committed (because the symbols list is
machine-dependent because they're not exporting a specific list of
symbols).
PR lib/58376: Missing DPADD for library version scripts
To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 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/58376 CVS commit: src/crypto/external/bsd/netpgp/lib/verify
Date: Fri, 1 Nov 2024 23:43:52 +0000
Module Name: src
Committed By: riastradh
Date: Fri Nov 1 23:43:52 UTC 2024
Modified Files:
src/crypto/external/bsd/netpgp/lib/verify: Makefile
Log Message:
libnetpgpverify: Use VERSION_MAP, not bespoke LDFLAGS.
PR lib/58376: Missing DPADD for library version scripts
To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/crypto/external/bsd/netpgp/lib/verify/Makefile
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/58376 CVS commit: src/crypto/external/bsd/openssl/lib
Date: Fri, 1 Nov 2024 23:44:05 +0000
Module Name: src
Committed By: riastradh
Date: Fri Nov 1 23:44:04 UTC 2024
Modified Files:
src/crypto/external/bsd/openssl/lib/engines: engines.mk
src/crypto/external/bsd/openssl/lib/liblegacy: Makefile
src/crypto/external/bsd/openssl/lib/libssl: Makefile
Log Message:
openssl: Use VERSION_MAP, not bespoke LDFLAGS.
PR lib/58376: Missing DPADD for library version scripts
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/crypto/external/bsd/openssl/lib/engines/engines.mk
cvs rdiff -u -r1.7 -r1.8 \
src/crypto/external/bsd/openssl/lib/liblegacy/Makefile
cvs rdiff -u -r1.18 -r1.19 \
src/crypto/external/bsd/openssl/lib/libssl/Makefile
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/58376 CVS commit: src/external/bsd/libfido2/lib
Date: Fri, 1 Nov 2024 23:44:22 +0000
Module Name: src
Committed By: riastradh
Date: Fri Nov 1 23:44:21 UTC 2024
Modified Files:
src/external/bsd/libfido2/lib: Makefile
Log Message:
libfido2: Use VERSION_MAP, not bespoke LDFLAGS.
PR lib/58376: Missing DPADD for library version scripts
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/external/bsd/libfido2/lib/Makefile
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-2024
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.