Re: svn commit: r363263 - in head/lib/csu: . common

2021-02-26 Thread John Baldwin

On 2/26/21 6:02 AM, Kyle Evans wrote:

On Thu, Jul 16, 2020 at 4:58 PM John Baldwin  wrote:


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.



This is pretty handy; any chance we can backport this series for 12.3?


So there is an issue I need to resolve in that the notes can get lost if you
use --gc-sections which LLVM does when building the cross toolchain (so the
trick of using .comdat for notes doesn't end up working out).  Right now it
only fully breaks RISC-V since all the other arches still have FreeBSD set
as the ELF OSABI in the ELF header.

--
John Baldwin
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r363263 - in head/lib/csu: . common

2021-02-26 Thread Kyle Evans
On Thu, Jul 16, 2020 at 4:58 PM John Baldwin  wrote:
>
> 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.
>

This is pretty handy; any chance we can backport this series for 12.3?

Thanks,

Kyle Evans
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r363263 - in head/lib/csu: . common

2020-07-16 Thread John Baldwin
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
.p2align2
.4byte  2f-1f
.4byte  4f-3f
@@ -46,14 +46,4 @@ __FBSDID("$FreeBSD$");
 1: .asciz  NOTE_FREEBSD_VENDOR
 2: .p2align2
 3: .4byte  __FreeBSD_version
-4:
-
-   .section .note.tag,"a",%note
-   .p2align2
-   .4byte  2f-1f
-   .4byte  4f-3f
-   .4byte  NT_FREEBSD_FEATURE_CTL
-1: .asciz  NOTE_FREEBSD_VENDOR
-2: .p2align2
-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 
 __FBSDID("$FreeBSD$");
 
-#include 
 #include 
 #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
-   .p2align2
-   .4byte  2f-1f
-   .4byte  4f-3f
-   .4byte  NT_FREEBSD_ABI_TAG
-1: .asciz  NOTE_FREEBSD_VENDOR
-2: .p2align2
-3: .4byte  __FreeBSD_version
-4:
 
.section .note.tag,"a",%note
.p2align2
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"