Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

src: Pull up following revision(s) (requested by mrg in ticket #...



details:   https://anonhg.NetBSD.org/src/rev/79c6b9139d90
branches:  netbsd-8
changeset: 318060:79c6b9139d90
user:      martin <martin%NetBSD.org@localhost>
date:      Wed Apr 11 14:23:30 2018 +0000
description:
Pull up following revision(s) (requested by mrg in ticket #731):
        sys/arch/i386/conf/files.i386: revision 1.392
        sys/arch/i386/conf/GENERIC: revision 1.1175
        sys/arch/i386/conf/GENERIC: revision 1.1176
        sys/arch/amd64/conf/files.amd64: revision 1.102
        sys/arch/i386/conf/GENERIC: revision 1.1177
        share/man/man4/options.4: revision 1.485 (patch)
        sys/arch/i386/conf/Makefile.i386: revision 1.190
        sys/arch/amd64/conf/GENERIC: revision 1.487
        sys/arch/amd64/conf/ALL: revision 1.85
        sys/arch/amd64/conf/GENERIC: revision 1.488
        sys/arch/amd64/conf/GENERIC: revision 1.489
        sys/arch/amd64/conf/Makefile.amd64: revision 1.67
        sys/arch/i386/conf/ALL: revision 1.437

add an SPECTRE_V2_GCC_MITIGATION option to x86 kernels, that turns
on the GCC spectre v2 mitigation options.
XXX: pullup-8.
XXX: turn on in all kernels.

actually do what the previous change said:
don't turn on the new 'SPECTRE_V2_GCC_MITIGATION' option yet.

turn on GCC spectre v2 mitigation options.
XXX: amd64 ALL doesn't build for me right now

diffstat:

 share/man/man4/options.4           |  15 ++++++++++++++-
 sys/arch/amd64/conf/ALL            |   6 ++++--
 sys/arch/amd64/conf/GENERIC        |   6 ++++--
 sys/arch/amd64/conf/Makefile.amd64 |   7 ++++++-
 sys/arch/amd64/conf/files.amd64    |   5 ++++-
 sys/arch/i386/conf/ALL             |   6 ++++--
 sys/arch/i386/conf/GENERIC         |   6 ++++--
 sys/arch/i386/conf/Makefile.i386   |   7 ++++++-
 sys/arch/i386/conf/files.i386      |   5 ++++-
 9 files changed, 50 insertions(+), 13 deletions(-)

diffs (231 lines):

diff -r bb3e2959368c -r 79c6b9139d90 share/man/man4/options.4
--- a/share/man/man4/options.4  Wed Apr 11 14:15:45 2018 +0000
+++ b/share/man/man4/options.4  Wed Apr 11 14:23:30 2018 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: options.4,v 1.466 2017/05/19 14:18:41 abhinav Exp $
+.\"    $NetBSD: options.4,v 1.466.2.1 2018/04/11 14:23:30 martin Exp $
 .\"
 .\" Copyright (c) 1996
 .\"    Perry E. Metzger.  All rights reserved.
@@ -31,6 +31,7 @@
 .\"
 .\"
 .Dd March 9, 2017
+.Dd April 5, 2018
 .Dt OPTIONS 4
 .Os
 .Sh NAME
@@ -2549,6 +2550,17 @@
 This is correct behavior, and you should not use the
 .Em REALBASEMEM
 option to access this memory).
+.It Cd options SPECTRE_V2_GCC_MITIGATION=1
+Enable GCC-specific Spectre variant 2 mitigations.
+For 32-bit kernels this means these options:
+.Bd -literal -offset indent
+-mindirect-branch=thunk -mindirect-branch-register
+.Ed
+.Pp
+For 64-bit kernels this means these options:
+.Bd -literal -offset indent
+-mindirect-branch=thunk-inline -mindirect-branch-register
+.Ed
 .It Cd options REALEXTMEM=integer
 Overrides the extended memory size passed in from the boot block.
 (Value given in kilobytes.
@@ -2786,6 +2798,7 @@
 .\" .Sh EXAMPLES
 .Sh SEE ALSO
 .Xr config 1 ,
+.Xr gcc 1 ,
 .Xr gdb 1 ,
 .Xr ktrace 1 ,
 .Xr pmc 1 ,
diff -r bb3e2959368c -r 79c6b9139d90 sys/arch/amd64/conf/ALL
--- a/sys/arch/amd64/conf/ALL   Wed Apr 11 14:15:45 2018 +0000
+++ b/sys/arch/amd64/conf/ALL   Wed Apr 11 14:23:30 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: ALL,v 1.59.2.4 2018/04/09 12:49:32 bouyer Exp $
+# $NetBSD: ALL,v 1.59.2.5 2018/04/11 14:23:30 martin Exp $
 # From NetBSD: GENERIC,v 1.787 2006/10/01 18:37:54 bouyer Exp
 #
 # ALL machine description file
@@ -17,7 +17,7 @@
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident         "ALL-$Revision: 1.59.2.4 $"
+#ident         "ALL-$Revision: 1.59.2.5 $"
 
 maxusers       64              # estimated number of users
 
@@ -28,6 +28,8 @@
 #options       USER_LDT        # user-settable LDT; used by WINE
 options        X86EMU          # 386 Real Mode emulator
 #options       PAE             # PAE mode (36 bits physical addressing)
+makeoptions    SPECTRE_V2_GCC_MITIGATION=1     # GCC Spectre variant 2
+                                               # migitation
 
 # CPU features
 acpicpu*       at cpu?         # ACPI CPU (including frequency scaling)
diff -r bb3e2959368c -r 79c6b9139d90 sys/arch/amd64/conf/GENERIC
--- a/sys/arch/amd64/conf/GENERIC       Wed Apr 11 14:15:45 2018 +0000
+++ b/sys/arch/amd64/conf/GENERIC       Wed Apr 11 14:23:30 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: GENERIC,v 1.459.2.7 2018/04/04 16:25:23 martin Exp $
+# $NetBSD: GENERIC,v 1.459.2.8 2018/04/11 14:23:30 martin Exp $
 #
 # GENERIC machine description file
 #
@@ -22,7 +22,7 @@
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident         "GENERIC-$Revision: 1.459.2.7 $"
+#ident         "GENERIC-$Revision: 1.459.2.8 $"
 
 maxusers       64              # estimated number of users
 
@@ -75,6 +75,8 @@
 
 # CPU-related options
 options        SVS             # Separate Virtual Space
+makeoptions    SPECTRE_V2_GCC_MITIGATION=1     # GCC Spectre variant 2
+                                               # migitation
 
 # CPU features
 acpicpu*       at cpu?         # ACPI CPU (including frequency scaling)
diff -r bb3e2959368c -r 79c6b9139d90 sys/arch/amd64/conf/Makefile.amd64
--- a/sys/arch/amd64/conf/Makefile.amd64        Wed Apr 11 14:15:45 2018 +0000
+++ b/sys/arch/amd64/conf/Makefile.amd64        Wed Apr 11 14:23:30 2018 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile.amd64,v 1.57 2017/02/11 16:02:11 maxv Exp $
+#      $NetBSD: Makefile.amd64,v 1.57.6.1 2018/04/11 14:23:30 martin Exp $
 
 # Makefile for NetBSD
 #
@@ -43,6 +43,11 @@
 # For gcc we might need this, but other compilers barf
 # CFLAGS+=     -mno-fp-ret-in-387
 
+.if !empty(SPECTRE_V2_GCC_MITIGATION) && ${HAVE_GCC:U0} > 0
+CFLAGS+=      -mindirect-branch=thunk-inline
+CFLAGS+=      -mindirect-branch-register
+.endif
+
 ##
 ## (3) libkern and compat
 ##
diff -r bb3e2959368c -r 79c6b9139d90 sys/arch/amd64/conf/files.amd64
--- a/sys/arch/amd64/conf/files.amd64   Wed Apr 11 14:15:45 2018 +0000
+++ b/sys/arch/amd64/conf/files.amd64   Wed Apr 11 14:23:30 2018 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.amd64,v 1.88.8.2 2018/03/07 14:50:57 martin Exp $
+#      $NetBSD: files.amd64,v 1.88.8.3 2018/04/11 14:23:30 martin Exp $
 #
 # new style config file for amd64 architecture
 #
@@ -19,6 +19,9 @@
 # The PHYSMEM_MAX_{SIZE,ADDR} optionms
 defparam opt_physmem.h PHYSMEM_MAX_ADDR PHYSMEM_MAX_SIZE
 
+# Enable GCC spectre V2 mitigation options
+defflag opt_spectre.h  SPECTRE_V2_GCC_MITIGATION
+
 #
 # XXX these are just here at the moment so that we can share files
 # with the i386 (they include the opt_*.h for these)
diff -r bb3e2959368c -r 79c6b9139d90 sys/arch/i386/conf/ALL
--- a/sys/arch/i386/conf/ALL    Wed Apr 11 14:15:45 2018 +0000
+++ b/sys/arch/i386/conf/ALL    Wed Apr 11 14:23:30 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: ALL,v 1.419.2.2 2017/09/09 17:29:40 snj Exp $
+# $NetBSD: ALL,v 1.419.2.3 2018/04/11 14:23:30 martin Exp $
 # From NetBSD: GENERIC,v 1.787 2006/10/01 18:37:54 bouyer Exp
 #
 # ALL machine description file
@@ -17,7 +17,7 @@
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident         "ALL-$Revision: 1.419.2.2 $"
+#ident         "ALL-$Revision: 1.419.2.3 $"
 
 maxusers       64              # estimated number of users
 
@@ -28,6 +28,8 @@
 options        USER_LDT        # user-settable LDT; used by WINE
 options        X86EMU          # 386 Real Mode emulator
 options        PAE             # PAE mode (36 bits physical addressing)
+makeoptions    SPECTRE_V2_GCC_MITIGATION=1     # GCC Spectre variant 2
+                                               # migitation
 
 # CPU features
 acpicpu*       at cpu?         # ACPI CPU (including frequency scaling)
diff -r bb3e2959368c -r 79c6b9139d90 sys/arch/i386/conf/GENERIC
--- a/sys/arch/i386/conf/GENERIC        Wed Apr 11 14:15:45 2018 +0000
+++ b/sys/arch/i386/conf/GENERIC        Wed Apr 11 14:23:30 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: GENERIC,v 1.1156.2.7 2017/12/04 19:47:05 snj Exp $
+# $NetBSD: GENERIC,v 1.1156.2.8 2018/04/11 14:23:30 martin Exp $
 #
 # GENERIC machine description file
 #
@@ -22,7 +22,7 @@
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident         "GENERIC-$Revision: 1.1156.2.7 $"
+#ident         "GENERIC-$Revision: 1.1156.2.8 $"
 
 maxusers       64              # estimated number of users
 
@@ -30,6 +30,8 @@
 #options       VM86            # virtual 8086 emulation
 options        USER_LDT        # user-settable LDT; used by WINE
 #options       PAE             # PAE mode (36 bits physical addressing)
+makeoptions    SPECTRE_V2_GCC_MITIGATION=1     # GCC Spectre variant 2
+                                               # migitation
 
 # CPU features
 acpicpu*       at cpu?         # ACPI CPU (including frequency scaling)
diff -r bb3e2959368c -r 79c6b9139d90 sys/arch/i386/conf/Makefile.i386
--- a/sys/arch/i386/conf/Makefile.i386  Wed Apr 11 14:15:45 2018 +0000
+++ b/sys/arch/i386/conf/Makefile.i386  Wed Apr 11 14:23:30 2018 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile.i386,v 1.185 2015/08/24 14:04:24 uebayasi Exp $
+#      $NetBSD: Makefile.i386,v 1.185.10.1 2018/04/11 14:23:30 martin Exp $
 
 # Makefile for NetBSD
 #
@@ -39,6 +39,11 @@
 ## no-sse implies no-sse2 but not no-avx
 CFLAGS+=       -mno-mmx -mno-sse -mno-avx
 
+.if !empty(SPECTRE_V2_GCC_MITIGATION) && ${HAVE_GCC:U0} > 0
+CFLAGS+=       -mindirect-branch=thunk
+CFLAGS+=       -mindirect-branch-register
+.endif
+
 ##
 ## (3) libkern and compat
 ##
diff -r bb3e2959368c -r 79c6b9139d90 sys/arch/i386/conf/files.i386
--- a/sys/arch/i386/conf/files.i386     Wed Apr 11 14:15:45 2018 +0000
+++ b/sys/arch/i386/conf/files.i386     Wed Apr 11 14:23:30 2018 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.i386,v 1.378.6.1 2017/08/01 23:18:30 snj Exp $
+#      $NetBSD: files.i386,v 1.378.6.2 2018/04/11 14:23:30 martin Exp $
 #
 # new style config file for i386 architecture
 #
@@ -46,6 +46,9 @@
 # splraise()/spllower() debug
 defflag        opt_spldebug.h                  SPLDEBUG
 
+# Enable GCC spectre V2 mitigation options
+defflag opt_spectre.h  SPECTRE_V2_GCC_MITIGATION
+
 # Beep on halt
 defflag        opt_beep.h              BEEP_ONHALT
 defparam       opt_beep.h              BEEP_ONHALT_COUNT=3



Home | Main Index | Thread Index | Old Index