NetBSD Problem Report #58960

From www@netbsd.org  Sat Jan  4 17:43:46 2025
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 "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id D84F01A923A
	for <gnats-bugs@gnats.NetBSD.org>; Sat,  4 Jan 2025 17:43:46 +0000 (UTC)
Message-Id: <20250104174345.0C21C1A923B@mollari.NetBSD.org>
Date: Sat,  4 Jan 2025 17:43:44 +0000 (UTC)
From: campbell+netbsd@mumble.net
Reply-To: campbell+netbsd@mumble.net
To: gnats-bugs@NetBSD.org
Subject: Missing support for _NETBSD_REVISIONID on various ports
X-Send-Pr-Version: www-1.0

>Number:         58960
>Category:       toolchain
>Synopsis:       Missing support for _NETBSD_REVISIONID on various ports
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    toolchain-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 04 17:45:00 +0000 2025
>Last-Modified:  Mon Jan 06 10:50:01 +0000 2025
>Originator:     Taylor R Campbell
>Release:        current
>Organization:
The NetBSD Revisionid
>Environment:
>Description:
For migration to a modern revision control system which has tree-wide revision ids rather than per-file numbering, in order to avoid losing valuable ident(1) diagnostics (especially for incremental update builds), we need to record a tree-wide revision id into each object file.

Currently we bake CVS/RCS revision numbers into objects from .c files with the RCSID("$NetBSD: ...$") and __KERNEL_RCSID(0, "$NetBSD: ...$") macros.  These macros should be adapted to process a _NETBSD_REVISIONID definition, which is fed in at the top level by build.sh.

Status of support by architecture:

[x] alpha
[-] amd64 (OK on gcc/gas, broken on clang)
[x] arm
[x] hppa
[-] i386 (OK on gcc/gas, broken on clang)
[x] ia64
[x] m68k
[x] mips
[x] or1k
[x] powerpc
[x] riscv
[x] sh3
[x] sparc
[x] vax

Note: Even when limited to gcc/gas toolchain, the assemblers may work differently on different architectures.  For example, on amd64, `.asciz "$" "NetBSD: " "foo" " $"' is assembled into a single NUL-terminated string "$NetBSD: foo $".  But on arm, it is assembled into a sequence of NUL-terminated strings "$", "$NetBSD: ", "foo", " $".  To get the desired result, we use `.ascii "$"; .ascii "NetBSD: "; .ascii "foo"; .asciz " $"' on arm32.  This may also be necessary to make it work on amd64 under clang.

Prior commits (tracked here in case we want to pull them up):

https://mail-index.netbsd.org/source-changes/2024/06/09/msg151710.html
https://mail-index.netbsd.org/source-changes/2024/06/09/msg151711.html
https://mail-index.netbsd.org/source-changes/2024/06/09/msg151712.html
https://mail-index.netbsd.org/source-changes/2024/06/09/msg151713.html
>How-To-Repeat:
Run ident(1) on trees built from hg/git with NETBSD_REVISIONID set.
>Fix:
Yes, please!

>Release-Note:

>Audit-Trail:
From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch/sh3/include
Date: Sat, 4 Jan 2025 18:28:16 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Sat Jan  4 18:28:16 UTC 2025

 Modified Files:
 	src/sys/arch/sh3/include: asm.h

 Log Message:
 PR 58960: sh3/asm.h: Respect _NETBSD_REVISIONID.


 To generate a diff of this commit:
 cvs rdiff -u -r1.29 -r1.30 src/sys/arch/sh3/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch/powerpc/include
Date: Sat, 4 Jan 2025 18:37:24 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Sat Jan  4 18:37:24 UTC 2025

 Modified Files:
 	src/sys/arch/powerpc/include: asm.h

 Log Message:
 PR 58960: powerpc/asm.h: Respect NETBSD_REVISIONID.


 To generate a diff of this commit:
 cvs rdiff -u -r1.54 -r1.55 src/sys/arch/powerpc/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Robert Elz <kre@munnari.OZ.AU>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: toolchain/58960: Missing support for _NETBSD_REVISIONID on various ports
Date: Sun, 05 Jan 2025 01:45:04 +0700

     Date:        Sat,  4 Jan 2025 17:45:00 +0000 (UTC)
     From:        campbell+netbsd@mumble.net
     Message-ID:  <20250104174500.BFCCF1A923C@mollari.NetBSD.org>

   | For migration to a modern revision control system which has tree-wide
   | revision ids rather than per-file numbering, in order to avoid losing
   | valuable ident(1) diagnostics

 The point of those things is so two users, perhaps running different
 releases entirely (as in 9 vs HEAD) can easily tell if the code they
 are using is the same or not (without needing any src/* files at all).

 Lots of stuff is unchanged even over major releases, and should identify
 itself as being unchanged.   I can't see how anything supplied by build.sh
 can possibly fill that need, and having every file in the system contain
 a revision which are all the same seems pointless, and that's what most
 people would end up with - whether they build from source or install a
 binary release (in a src release, close to everything, except some scripts
 and man pages, ends up depending upon sys/param.h so any build of any
 new release version ends up compiling close to everything).

 If a so called "modern revision control system" can't put any form of
 (per file) revision info (indicating when, in some sense, that particular
 file was last updated) then we really shouldn't even consider using it.

 If they can, that's what we should be using, not some build.sh supplied
 value (and how would that work for people who simply go into some part
 of the source tree and do "make install" to install just one updated
 program/library, without touching anything else) ?

 kre

 ps: I know that if one uses build.sh -u (when sys/param.h hasn't been altered)
 and has that install over the top of a currently installed system, then just
 a few files need be recompiled, or installed, but my guess would be that's a
 relatively rare usage pattern.


From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch/sparc/include
Date: Sat, 4 Jan 2025 18:45:23 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Sat Jan  4 18:45:23 UTC 2025

 Modified Files:
 	src/sys/arch/sparc/include: asm.h

 Log Message:
 PR 58960: sparc/asm.h: Respect NETBSD_REVISIONID.


 To generate a diff of this commit:
 cvs rdiff -u -r1.23 -r1.24 src/sys/arch/sparc/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch/vax/include
Date: Sat, 4 Jan 2025 19:02:52 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Sat Jan  4 19:02:52 UTC 2025

 Modified Files:
 	src/sys/arch/vax/include: asm.h

 Log Message:
 PR 58960: vax/asm.h: Respect NETBSD_REVISIONID.


 To generate a diff of this commit:
 cvs rdiff -u -r1.28 -r1.29 src/sys/arch/vax/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch/ia64/include
Date: Sat, 4 Jan 2025 19:09:13 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Sat Jan  4 19:09:13 UTC 2025

 Modified Files:
 	src/sys/arch/ia64/include: asm.h

 Log Message:
 PR 58960: ia64/asm.h: Respect NETBSD_REVISIONID.


 To generate a diff of this commit:
 cvs rdiff -u -r1.9 -r1.10 src/sys/arch/ia64/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch/m68k/include
Date: Sat, 4 Jan 2025 19:17:58 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Sat Jan  4 19:17:58 UTC 2025

 Modified Files:
 	src/sys/arch/m68k/include: asm.h

 Log Message:
 PR 58960: m68k/asm.h: Respect NETBSD_REVISIONID.


 To generate a diff of this commit:
 cvs rdiff -u -r1.35 -r1.36 src/sys/arch/m68k/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch/mips/include
Date: Sat, 4 Jan 2025 19:29:45 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Sat Jan  4 19:29:45 UTC 2025

 Modified Files:
 	src/sys/arch/mips/include: asm.h

 Log Message:
 PR 58960: mips/asm.h: Respect NETBSD_REVISIONID.


 To generate a diff of this commit:
 cvs rdiff -u -r1.75 -r1.76 src/sys/arch/mips/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Nick Hudson" <skrll@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch/riscv/include
Date: Sat, 4 Jan 2025 21:02:01 +0000

 Module Name:	src
 Committed By:	skrll
 Date:		Sat Jan  4 21:02:01 UTC 2025

 Modified Files:
 	src/sys/arch/riscv/include: asm.h

 Log Message:
 PR 58960: riscv/asm.h: Respect NETBSD_REVISIONID.


 To generate a diff of this commit:
 cvs rdiff -u -r1.8 -r1.9 src/sys/arch/riscv/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Thomas Klausner <wiz@NetBSD.org>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc: 
Subject: Re: toolchain/58960: Missing support for _NETBSD_REVISIONID on
 various ports
Date: Sat, 4 Jan 2025 22:09:55 +0100

 On Sat, Jan 04, 2025 at 06:50:01PM +0000, Robert Elz via gnats wrote:
 >  The point of those things is so two users, perhaps running different
 >  releases entirely (as in 9 vs HEAD) can easily tell if the code they
 >  are using is the same or not (without needing any src/* files at all).

 That is one definition.

 Another is that the users can identify exactly which code they are
 using, and for that the central id is perfect, because it also
 incorporates the exact versions of the libraries used, which you'll
 never get by just running ident(1) on the binary in the current world.

 I prefer this feature.
  Thomas

From: "Nick Hudson" <skrll@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch/hppa/include
Date: Sat, 4 Jan 2025 21:10:19 +0000

 Module Name:	src
 Committed By:	skrll
 Date:		Sat Jan  4 21:10:19 UTC 2025

 Modified Files:
 	src/sys/arch/hppa/include: asm.h

 Log Message:
 PR 58960: hppa/asm.h: Respect _NETBSD_REVISIONID.


 To generate a diff of this commit:
 cvs rdiff -u -r1.18 -r1.19 src/sys/arch/hppa/include/asm.h

 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/58960 CVS commit: src/sys/arch/i386/include
Date: Sun, 5 Jan 2025 16:53:26 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Sun Jan  5 16:53:26 UTC 2025

 Modified Files:
 	src/sys/arch/i386/include: asm.h

 Log Message:
 i386/asm.h: Missed a spot in previous concatenated-.asciz change.

 PR toolchain/58960: Missing support for _NETBSD_REVISIONID on various
 ports


 To generate a diff of this commit:
 cvs rdiff -u -r1.46 -r1.47 src/sys/arch/i386/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Robert Elz <kre@munnari.OZ.AU>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: toolchain/58960: Missing support for _NETBSD_REVISIONID on various ports
Date: Mon, 06 Jan 2025 01:27:21 +0700

     Date:        Sat,  4 Jan 2025 21:10:02 +0000 (UTC)
     From:        "Thomas Klausner via gnats" <gnats-admin@NetBSD.org>
     Message-ID:  <20250104211002.174231A923C@mollari.NetBSD.org>

   |  Another is that the users can identify exactly which code they are
   |  using,

 Both do that.   Seperate per source files more accurately, as it also
 handles the case where only part of the tree has been updated (whatever
 happens with version control systems, my /usr/src will never contain
 directly checked out copies from one of those (with CVS, no CVS dirs for
 example), that is all elsewhere, /usr/src contains the sources used to
 build what I have installed in /bin /usr/bin ... and tends to get updated,
 by copying files, piecemeal when there is something changed in the full
 sources that I want (and sometimes when I simply want changes which will n
 ever be committed).

   | because it also incorporates the exact versions of the libraries used,

 Only for statically linked libraries, which means for almost nothing.
 An identifier in a program binary cannot possibly keep changing every time
 a shared library is updated.

 And no-one yet seems to have explained how this central identifier, that
 build.sh apparently obtains from somewhere, is to work when building things
 without using build.sh -- none of my kernel builds use build.sh, but I still
 like to be able to find out what's in them (as one example) and I routinely
 simply "make" on an updated utility or library which has a fix I want more
 urgently than I want to update everything.   That all needs to keep working.

 kre


From: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: toolchain/58960: Missing support for _NETBSD_REVISIONID on
 various ports
Date: Sun, 5 Jan 2025 23:25:13 +0100

 On Sun, Jan 05, 2025 at 06:30:03PM +0000, Robert Elz via gnats wrote:
 >  Both do that.   Seperate per source files more accurately, as it also
 >  handles the case where only part of the tree has been updated (whatever
 >  happens with version control systems, my /usr/src will never contain
 >  directly checked out copies from one of those (with CVS, no CVS dirs for
 >  example), that is all elsewhere, /usr/src contains the sources used to
 >  build what I have installed in /bin /usr/bin ... and tends to get updated,
 >  by copying files, piecemeal when there is something changed in the full
 >  sources that I want (and sometimes when I simply want changes which will n
 >  ever be committed).

 I think you leave the path of what can be supported here.  If you
 start copying in files, then they might not have any CVS or RCS or
 whatever identifiers, and you'll be on your own wrt to keeping track
 of what files in particular a binary is using.

 I don't think this is something that can be usefully supported in
 general, and is not in the current way either. Some ways you are using
 it might be working for you, but I don't see it working in general.

 >  And no-one yet seems to have explained how this central identifier, that
 >  build.sh apparently obtains from somewhere, is to work when building things
 >  without using build.sh -- none of my kernel builds use build.sh, but I still
 >  like to be able to find out what's in them (as one example) and I routinely
 >  simply "make" on an updated utility or library which has a fix I want more
 >  urgently than I want to update everything.   That all needs to keep working.

 I didn't see the question posed anywhere yet either, so it's not
 surprising to me it hasn't been answered.

 Since you keep stating fiat statements, I'll do that too: No, that
 doesn't need to "keep working".

 I think it's a good enough state that when you run 'build.sh' and end
 up with a distribution, that you can identify which source code to
 check out to get the sources that can be used to rebuild these files
 (using build.sh again).
  Thomas

From: Robert Elz <kre@munnari.OZ.AU>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: toolchain/58960: Missing support for _NETBSD_REVISIONID on various ports
Date: Mon, 06 Jan 2025 07:11:27 +0700

     Date:        Sun,  5 Jan 2025 22:30:02 +0000 (UTC)
     From:        "Thomas Klausner via gnats" <gnats-admin@NetBSD.org>
     Message-ID:  <20250105223002.C83951A923B@mollari.NetBSD.org>


   |  I think you leave the path of what can be supported here.  If you
   |  start copying in files, then they might not have any CVS or RCS or
   |  whatever identifiers, and you'll be on your own wrt to keeping track
   |  of what files in particular a binary is using.

 The files copied are the same ones that would be compiled by build.sh
 and have the exact same __RCSID() as would "normally" be used.  If an
 updated file gets copied, then its updated __RCSID() gets copied as well.
 If I simply edit one of the files and make changes, I can easily edit
 the __RCSID() as well.   There's nothing extra needed to support, this
 all just works.   Aside from when build.sh attempts to work out the
 build version (cvslatest and its equiv for hg or git I assume) which
 isn't something I need, nothing it does cares about the version control
 system in use, and after checking options etc, setting up for cross builds
 (also unneeded in this usage) all it does is run make.   Just running
 make by hand should always work.

   |  I didn't see the question posed anywhere yet either, so it's not
   |  surprising to me it hasn't been answered.

 Hmm, you're right, I intended to include that in my first reply, but it
 seems I side-tracked myself, and then forgot to actually include it.

   |  Since you keep stating fiat statements, I'll do that too: No, that
   |  doesn't need to "keep working".

 I think you'd find that most developers who work on the src/* tree
 much wouldn't agree with you - that's more or less equivalent to saying
 that all that has to work in pkgsrc is pbulk and simply doing "make"
 in one of the pkg src directories doesn't need to keep working.   Building
 all must work, but there's no need to be able to build selectively.
 Nonsense.

 Having said all that, between my last message and this one, I actually
 went (finally) and looked to see what the changes actually are, which I
 hadn't done before (and obviously neither had you, or your responses would
 have been quite different) - I was relying upon just what was in this PR
 to work out what was desired to happen.   It turns out that was not very
 precise.

 That is, I read:

 	Currently we bake CVS/RCS revision numbers into objects from .c
 	files with the RCSID("$NetBSD: ...$") and
 	__KERNEL_RCSID(0, "$NetBSD: ...$") macros.  These macros should
 	be adapted to process a _NETBSD_REVISIONID definition, which is fed
 	in at the top level by build.sh.

 as meaning that the _NETBSD_REVISIONID was going to replace the current
 string (presumably because neither got nor hg provide simple linear number
 identifiers for versions).   But that's not what is happening, rather, if
 _NETBSD_REVISIONID happens to be defined, it is *also* being included in the
 data baked into the objects, along with what is there now (or whatever
 modified version a git/hg checkout will end up producing - which I hope
 will be something, rather than simply ignoring these lines).   If
 _NETBSD_REVISIONID isn't defined, then nothing changes from what we have
 now (the way that gets done alters a bit, but that's immaterial).

 Given that, and assuming we can end up producing an identifier (or string)
 to replace $NetBSD$ (and perhaps some of the others, though those are
 generally less important) that identifies each file (for the __RCSID, and
 the line 1 (sometimes later) comment line identifier, all will be well.

 kre

From: =?UTF-8?Q?J=C3=B6rg_Sonnenberger?= <joerg@bec.de>
To: gnats-bugs@netbsd.org, toolchain-manager@netbsd.org,
 gnats-admin@netbsd.org, netbsd-bugs@netbsd.org, campbell+netbsd@mumble.net
Cc: 
Subject: Re: toolchain/58960: Missing support for _NETBSD_REVISIONID on
 various ports
Date: Mon, 6 Jan 2025 04:03:45 +0100

 On 1/4/25 7:50 PM, Robert Elz via gnats wrote:
 >   If a so called "modern revision control system" can't put any form of
 >   (per file) revision info (indicating when, in some sense, that particular
 >   file was last updated) then we really shouldn't even consider using it.

 Ignoring for a moment that it is actually moderately expensive to 
 compute, the main problem is that there is no good way right now to feed 
 that information back into the build process.

 IMO the current RCSID is moderately useless for anything but very 
 traditional C code. Changing a header won't change output binary whether 
 or not it is a semantically relevant change.

 The current functionality of __RCSID could be replaced by a "hash the 
 file this resolves to" modifier in make. That's in fact still more 
 useful than the current __RCSID as it can also be used to detect if 
 there was a local change in the file, which the current system can't. 
 That's in fact one of the reasons why the recorded IDs in pkgsrc are 
 using that schema.

 Joerg

From: Taylor R Campbell <riastradh@NetBSD.org>
To: Robert Elz <kre@munnari.OZ.AU>
Cc: gnats-bugs@NetBSD.org, netbsd-bugs@NetBSD.org
Subject: Re: toolchain/58960: Missing support for _NETBSD_REVISIONID on various ports
Date: Mon, 6 Jan 2025 06:58:17 +0000

 > Date: Mon, 06 Jan 2025 07:11:27 +0700
 > From: Robert Elz <kre@munnari.OZ.AU>
 >
 > That is, I read:
 >=20
 > 	Currently we bake CVS/RCS revision numbers into objects from .c
 > 	files with the RCSID("$NetBSD: ...$") and
 > 	__KERNEL_RCSID(0, "$NetBSD: ...$") macros.  These macros should
 > 	be adapted to process a _NETBSD_REVISIONID definition, which is fed
 > 	in at the top level by build.sh.
 >=20
 > as meaning that the _NETBSD_REVISIONID was going to replace the current
 > string (presumably because neither got nor hg provide simple linear number
 > identifiers for versions).   But that's not what is happening, rather, if
 > _NETBSD_REVISIONID happens to be defined, it is *also* being included in =
 the
 > data baked into the objects, along with what is there now (or whatever
 > modified version a git/hg checkout will end up producing - which I hope
 > will be something, rather than simply ignoring these lines).   If
 > _NETBSD_REVISIONID isn't defined, then nothing changes from what we have
 > now (the way that gets done alters a bit, but that's immaterial).

 Correct: This PR is about teaching the RCSID/__KERNEL_RCSID macros to
 include _NETBSD_REVISIONID, without replacing what's already there, so
 it only adds information.

 The exact nature of the information to be added is yet to be
 determined.  For now build.sh passes in a changeset hash when it runs
 make(1).  I plan to do two things differently:

 1. Use a more meaningful revision id that shows:
    (a) the latest tag, like netbsd-10.99.12;
    (b) number of changes since the latest tag; and
    (c) whether the working tree has changes or not.

 2. Derive _NETBSD_REVISIONID when you run make(1) rather than when you
    run build.sh.

 We might also contemplate other variations like recording some
 information about make(1) prerequisites.  How much information is
 worth putting into it remains to be seen.  ident(1) output has always
 been a useful if limited diagonstic, never perfect, so we'll discuss
 and experiment with what information goes in.

 But this PR is only about whether the macros take _NETBSD_REVISIONID
 and bake it into the object file so we have the opportunity to do that
 experimentation.  So I'll close the PR when we're sure it's all
 working and we can move discussion about what goes into
 _NETBSD_REVISIONID elsewhere.

From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch
Date: Sun, 5 Jan 2025 14:30:38 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Sun Jan  5 14:30:38 UTC 2025

 Modified Files:
 	src/sys/arch/amd64/include: asm.h
 	src/sys/arch/i386/include: asm.h

 Log Message:
 x86 machine/asm.h: Avoid juxtaposition for concatenation.

 clang asm doesn't seem to like it.  Instead of `.asciz "foo" "bar"',
 do `.ascii "foo"; .asciz "bar"'.

 PR toolchain/58960: Missing support for _NETBSD_REVISIONID on various
 ports


 To generate a diff of this commit:
 cvs rdiff -u -r1.23 -r1.24 src/sys/arch/amd64/include/asm.h
 cvs rdiff -u -r1.45 -r1.46 src/sys/arch/i386/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/58960 CVS commit: src/sys/arch
Date: Mon, 6 Jan 2025 10:46:45 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Mon Jan  6 10:46:44 UTC 2025

 Modified Files:
 	src/sys/arch/hppa/include: asm.h
 	src/sys/arch/ia64/include: asm.h
 	src/sys/arch/m68k/include: asm.h
 	src/sys/arch/mips/include: asm.h
 	src/sys/arch/or1k/include: asm.h
 	src/sys/arch/powerpc/include: asm.h
 	src/sys/arch/riscv/include: asm.h
 	src/sys/arch/sh3/include: asm.h
 	src/sys/arch/sparc/include: asm.h
 	src/sys/arch/vax/include: asm.h

 Log Message:
 PR 58960: fix misunderstanding in semantic and provide both the original
 id string as well as _NETBSD_REVISIONID.
 Do not rely on string concatenation in the inline assembler, use .ascii
 and .asciz for individual string parts instead.


 To generate a diff of this commit:
 cvs rdiff -u -r1.19 -r1.20 src/sys/arch/hppa/include/asm.h
 cvs rdiff -u -r1.10 -r1.11 src/sys/arch/ia64/include/asm.h
 cvs rdiff -u -r1.36 -r1.37 src/sys/arch/m68k/include/asm.h
 cvs rdiff -u -r1.76 -r1.77 src/sys/arch/mips/include/asm.h
 cvs rdiff -u -r1.3 -r1.4 src/sys/arch/or1k/include/asm.h
 cvs rdiff -u -r1.55 -r1.56 src/sys/arch/powerpc/include/asm.h
 cvs rdiff -u -r1.10 -r1.11 src/sys/arch/riscv/include/asm.h
 cvs rdiff -u -r1.30 -r1.31 src/sys/arch/sh3/include/asm.h
 cvs rdiff -u -r1.24 -r1.25 src/sys/arch/sparc/include/asm.h
 cvs rdiff -u -r1.29 -r1.30 src/sys/arch/vax/include/asm.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(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-2025 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.