Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 31 Mar 2020 17:51:12 +0000 (10:51 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 31 Mar 2020 17:51:12 +0000 (10:51 -0700)
Pull x86 build updates from Ingo Molnar:
 "A handful of updates: two linker script cleanups and a stock
  defconfig+allmodconfig bootability fix"

* 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/vdso: Discard .note.gnu.property sections in vDSO
  x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS
  x86/Kconfig: Make CMDLINE_OVERRIDE depend on non-empty CMDLINE

arch/x86/Kconfig
arch/x86/entry/vdso/vdso-layout.lds.S
arch/x86/kernel/vmlinux.lds.S
include/asm-generic/vmlinux.lds.h

index 47107ee..ade80ca 100644 (file)
@@ -2417,7 +2417,7 @@ config CMDLINE
 
 config CMDLINE_OVERRIDE
        bool "Built-in command line overrides boot loader arguments"
-       depends on CMDLINE_BOOL
+       depends on CMDLINE_BOOL && CMDLINE != ""
        ---help---
          Set this option to 'Y' to have the kernel ignore the boot loader
          command line, and use ONLY the built-in command line.
index ea7e015..4d15293 100644 (file)
@@ -57,6 +57,13 @@ SECTIONS
                *(.gnu.linkonce.b.*)
        }                                               :text
 
+       /*
+        * Discard .note.gnu.property sections which are unused and have
+        * different alignment requirement from vDSO note sections.
+        */
+       /DISCARD/ : {
+               *(.note.gnu.property)
+       }
        .note           : { *(.note.*) }                :text   :note
 
        .eh_frame_hdr   : { *(.eh_frame_hdr) }          :text   :eh_frame_hdr
index 5cab3a2..1bf7e31 100644 (file)
@@ -21,6 +21,7 @@
 #define LOAD_OFFSET __START_KERNEL_map
 #endif
 
+#define RUNTIME_DISCARD_EXIT
 #define EMITS_PT_NOTE
 #define RO_EXCEPTION_TABLE_ALIGN       16
 
index e00f41a..2444336 100644 (file)
  * section definitions so that such archs put those in earlier section
  * definitions.
  */
+#ifdef RUNTIME_DISCARD_EXIT
+#define EXIT_DISCARDS
+#else
+#define EXIT_DISCARDS                                                  \
+       EXIT_TEXT                                                       \
+       EXIT_DATA
+#endif
+
 #define DISCARDS                                                       \
        /DISCARD/ : {                                                   \
-       EXIT_TEXT                                                       \
-       EXIT_DATA                                                       \
+       EXIT_DISCARDS                                                   \
        EXIT_CALL                                                       \
        *(.discard)                                                     \
        *(.discard.*)                                                   \