diff options
Diffstat (limited to 'arch/x86/Makefile')
-rw-r--r-- | arch/x86/Makefile | 83 |
1 files changed, 23 insertions, 60 deletions
diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 4d471c2f8a..647d075f01 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -1,62 +1,46 @@ -KBUILD_DEFCONFIG := generic_defconfig +# SPDX-License-Identifier: GPL-2.0-only -CPPFLAGS += -D__X86__ +KBUILD_DEFCONFIG := efi_defconfig -board-$(CONFIG_MACH_X86_GENERIC) := x86_generic +KBUILD_CPPFLAGS += -D__X86__ TEXT_BASE = $(CONFIG_TEXT_BASE) -ifeq ($(CONFIG_X86_EFI),y) machine-y := efi -CFLAGS += -fpic -fshort-wchar -mno-sse -mno-mmx +KBUILD_CFLAGS += -fpic -mno-sse -mno-mmx ifeq ($(CONFIG_X86_32),y) TARGET = efi-app-ia32 else TARGET = efi-app-x86_64 endif -else -CPPFLAGS += -fno-strict-aliasing -CPPFLAGS += -march=i386 -DTEXT_BASE=$(TEXT_BASE) \ - -fno-unwind-tables -fno-asynchronous-unwind-tables - -machine-y := i386 -endif ifeq ($(CONFIG_X86_32),y) UTS_MACHINE := i386 biarch := $(call cc-option,-m32) - AFLAGS += $(biarch) - CFLAGS += $(biarch) - CPPFLAGS += $(biarch) + KBUILD_AFLAGS += $(biarch) + KBUILD_CFLAGS += $(biarch) + KBUILD_CPPFLAGS += $(biarch) else UTS_MACHINE := x86_64 - AFLAGS += -m64 - CFLAGS += -m64 -mno-red-zone - CPPFLAGS += -m64 + KBUILD_AFLAGS += -m64 + KBUILD_CFLAGS += -m64 -mno-red-zone + KBUILD_CPPFLAGS += -m64 endif ifndef CONFIG_MODULES # Add cleanup flags -ifneq ($(CONFIG_X86_EFI),y) -CPPFLAGS += -fdata-sections -ffunction-sections +ifeq ($(CONFIG_X86_EFI),y) +LDFLAGS_barebox += -shared -Bsymbolic -znocombreloc +else +KBUILD_CPPFLAGS += -fdata-sections -ffunction-sections LDFLAGS_barebox += -static --gc-sections endif endif machdirs := $(patsubst %,arch/x86/mach-%/,$(machine-y)) -ifeq ($(KBUILD_SRC),) -CPPFLAGS += $(patsubst %,-I%include,$(machdirs)) -else -CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs)) -endif - -ifneq ($(board-y),) -BOARD := arch/x86/boards/$(board-y)/ -else -BOARD := -endif +KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs)) ifneq ($(machine-y),) MACH := arch/x86/mach-$(machine-y)/ @@ -64,48 +48,27 @@ else MACH := endif -common-y += $(BOARD) $(MACH) +common-y += $(MACH) common-y += arch/x86/lib/ -common-$(CONFIG_X86_BIOS_BRINGUP) += arch/x86/bios/ # arch/x86/cpu/ -ifeq ($(CONFIG_X86_EFI),y) lds-$(CONFIG_X86_32) := arch/x86/mach-efi/elf_ia32_efi.lds lds-$(CONFIG_X86_64) := arch/x86/mach-efi/elf_x86_64_efi.lds -cmd_barebox__ ?= $(LD) $(LDFLAGS) $(LDFLAGS_barebox) -o $@ \ - -T $(lds-y) \ - -shared -Bsymbolic -nostdlib -znocombreloc \ - --start-group $(BAREBOX_OBJS) \ - --end-group \ - $(filter-out $(BAREBOX_LDS) $(BAREBOX_OBJS) FORCE ,$^) - -quiet_cmd_efi_image = EFI-IMG $@ - cmd_efi_image = $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \ - -j .dynsym -j .rel -j .rela -j .reloc -j __barebox_initcalls \ - -j __barebox_exitcalls -j __barebox_cmd -j .barebox_magicvar \ - -j .bbenv.* -j .bblogo.* --target=$(TARGET) $< $@ - KBUILD_BINARY := barebox -LDFLAGS := --no-undefined +KBUILD_LDFLAGS := --no-undefined + +OBJCOPYFLAGS_barebox.efi = \ + -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela \ + -j .reloc -j .bbenv.* -j .bblogo.* -j .barebox_imd --target=$(TARGET) barebox.efi: $(KBUILD_BINARY) FORCE - $(call if_changed,efi_image) + $(call if_changed,objcopy) KBUILD_IMAGE := barebox.efi -else -common-y += arch/x86/boot/ - -lds-$(CONFIG_GENERIC_LINKER_SCRIPT) := arch/x86/lib/barebox.lds -lds-$(CONFIG_BOARD_LINKER_SCRIPT) := $(BOARD)/barebox.lds - -endif - -LDFLAGS += -m elf_$(UTS_MACHINE) +KBUILD_LDFLAGS += -m elf_$(UTS_MACHINE) CLEAN_FILES += $(lds-y) -CLEAN_FILES += arch/x86/lib/barebox.lds barebox.map barebox.S - |