mirror of
https://github.com/torvalds/linux
synced 2024-07-21 10:41:44 +00:00
x86/build changes for v6.10:
- Use -fpic to build the kexec 'purgatory' (self-contained code that runs between two kernels) - Clean up vmlinux.lds.S generation - Simplify the X86_EXTENDED_PLATFORM section of the x86 Kconfig - Misc cleanups & fixes Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmZBuqIRHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1hCkhAAoUz4ZPgaN9mN4TvCXzhEMgb2SO8Wm/Jr IdHunF9W8q5NMQHWDK5lPsLco95HPeX/Mqq1eWbe6/oAfSpUt38+OL2rq8pjCZnm G7wC7paPIK7Onl6l2gM9D+BlWpnHq8wsdGeMyV7VhqdhGAgbv8he+IlZKSUgLyiT l8CTzppHy0U6R6UYvz+ZnOWgYevWpVvty2lxrvhTR1VmITLrBNk3AJb8+GYSuqj3 gUF4oOjiG8WvtjtLYhXw1Kf8vt577ix6iaiow00SP/A4rmWfWIN0WSBQhHcXJwVQ RDVHlNAoVJ4GY4oZU88ykuWqe5UEfMcJzI0l3nSqeiLgLpvtA3UNNdVvl+el8wU+ 181+4viNGS2owB9D+Na70BJEiJmGHHE7MfmEQEO1d9az/6Q4tXCJwKS+TymPFWYe wYMIz2bf03g+FksxljP9dgwe7enVFCnBhmmms8nfAmpACaLQVtMjElqGzIeTGckh 52scmA6hXLlTwNVpeARQ36DL6tLkcyTPO2ujrEJzsRvWOB7EbAbpDJfHOhMIFQNt M+st803WZ4tRbwrwTYTyU4F4Wt4RkNlYo820M3TDSYfdA+M6h01y3ZR53z1VDvXy NuNVlhnl3dQr//VMwHFgCv5hD+VhAs8iKqxzj0W31cChv5WgFG7IGnu70/J9V/1n 6MZasYJlKbg= =xZOX -----END PGP SIGNATURE----- Merge tag 'x86-build-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 build updates from Ingo Molnar: - Use -fpic to build the kexec 'purgatory' (the self-contained code that runs between two kernels) - Clean up vmlinux.lds.S generation - Simplify the X86_EXTENDED_PLATFORM section of the x86 Kconfig - Misc cleanups & fixes * tag 'x86-build-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/Kconfig: Merge the two CONFIG_X86_EXTENDED_PLATFORM entries x86/purgatory: Switch to the position-independent small code model x86/boot: Replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR x86/vmlinux.lds.S: Take __START_KERNEL out conditional definition x86/vmlinux.lds.S: Remove conditional definition of LOAD_OFFSET vmlinux.lds.h: Fix a typo in comment
This commit is contained in:
commit
d71ec0ed03
|
@ -503,10 +503,9 @@ config X86_FRED
|
|||
ring transitions and exception/interrupt handling if the
|
||||
system supports.
|
||||
|
||||
if X86_32
|
||||
config X86_BIGSMP
|
||||
bool "Support for big SMP systems with more than 8 CPUs"
|
||||
depends on SMP
|
||||
depends on SMP && X86_32
|
||||
help
|
||||
This option is needed for the systems that have more than 8 CPUs.
|
||||
|
||||
|
@ -519,7 +518,10 @@ config X86_EXTENDED_PLATFORM
|
|||
systems out there.)
|
||||
|
||||
If you enable this option then you'll be able to select support
|
||||
for the following (non-PC) 32 bit x86 platforms:
|
||||
for the following non-PC x86 platforms, depending on the value of
|
||||
CONFIG_64BIT.
|
||||
|
||||
32-bit platforms (CONFIG_64BIT=n):
|
||||
Goldfish (Android emulator)
|
||||
AMD Elan
|
||||
RDC R-321x SoC
|
||||
|
@ -527,28 +529,14 @@ config X86_EXTENDED_PLATFORM
|
|||
STA2X11-based (e.g. Northville)
|
||||
Moorestown MID devices
|
||||
|
||||
If you have one of these systems, or if you want to build a
|
||||
generic distribution kernel, say Y here - otherwise say N.
|
||||
endif # X86_32
|
||||
|
||||
if X86_64
|
||||
config X86_EXTENDED_PLATFORM
|
||||
bool "Support for extended (non-PC) x86 platforms"
|
||||
default y
|
||||
help
|
||||
If you disable this option then the kernel will only support
|
||||
standard PC platforms. (which covers the vast majority of
|
||||
systems out there.)
|
||||
|
||||
If you enable this option then you'll be able to select support
|
||||
for the following (non-PC) 64 bit x86 platforms:
|
||||
64-bit platforms (CONFIG_64BIT=y):
|
||||
Numascale NumaChip
|
||||
ScaleMP vSMP
|
||||
SGI Ultraviolet
|
||||
|
||||
If you have one of these systems, or if you want to build a
|
||||
generic distribution kernel, say Y here - otherwise say N.
|
||||
endif # X86_64
|
||||
|
||||
# This is an alphabetically sorted list of 64 bit extended platforms
|
||||
# Please maintain the alphabetic order if and when there are additions
|
||||
config X86_NUMACHIP
|
||||
|
|
|
@ -6,11 +6,6 @@
|
|||
#include <asm/pgtable_types.h>
|
||||
#include <uapi/asm/boot.h>
|
||||
|
||||
/* Physical address where kernel should be loaded. */
|
||||
#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
|
||||
+ (CONFIG_PHYSICAL_ALIGN - 1)) \
|
||||
& ~(CONFIG_PHYSICAL_ALIGN - 1))
|
||||
|
||||
/* Minimum kernel alignment, as a power of two */
|
||||
#ifdef CONFIG_X86_64
|
||||
# define MIN_KERNEL_ALIGN_LG2 PMD_SHIFT
|
||||
|
|
|
@ -31,10 +31,12 @@
|
|||
|
||||
#define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_TSK_EXEC
|
||||
|
||||
#define __PHYSICAL_START ALIGN(CONFIG_PHYSICAL_START, \
|
||||
CONFIG_PHYSICAL_ALIGN)
|
||||
/* Physical address where kernel should be loaded. */
|
||||
#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
|
||||
+ (CONFIG_PHYSICAL_ALIGN - 1)) \
|
||||
& ~(CONFIG_PHYSICAL_ALIGN - 1))
|
||||
|
||||
#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
|
||||
#define __START_KERNEL (__START_KERNEL_map + LOAD_PHYSICAL_ADDR)
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
#include <asm/page_64_types.h>
|
||||
|
|
|
@ -15,11 +15,7 @@
|
|||
* put it inside the section definition.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
#define LOAD_OFFSET __PAGE_OFFSET
|
||||
#else
|
||||
#define LOAD_OFFSET __START_KERNEL_map
|
||||
#endif
|
||||
|
||||
#define RUNTIME_DISCARD_EXIT
|
||||
#define EMITS_PT_NOTE
|
||||
|
@ -114,11 +110,10 @@ PHDRS {
|
|||
|
||||
SECTIONS
|
||||
{
|
||||
. = __START_KERNEL;
|
||||
#ifdef CONFIG_X86_32
|
||||
. = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
|
||||
phys_startup_32 = ABSOLUTE(startup_32 - LOAD_OFFSET);
|
||||
#else
|
||||
. = __START_KERNEL;
|
||||
phys_startup_64 = ABSOLUTE(startup_64 - LOAD_OFFSET);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -42,7 +42,8 @@ KCOV_INSTRUMENT := n
|
|||
# make up the standalone purgatory.ro
|
||||
|
||||
PURGATORY_CFLAGS_REMOVE := -mcmodel=kernel
|
||||
PURGATORY_CFLAGS := -mcmodel=large -ffreestanding -fno-zero-initialized-in-bss -g0
|
||||
PURGATORY_CFLAGS := -mcmodel=small -ffreestanding -fno-zero-initialized-in-bss -g0
|
||||
PURGATORY_CFLAGS += -fpic -fvisibility=hidden
|
||||
PURGATORY_CFLAGS += $(DISABLE_STACKLEAK_PLUGIN) -DDISABLE_BRANCH_PROFILING
|
||||
PURGATORY_CFLAGS += -fno-stack-protector
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* linker scripts.
|
||||
*
|
||||
* A minimal linker scripts has following content:
|
||||
* [This is a sample, architectures may have special requiriements]
|
||||
* [This is a sample, architectures may have special requirements]
|
||||
*
|
||||
* OUTPUT_FORMAT(...)
|
||||
* OUTPUT_ARCH(...)
|
||||
|
|
Loading…
Reference in a new issue