Module Name:    src
Committed By:   christos
Date:           Fri Jan  6 15:47:39 UTC 2023

Modified Files:
        src/distrib/sets/lists/comp: md.amd64
        src/external/gpl3/binutils/dist/bfd: configure configure.ac
        src/external/gpl3/binutils/dist/ld: configure.tgt
        src/external/gpl3/binutils/lib/libbfd/arch/i386: config.h defs.mk
        src/external/gpl3/binutils/lib/libbfd/arch/x86_64: config.h
        src/external/gpl3/binutils/usr.bin/ld: Makefile
        src/external/gpl3/binutils/usr.bin/ld/arch/i386: config.h
        src/external/gpl3/binutils/usr.bin/ld/arch/x86_64: config.h

Log Message:
Turn on -z separate-code for x86, like linux has done. This splits the text
and data segment load sections into two pieces, for at total of 4 PT_LOAD
sections: two for text (r--, r-x) and two for data (r--, rw-). For x86_64
this changes the default max page size from 2M to 4K.


To generate a diff of this commit:
cvs rdiff -u -r1.291 -r1.292 src/distrib/sets/lists/comp/md.amd64
cvs rdiff -u -r1.17 -r1.18 src/external/gpl3/binutils/dist/bfd/configure
cvs rdiff -u -r1.10 -r1.11 src/external/gpl3/binutils/dist/bfd/configure.ac
cvs rdiff -u -r1.38 -r1.39 src/external/gpl3/binutils/dist/ld/configure.tgt
cvs rdiff -u -r1.10 -r1.11 \
    src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h
cvs rdiff -u -r1.11 -r1.12 \
    src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk
cvs rdiff -u -r1.10 -r1.11 \
    src/external/gpl3/binutils/lib/libbfd/arch/x86_64/config.h
cvs rdiff -u -r1.35 -r1.36 src/external/gpl3/binutils/usr.bin/ld/Makefile
cvs rdiff -u -r1.11 -r1.12 \
    src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h
cvs rdiff -u -r1.11 -r1.12 \
    src/external/gpl3/binutils/usr.bin/ld/arch/x86_64/config.h

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

Modified files:

Index: src/distrib/sets/lists/comp/md.amd64
diff -u src/distrib/sets/lists/comp/md.amd64:1.291 src/distrib/sets/lists/comp/md.amd64:1.292
--- src/distrib/sets/lists/comp/md.amd64:1.291	Wed Dec 28 17:04:05 2022
+++ src/distrib/sets/lists/comp/md.amd64	Fri Jan  6 10:47:38 2023
@@ -1,4 +1,4 @@
-# $NetBSD: md.amd64,v 1.291 2022/12/28 22:04:05 christos Exp $
+# $NetBSD: md.amd64,v 1.292 2023/01/06 15:47:38 christos Exp $
 ./usr/include/amd64				comp-c-include
 ./usr/include/amd64/ansi.h			comp-c-include
 ./usr/include/amd64/aout_machdep.h		comp-c-include
@@ -1437,6 +1437,7 @@
 ./usr/libdata/ldscripts/elf_i386.x		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_i386.xbn		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_i386.xc		comp-util-bin		binutils
+./usr/libdata/ldscripts/elf_i386.xce		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_i386.xd		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_i386.xdc		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_i386.xdw		comp-util-bin		binutils
@@ -1450,6 +1451,7 @@
 ./usr/libdata/ldscripts/elf_iamcu.x		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_iamcu.xbn		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_iamcu.xc		comp-util-bin		binutils
+./usr/libdata/ldscripts/elf_iamcu.xce		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_iamcu.xd		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_iamcu.xdc		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_iamcu.xdw		comp-util-bin		binutils
@@ -1463,6 +1465,7 @@
 ./usr/libdata/ldscripts/elf_k1om.x		comp-util-bin		binutils=234
 ./usr/libdata/ldscripts/elf_k1om.xbn		comp-util-bin		binutils=234
 ./usr/libdata/ldscripts/elf_k1om.xc		comp-util-bin		binutils=234
+./usr/libdata/ldscripts/elf_k1om.xc		comp-util-bin		binutils=234
 ./usr/libdata/ldscripts/elf_k1om.xd		comp-util-bin		binutils=234
 ./usr/libdata/ldscripts/elf_k1om.xdc		comp-util-bin		binutils=234
 ./usr/libdata/ldscripts/elf_k1om.xdw		comp-util-bin		binutils=234
@@ -1489,6 +1492,7 @@
 ./usr/libdata/ldscripts/elf_x86_64.x		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_x86_64.xbn		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_x86_64.xc		comp-util-bin		binutils
+./usr/libdata/ldscripts/elf_x86_64.xce		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_x86_64.xd		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_x86_64.xdc		comp-util-bin		binutils
 ./usr/libdata/ldscripts/elf_x86_64.xdw		comp-util-bin		binutils

Index: src/external/gpl3/binutils/dist/bfd/configure
diff -u src/external/gpl3/binutils/dist/bfd/configure:1.17 src/external/gpl3/binutils/dist/bfd/configure:1.18
--- src/external/gpl3/binutils/dist/bfd/configure:1.17	Sat Dec 24 15:17:04 2022
+++ src/external/gpl3/binutils/dist/bfd/configure	Fri Jan  6 10:47:38 2023
@@ -11977,9 +11977,9 @@ if test "${enable_separate_code+set}" = 
 esac
 fi
 
-# Enable -z separate-code by default for Linux/x86.
+# Enable -z separate-code by default for Linux/x86 and NetBSD/x86
 case "${target}" in
-i[3-7]86-*-linux-* | x86_64-*-linux-*)
+i[3-7]86-*-linux-* | x86_64-*-linux-* | i[3-7]86-*-netbsd* | x86_64-*-netbsd*)
   if test ${ac_default_ld_z_separate_code} = unset; then
     ac_default_ld_z_separate_code=1
   fi

Index: src/external/gpl3/binutils/dist/bfd/configure.ac
diff -u src/external/gpl3/binutils/dist/bfd/configure.ac:1.10 src/external/gpl3/binutils/dist/bfd/configure.ac:1.11
--- src/external/gpl3/binutils/dist/bfd/configure.ac:1.10	Sat Dec 24 15:17:04 2022
+++ src/external/gpl3/binutils/dist/bfd/configure.ac	Fri Jan  6 10:47:38 2023
@@ -136,10 +136,10 @@ AC_ARG_ENABLE(separate-code,
   yes) ac_default_ld_z_separate_code=1 ;;
   no) ac_default_ld_z_separate_code=0 ;;
 esac])
-# Enable -z separate-code by default for Linux/x86.
+# Enable -z separate-code by default for Linux/x86 and NetBSD/x86
 changequote(,)dnl
 case "${target}" in
-i[3-7]86-*-linux-* | x86_64-*-linux-*)
+i[3-7]86-*-linux-* | x86_64-*-linux-* | i[3-7]86-*-netbsd | x86_64-*-netbsd* )
 changequote([,])dnl
   if test ${ac_default_ld_z_separate_code} = unset; then
     ac_default_ld_z_separate_code=1

Index: src/external/gpl3/binutils/dist/ld/configure.tgt
diff -u src/external/gpl3/binutils/dist/ld/configure.tgt:1.38 src/external/gpl3/binutils/dist/ld/configure.tgt:1.39
--- src/external/gpl3/binutils/dist/ld/configure.tgt:1.38	Sat Dec 24 15:17:07 2022
+++ src/external/gpl3/binutils/dist/ld/configure.tgt	Fri Jan  6 10:47:38 2023
@@ -1219,7 +1219,7 @@ esac
 
 # Enable -z separate-code and --warn-textrel by default for Linux/x86.
 case "${target}" in
-i[3-7]86-*-linux-* | x86_64-*-linux-*)
+i[3-7]86-*-linux-* | x86_64-*-linux-* | i[3-7]86-*-netbsd* | x86_64-*-netbsd*)
   if test ${ac_default_ld_z_separate_code} = unset; then
     ac_default_ld_z_separate_code=1
   fi

Index: src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h
diff -u src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h:1.10 src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h:1.11
--- src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h:1.10	Sun Dec 25 15:06:00 2022
+++ src/external/gpl3/binutils/lib/libbfd/arch/i386/config.h	Fri Jan  6 10:47:38 2023
@@ -17,7 +17,7 @@
 
 /* Define to 1 if you want to enable -z separate-code in ELF linker by
    default. */
-#define DEFAULT_LD_Z_SEPARATE_CODE 0
+#define DEFAULT_LD_Z_SEPARATE_CODE 1
 
 /* Define if you want run-time sanity checks. */
 /* #undef ENABLE_CHECKING */

Index: src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk
diff -u src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk:1.11 src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk:1.12
--- src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk:1.11	Sun Dec 25 15:06:00 2022
+++ src/external/gpl3/binutils/lib/libbfd/arch/i386/defs.mk	Fri Jan  6 10:47:38 2023
@@ -2,9 +2,9 @@
 # Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp 
 # Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp 
 #
-G_libbfd_la_DEPENDENCIES=elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-vxworks.lo elf32.lo elf.lo elflink.lo elf-attrs.lo elf-strtab.lo elf-eh-frame.lo dwarf1.lo dwarf2.lo elf32-gen.lo plugin.lo cpu-i386.lo cpu-iamcu.lo netbsd-core.lo ofiles
+G_libbfd_la_DEPENDENCIES=elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-vxworks.lo elf32.lo elf.lo elflink.lo elf-attrs.lo elf-strtab.lo elf-eh-frame.lo dwarf1.lo dwarf2.lo coff-i386.lo cofflink.lo coffgen.lo pei-i386.lo peigen.lo elf32-gen.lo plugin.lo cpu-i386.lo cpu-iamcu.lo netbsd-core.lo ofiles
 G_libbfd_la_OBJECTS=archive.lo archures.lo bfd.lo bfdio.lo bfdwin.lo  cache.lo coff-bfd.lo compress.lo corefile.lo elf-properties.lo  format.lo hash.lo init.lo libbfd.lo linker.lo merge.lo  opncls.lo reloc.lo section.lo simple.lo stab-syms.lo stabs.lo  syms.lo targets.lo binary.lo ihex.lo srec.lo tekhex.lo  verilog.lo
 G_DEFS=-DHAVE_CONFIG_H
 G_INCLUDES=
-G_TDEFAULTS=-DDEFAULT_VECTOR=i386_elf32_vec -DSELECT_VECS='&i386_elf32_vec,&iamcu_elf32_vec,&elf32_le_vec,&elf32_be_vec' -DSELECT_ARCHITECTURES='&bfd_i386_arch,&bfd_iamcu_arch'
-G_HAVEVECS=-DHAVE_i386_elf32_vec -DHAVE_iamcu_elf32_vec -DHAVE_elf32_le_vec -DHAVE_elf32_be_vec
+G_TDEFAULTS=-DDEFAULT_VECTOR=i386_elf32_vec -DSELECT_VECS='&i386_elf32_vec,&iamcu_elf32_vec,&i386_coff_vec,&i386_pei_vec,&elf32_le_vec,&elf32_be_vec' -DSELECT_ARCHITECTURES='&bfd_i386_arch,&bfd_iamcu_arch'
+G_HAVEVECS=-DHAVE_i386_elf32_vec -DHAVE_iamcu_elf32_vec -DHAVE_i386_coff_vec -DHAVE_i386_pei_vec -DHAVE_elf32_le_vec -DHAVE_elf32_be_vec

Index: src/external/gpl3/binutils/lib/libbfd/arch/x86_64/config.h
diff -u src/external/gpl3/binutils/lib/libbfd/arch/x86_64/config.h:1.10 src/external/gpl3/binutils/lib/libbfd/arch/x86_64/config.h:1.11
--- src/external/gpl3/binutils/lib/libbfd/arch/x86_64/config.h:1.10	Sat Dec 24 15:17:08 2022
+++ src/external/gpl3/binutils/lib/libbfd/arch/x86_64/config.h	Fri Jan  6 10:47:38 2023
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.13 2020/04/04 01:34:53 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* config.h.  Generated from config.in by configure.  */
@@ -17,7 +17,7 @@
 
 /* Define to 1 if you want to enable -z separate-code in ELF linker by
    default. */
-#define DEFAULT_LD_Z_SEPARATE_CODE 0
+#define DEFAULT_LD_Z_SEPARATE_CODE 1
 
 /* Define if you want run-time sanity checks. */
 /* #undef ENABLE_CHECKING */

Index: src/external/gpl3/binutils/usr.bin/ld/Makefile
diff -u src/external/gpl3/binutils/usr.bin/ld/Makefile:1.35 src/external/gpl3/binutils/usr.bin/ld/Makefile:1.36
--- src/external/gpl3/binutils/usr.bin/ld/Makefile:1.35	Sat Dec 24 15:17:10 2022
+++ src/external/gpl3/binutils/usr.bin/ld/Makefile	Fri Jan  6 10:47:38 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.35 2022/12/24 20:17:10 christos Exp $
+#	$NetBSD: Makefile,v 1.36 2023/01/06 15:47:38 christos Exp $
 
 CPPFLAGS+=	-I${.CURDIR}/arch/${BINUTILS_MACHINE_ARCH} \
 		-I${DIST}/ld \
@@ -87,6 +87,13 @@ FILES+= ${f}.${e}
 .   endif
 .  endfor
 . endif
+. if ${BINUTILS_MACHINE_ARCH} == "x86_64" || ${BINUTILS_MACHINE_ARCH} == "i386"
+.  for e in xce
+.   if exists(ldscripts/${f}.${e})
+FILES+= ${f}.${e}
+.   endif
+.  endfor
+. endif
 .endfor
 
 .include <bsd.prog.mk>

Index: src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h
diff -u src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h:1.11 src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h:1.12
--- src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h:1.11	Sun Dec 25 15:06:01 2022
+++ src/external/gpl3/binutils/usr.bin/ld/arch/i386/config.h	Fri Jan  6 10:47:38 2023
@@ -26,10 +26,10 @@
 #define DEFAULT_LD_EXECSTACK 1
 
 /* The default method for DT_TEXTREL check in ELF linker. */
-#define DEFAULT_LD_TEXTREL_CHECK textrel_check_none
+#define DEFAULT_LD_TEXTREL_CHECK textrel_check_warning
 
 /* Define to 1 if DT_TEXTREL check is warning in ELF linker by default. */
-#define DEFAULT_LD_TEXTREL_CHECK_WARNING 0
+#define DEFAULT_LD_TEXTREL_CHECK_WARNING 1
 
 /* Define to 1 if you want to enable --warn-execstack in ELF linker by
    default. */
@@ -44,7 +44,7 @@
 
 /* Define to 1 if you want to enable -z separate-code in ELF linker by
    default. */
-#define DEFAULT_LD_Z_SEPARATE_CODE 0
+#define DEFAULT_LD_Z_SEPARATE_CODE 1
 
 /* Define to 1 if you want to set DT_RUNPATH instead of DT_RPATH by default.
    */

Index: src/external/gpl3/binutils/usr.bin/ld/arch/x86_64/config.h
diff -u src/external/gpl3/binutils/usr.bin/ld/arch/x86_64/config.h:1.11 src/external/gpl3/binutils/usr.bin/ld/arch/x86_64/config.h:1.12
--- src/external/gpl3/binutils/usr.bin/ld/arch/x86_64/config.h:1.11	Sat Dec 24 15:17:10 2022
+++ src/external/gpl3/binutils/usr.bin/ld/arch/x86_64/config.h	Fri Jan  6 10:47:38 2023
@@ -1,5 +1,5 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from: NetBSD: mknative-binutils,v 1.13 2020/04/04 01:34:53 christos Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.14 2022/12/24 20:17:46 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
 
 /* config.h.  Generated from config.in by configure.  */
@@ -44,7 +44,7 @@
 
 /* Define to 1 if you want to enable -z separate-code in ELF linker by
    default. */
-#define DEFAULT_LD_Z_SEPARATE_CODE 0
+#define DEFAULT_LD_Z_SEPARATE_CODE 1
 
 /* Define to 1 if you want to set DT_RUNPATH instead of DT_RPATH by default.
    */

Reply via email to