Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jul 2020 21:58:43 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r363263 - in head/lib/csu: . common
Message-ID:  <202007162158.06GLwh9N034510@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Thu Jul 16 21:58:43 2020
New Revision: 363263
URL: https://svnweb.freebsd.org/changeset/base/363263

Log:
  Include ABI note tag in shared libraries.
  
  Split the ELF feature note into a separate file that is linked into
  *crt1.o the same as crtbrand.S was before.  crtbrand.o is now linked
  into crti.o on all platforms in addition to *crt1.o.
  
  Reviewed by:	kib
  Sponsored by:	DARPA
  Differential Revision:	https://reviews.freebsd.org/D25304

Added:
  head/lib/csu/common/feature_note.S
     - copied, changed from r363261, head/lib/csu/common/crtbrand.S
Modified:
  head/lib/csu/Makefile.inc
  head/lib/csu/common/crtbrand.S

Modified: head/lib/csu/Makefile.inc
==============================================================================
--- head/lib/csu/Makefile.inc	Thu Jul 16 21:30:46 2020	(r363262)
+++ head/lib/csu/Makefile.inc	Thu Jul 16 21:58:43 2020	(r363263)
@@ -13,7 +13,7 @@ OBJS+=	crtbegin.o crtbeginS.o crtbeginT.o
 OBJS+=	crtend.o crtendS.o
 OBJS+=	crti.o crtn.o
 
-CRT1OBJS+=	crtbrand.o ignore_init_note.o
+CRT1OBJS+=	crtbrand.o feature_note.o ignore_init_note.o
 
 ACFLAGS+=	-DLOCORE
 
@@ -33,6 +33,7 @@ FILESDIR=	${LIBDIR}
 .undef LIBRARIES_ONLY
 
 CLEANFILES+=	${OBJS} ${CRT1OBJS} crt1_c.o gcrt1_c.o Scrt1_c.o
+CLEANFILES+=	crti_s.o
 
 crt1.o:	crt1_c.o ${CRT1OBJS}
 	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
@@ -67,6 +68,12 @@ crtbegin.o crtend.o crtbeginT.o:
 crtbeginS.o crtendS.o:
 	${CC} ${CFLAGS} -I${.CURDIR} ${CFLAGS_CRTS} -c -o ${.TARGET} \
 	    ${.ALLSRC:N*.h:[1]}
+
+crti_s.o: crti.S
+	${CC} ${CFLAGS} ${ACFLAGS} -c ${.ALLSRC:M*.S} -o ${.TARGET}
+
+crti.o: crti_s.o crtbrand.o
+	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
 
 .endif
 

Modified: head/lib/csu/common/crtbrand.S
==============================================================================
--- head/lib/csu/common/crtbrand.S	Thu Jul 16 21:30:46 2020	(r363262)
+++ head/lib/csu/common/crtbrand.S	Thu Jul 16 21:58:43 2020	(r363263)
@@ -38,7 +38,7 @@ __FBSDID("$FreeBSD$");
  * for more information.
  */
 
-	.section .note.tag,"a",%note
+	.section .note.tag,"aG",%note,.freebsd.noteG,comdat
 	.p2align	2
 	.4byte		2f-1f
 	.4byte		4f-3f
@@ -46,14 +46,4 @@ __FBSDID("$FreeBSD$");
 1:	.asciz		NOTE_FREEBSD_VENDOR
 2:	.p2align	2
 3:	.4byte		__FreeBSD_version
-4:
-
-	.section .note.tag,"a",%note
-	.p2align	2
-	.4byte		2f-1f
-	.4byte		4f-3f
-	.4byte		NT_FREEBSD_FEATURE_CTL
-1:	.asciz		NOTE_FREEBSD_VENDOR
-2:	.p2align	2
-3:	.4byte		0
 4:

Copied and modified: head/lib/csu/common/feature_note.S (from r363261, head/lib/csu/common/crtbrand.S)
==============================================================================
--- head/lib/csu/common/crtbrand.S	Thu Jul 16 20:44:04 2020	(r363261, copy source)
+++ head/lib/csu/common/feature_note.S	Thu Jul 16 21:58:43 2020	(r363263)
@@ -28,25 +28,8 @@
 #include <machine/asm.h>
 __FBSDID("$FreeBSD$");
 
-#include <sys/param.h>
 #include <sys/elf_common.h>
 #include "notes.h"
-
-/*
- * Special ".note.tag" entry specifying the ABI version.  See
- * http://www.netbsd.org/Documentation/kernel/elf-notes.html
- * for more information.
- */
-
-	.section .note.tag,"a",%note
-	.p2align	2
-	.4byte		2f-1f
-	.4byte		4f-3f
-	.4byte		NT_FREEBSD_ABI_TAG
-1:	.asciz		NOTE_FREEBSD_VENDOR
-2:	.p2align	2
-3:	.4byte		__FreeBSD_version
-4:
 
 	.section .note.tag,"a",%note
 	.p2align	2



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202007162158.06GLwh9N034510>