Module Name:    src
Committed By:   riastradh
Date:           Sun Jun  9 22:35:47 UTC 2024

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

Log Message:
arm/asm.h: Respect NETBSD_REVISIONID.


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

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

Modified files:

Index: src/sys/arch/arm/include/asm.h
diff -u src/sys/arch/arm/include/asm.h:1.34 src/sys/arch/arm/include/asm.h:1.35
--- src/sys/arch/arm/include/asm.h:1.34	Thu Apr 23 23:22:41 2020
+++ src/sys/arch/arm/include/asm.h	Sun Jun  9 22:35:47 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: asm.h,v 1.34 2020/04/23 23:22:41 jakllsch Exp $	*/
+/*	$NetBSD: asm.h,v 1.35 2024/06/09 22:35:47 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -224,10 +224,33 @@
 #define	PIC_SYM(x,y)	x
 #endif	/* __PIC__ */
 
-#define RCSID(x)	.pushsection ".ident","MS",%progbits,1;		\
-			.asciz x;					\
+/*
+ * Annoyingly, gas on arm seems to generate _two_ NUL-terminated
+ * strings for
+ *
+ *	.asciz "foo" "bar"
+ *
+ * instead of concatenating it into a single NUL-terminated string as
+ * on other architectures.
+ *
+ * To work around this, we concatenate into a single NUL-terminated by:
+ *
+ *	.ascii "foo"
+ *	.asciz "bar"
+ */
+#define _IDENTSTR(x)	.pushsection ".ident","MS",%progbits,1;		\
+			x;						\
 			.popsection
 
+#ifdef _NETBSD_REVISIONID
+#define	RCSID(_s)							\
+	_IDENTSTR(.asciz _s);						\
+	_IDENTSTR(.ascii "$"; .ascii "NetBSD: "; .ascii __FILE__;	\
+	    .ascii " "; .ascii _NETBSD_REVISIONID; .asciz " $")
+#else
+#define	RCSID(_s)	_IDENTSTR(.asciz _s)
+#endif
+
 #define	WEAK_ALIAS(alias,sym)						\
 	.weak alias;							\
 	alias = sym

Reply via email to