Module Name:    src
Committed By:   matt
Date:           Tue Sep 10 16:45:33 UTC 2013

Modified Files:
        src/lib/csu: Makefile
        src/lib/csu/arch/earm: Makefile.inc
        src/lib/csu/common: Makefile.inc sysident.S sysident_assym.cf

Log Message:
Add support for a NetBSD MARCH elf note to record the MACHINE_ARCH for
which a program was compiled.


To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/lib/csu/Makefile
cvs rdiff -u -r1.2 -r1.3 src/lib/csu/arch/earm/Makefile.inc
cvs rdiff -u -r1.16 -r1.17 src/lib/csu/common/Makefile.inc
cvs rdiff -u -r1.1 -r1.2 src/lib/csu/common/sysident.S \
    src/lib/csu/common/sysident_assym.cf

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

Modified files:

Index: src/lib/csu/Makefile
diff -u src/lib/csu/Makefile:1.32 src/lib/csu/Makefile:1.33
--- src/lib/csu/Makefile:1.32	Sun Apr 28 06:09:52 2013
+++ src/lib/csu/Makefile	Tue Sep 10 16:45:33 2013
@@ -1,24 +1,21 @@
-#	$NetBSD: Makefile,v 1.32 2013/04/28 06:09:52 matt Exp $
+#	$NetBSD: Makefile,v 1.33 2013/09/10 16:45:33 matt Exp $
 
 .include <bsd.own.mk>
 
 .if ${USE_COMPILERCRTSTUFF} != "yes"
 
-.if defined(CSU_MACHINE_ARCH)
-.  if !exists(${.CURDIR}/arch/${CSU_MACHINE_ARCH}/Makefile.inc)
-.  error CSU_MACHINE_ARCH (${CSU_MACHINE_ARCH}) is unsupported
-.  endif
-.elif !empty(MACHINE_ARCH:Mearm*)
-CSU_MACHINE_ARCH=	earm
-.elif exists(${.CURDIR}/arch/${MACHINE_ARCH}/Makefile.inc)
-CSU_MACHINE_ARCH=	${MACHINE_ARCH}
+CSU_MACHINE_ARCH?=	${MACHINE_ARCH}
+
+.if !empty(CSU_MACHINE_ARCH:Mearm*)
+ARCHDIR:=	${.CURDIR}/arch/earm
+.elif exists(${.CURDIR}/arch/${CSU_MACHINE_ARCH}/Makefile.inc)
+ARCHDIR:=	${.CURDIR}/arch/${CSU_MACHINE_ARCH}
 .elif exists(${.CURDIR}/arch/${MACHINE_CPU}/Makefile.inc)
-CSU_MACHINE_ARCH=	${MACHINE_CPU}
+ARCHDIR:=	${.CURDIR}/arch/${MACHINE_CPU}
 .else
-.error Architecture (${MACHINE_ARCH} or ${MACHINE_CPU}) unsupported
+.error Architecture (${CSU_MACHINE_ARCH} or ${MACHINE_CPU}) unsupported
 .endif
 
-ARCHDIR:=	${.CURDIR}/arch/${CSU_MACHINE_ARCH}
 
 .PATH:	${ARCHDIR}
 .  include "${ARCHDIR}/Makefile.inc"

Index: src/lib/csu/arch/earm/Makefile.inc
diff -u src/lib/csu/arch/earm/Makefile.inc:1.2 src/lib/csu/arch/earm/Makefile.inc:1.3
--- src/lib/csu/arch/earm/Makefile.inc:1.2	Thu Jun 27 21:24:39 2013
+++ src/lib/csu/arch/earm/Makefile.inc	Tue Sep 10 16:45:33 2013
@@ -1,5 +1,5 @@
-# $NetBSD: Makefile.inc,v 1.2 2013/06/27 21:24:39 matt Exp $
+# $NetBSD: Makefile.inc,v 1.3 2013/09/10 16:45:33 matt Exp $
 
 CPPFLAGS+=	-I${ARCHDIR}
 CPPFLAGS+=	-DHAVE_INITFINI_ARRAY
-
+CPPFLAGS+=	-DELF_NOTE_MARCH_DESC=\"${CSU_MACHINE_ARCH}\"

Index: src/lib/csu/common/Makefile.inc
diff -u src/lib/csu/common/Makefile.inc:1.16 src/lib/csu/common/Makefile.inc:1.17
--- src/lib/csu/common/Makefile.inc:1.16	Mon Aug  5 13:38:35 2013
+++ src/lib/csu/common/Makefile.inc	Tue Sep 10 16:45:33 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.16 2013/08/05 13:38:35 matt Exp $
+#	$NetBSD: Makefile.inc,v 1.17 2013/09/10 16:45:33 matt Exp $
 
 .include <bsd.own.mk>
 
@@ -94,6 +94,7 @@ crtfm.o: crtfm.c
 	rm -f ${.TARGET}.o
 .endif
 
+GENASSYM_CONF=	${COMMON_DIR}/sysident_assym.cf 
 sysident_assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS}
 	${_MKTARGET_CREATE}
 	cat ${COMMON_DIR}/sysident_assym.cf | \
@@ -103,7 +104,7 @@ sysident_assym.h: ${GENASSYM_CONF} ${GEN
 
 CLEANFILES+=	sysident_assym.h
 
-crti.o: crti.S sysident_assym.h
+crti.o: crti.S sysident_assym.h sysident.S
 crtn.o: crtn.S
 
 FILES=${OBJS}

Index: src/lib/csu/common/sysident.S
diff -u src/lib/csu/common/sysident.S:1.1 src/lib/csu/common/sysident.S:1.2
--- src/lib/csu/common/sysident.S:1.1	Sat Aug  7 18:01:33 2010
+++ src/lib/csu/common/sysident.S	Tue Sep 10 16:45:33 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: sysident.S,v 1.1 2010/08/07 18:01:33 joerg Exp $ */
+/* $NetBSD: sysident.S,v 1.2 2013/09/10 16:45:33 matt Exp $ */
 
 /*
  * Copyright (c) 1997 Christopher G. Demetriou
@@ -59,7 +59,7 @@
 #include "sysident_assym.h"
 
 	.section ".note.netbsd.ident", "a"
-	.align 4
+	.p2align 2
 
 	.long	ELF_NOTE_NETBSD_NAMESZ
 	.long	ELF_NOTE_NETBSD_DESCSZ
@@ -68,10 +68,21 @@
 	.long	__NetBSD_Version__
 
 	.section ".note.netbsd.pax", "a"
-	.align 4
+	.p2align 2
 
 	.long	ELF_NOTE_PAX_NAMESZ
 	.long	ELF_NOTE_PAX_DESCSZ
 	.long	ELF_NOTE_TYPE_PAX_TAG
 	.ascii	"PaX\0"		/* ELF_NOTE_PAX_NAME */
 	.long	0
+
+#ifdef ELF_NOTE_MARCH_DESC
+	.section ".note.netbsd.march", "a"
+	.p2align 2
+
+	.long	ELF_NOTE_MARCH_NAMESZ
+	.long	ELF_NOTE_MARCH_DESCSZ
+	.long	ELF_NOTE_TYPE_MARCH_TAG
+	.ascii	"NetBSD\0\0"
+	.asciz	ELF_NOTE_MARCH_DESC
+#endif
Index: src/lib/csu/common/sysident_assym.cf
diff -u src/lib/csu/common/sysident_assym.cf:1.1 src/lib/csu/common/sysident_assym.cf:1.2
--- src/lib/csu/common/sysident_assym.cf:1.1	Sat Aug  7 18:01:33 2010
+++ src/lib/csu/common/sysident_assym.cf	Tue Sep 10 16:45:33 2013
@@ -10,3 +10,9 @@ define	ELF_NOTE_PAX_NAMESZ		ELF_NOTE_PAX
 define	ELF_NOTE_PAX_DESCSZ		ELF_NOTE_PAX_DESCSZ
 define	ELF_NOTE_TYPE_PAX_TAG		ELF_NOTE_TYPE_PAX_TAG
 #define	ELF_NOTE_PAX_NAME		ELF_NOTE_PAX_NAME
+
+define	ELF_NOTE_MARCH_NAMESZ		ELF_NOTE_MARCH_NAMESZ
+define	ELF_NOTE_MARCH_DESCSZ		sizeof(ELF_NOTE_MARCH_DESC)
+define	ELF_NOTE_TYPE_MARCH_TAG		ELF_NOTE_TYPE_MARCH_TAG
+#define	ELF_NOTE_MARCH_NAME		ELF_NOTE_MARCH_NAME
+#define	ELF_NOTE_MARCH_DESC		ELF_NOTE_MARCH_DESC

Reply via email to