Module Name:    src
Committed By:   joerg
Date:           Thu Apr 30 14:32:05 UTC 2020

Modified Files:
        src/sys/sys: cdefs_elf.h

Log Message:
GNU as on ARM silently accepts @progbits, but interpretes it as comment
internally. LLVM bails out on the other hand. So conditionally this
properly.


To generate a diff of this commit:
cvs rdiff -u -r1.56 -r1.57 src/sys/sys/cdefs_elf.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/sys/cdefs_elf.h
diff -u src/sys/sys/cdefs_elf.h:1.56 src/sys/sys/cdefs_elf.h:1.57
--- src/sys/sys/cdefs_elf.h:1.56	Fri Apr 17 14:19:44 2020
+++ src/sys/sys/cdefs_elf.h	Thu Apr 30 14:32:05 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: cdefs_elf.h,v 1.56 2020/04/17 14:19:44 joerg Exp $	*/
+/*	$NetBSD: cdefs_elf.h,v 1.57 2020/04/30 14:32:05 joerg Exp $	*/
 
 /*
  * Copyright (c) 1995, 1996 Carnegie-Mellon University.
@@ -134,16 +134,30 @@
 	      _C_LABEL_STRING(#name) " = " _C_LABEL_STRING(#resolver))
 #endif
 
+#ifdef __arm__
 #if __STDC__
-#define	__SECTIONSTRING(_sec, _str)					\
-	__asm(".pushsection " #_sec ",\"MS\",@progbits,1\n"		\
+#  define	__SECTIONSTRING(_sec, _str)					\
+	__asm(".pushsection " #_sec ",\"MS\",%progbits,1\n"		\
+	      ".asciz \"" _str "\"\n"					\
+	      ".popsection")
+#else
+#  define	__SECTIONSTRING(_sec, _str)					\
+	__asm(".pushsection " _sec ",\"MS\",%progbits,1\n"		\
 	      ".asciz \"" _str "\"\n"					\
 	      ".popsection")
+#  endif
 #else
-#define	__SECTIONSTRING(_sec, _str)					\
+#  if __STDC__
+#  define	__SECTIONSTRING(_sec, _str)					\
+	__asm(".pushsection " #_sec ",\"MS\",@progbits,1\n"		\
+	      ".asciz \"" _str "\"\n"					\
+	      ".popsection")
+#  else
+#  define	__SECTIONSTRING(_sec, _str)					\
 	__asm(".pushsection " _sec ",\"MS\",@progbits,1\n"		\
 	      ".asciz \"" _str "\"\n"					\
 	      ".popsection")
+#  endif
 #endif
 
 #define	__IDSTRING(_n,_s)		__SECTIONSTRING(.ident,_s)

Reply via email to