xref: /openbmc/u-boot/arch/x86/config.mk (revision f388e3bed7318efe97058b673801dda6f563d319)
183d290c5STom Rini# SPDX-License-Identifier: GPL-2.0+
2fea25720SGraeme Russ#
3fea25720SGraeme Russ# (C) Copyright 2000-2002
4fea25720SGraeme Russ# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
5fea25720SGraeme Russ
6fea25720SGraeme RussCONFIG_STANDALONE_LOAD_ADDR ?= 0x40000
7fea25720SGraeme Russ
8fea25720SGraeme RussPLATFORM_CPPFLAGS += -fomit-frame-pointer
9f694183bSMasahiro YamadaPF_CPPFLAGS_X86   := $(call cc-option, -fno-toplevel-reorder, \
109a95f51fSBin Meng		     $(call cc-option, -fno-unit-at-a-time))
113f1c046cSBen Stoltz
12cca4e4aeSWolfgang DenkPLATFORM_CPPFLAGS += $(PF_CPPFLAGS_X86)
13fea25720SGraeme RussPLATFORM_CPPFLAGS += -fno-dwarf2-cfi-asm
143a03703aSSimon Glass
153a03703aSSimon Glassifdef CONFIG_SPL_BUILD
163a03703aSSimon GlassIS_32BIT := y
173a03703aSSimon Glasselse
183a03703aSSimon Glassifndef CONFIG_X86_64
193a03703aSSimon GlassIS_32BIT := y
203a03703aSSimon Glassendif
213a03703aSSimon Glassendif
223a03703aSSimon Glass
233a03703aSSimon Glassifeq ($(IS_32BIT),y)
24dbb7234bSVasili GalkaPLATFORM_CPPFLAGS += -march=i386 -m32
253a03703aSSimon Glasselse
26a139cc18SBin MengPLATFORM_CPPFLAGS += $(if $(CONFIG_SPL_BUILD),,-fpic) -fno-common -march=core2 -m64
27dd4611deSBin MengPLATFORM_CPPFLAGS += -mno-mmx -mno-sse
283a03703aSSimon Glassendif
29fea25720SGraeme Russ
301acbd0eaSAlexander GrafPLATFORM_RELFLAGS += -fdata-sections -ffunction-sections -fvisibility=hidden
31fea25720SGraeme Russ
323a03703aSSimon GlassPLATFORM_LDFLAGS += -Bsymbolic -Bsymbolic-functions
333a03703aSSimon GlassPLATFORM_LDFLAGS += -m $(if $(IS_32BIT),elf_i386,elf_x86_64)
34fea25720SGraeme Russ
35476476e7SSimon Glass# This is used in the top-level Makefile which does not include
36476476e7SSimon Glass# PLATFORM_LDFLAGS
37972ffcd7SBin MengLDFLAGS_EFI_PAYLOAD := -Bsymbolic -Bsymbolic-functions -shared --no-undefined -s
38476476e7SSimon Glass
393f1c046cSBen StoltzOBJCOPYFLAGS_EFI := -j .text -j .sdata -j .data -j .dynamic -j .dynsym \
403f1c046cSBen Stoltz	-j .rel -j .rela -j .reloc
413f1c046cSBen Stoltz
423a03703aSSimon Glassifeq ($(IS_32BIT),y)
433f1c046cSBen StoltzCFLAGS_NON_EFI := -mregparm=3
443a03703aSSimon Glassendif
453f1c046cSBen StoltzCFLAGS_EFI := -fpic -fshort-wchar
463f1c046cSBen Stoltz
4796a8d409SSimon Glassifeq ($(CONFIG_EFI_STUB_64BIT),)
4896a8d409SSimon GlassCFLAGS_EFI += $(call cc-option, -mno-red-zone)
493f1c046cSBen StoltzEFIARCH = ia32
50476476e7SSimon GlassEFIPAYLOAD_BFDTARGET = elf32-i386
5196a8d409SSimon Glasselse
5296a8d409SSimon GlassEFIARCH = x86_64
5396a8d409SSimon GlassEFIPAYLOAD_BFDTARGET = elf64-x86-64
5496a8d409SSimon Glassendif
55476476e7SSimon Glass
56476476e7SSimon GlassEFIPAYLOAD_BFDARCH = i386
573f1c046cSBen Stoltz
58d36badfdSSimon GlassLDSCRIPT_EFI := $(srctree)/arch/x86/lib/elf_$(EFIARCH)_efi.lds
592dcd4e9eSSimon GlassEFISTUB := crt0_$(EFIARCH)_efi.o reloc_$(EFIARCH)_efi.o
603f1c046cSBen StoltzOBJCOPYFLAGS_EFI += --target=efi-app-$(EFIARCH)
613f1c046cSBen Stoltz
6296a8d409SSimon GlassCPPFLAGS_REMOVE_crt0-efi-$(EFIARCH).o += $(CFLAGS_NON_EFI)
6396a8d409SSimon GlassCPPFLAGS_crt0-efi-$(EFIARCH).o += $(CFLAGS_EFI)
6496a8d409SSimon Glass
653f1c046cSBen Stoltzifeq ($(CONFIG_EFI_APP),y)
663f1c046cSBen Stoltz
673f1c046cSBen StoltzPLATFORM_CPPFLAGS += $(CFLAGS_EFI)
68*c54ed3efSBin MengLDFLAGS_FINAL += -znocombreloc -shared -s
693f1c046cSBen StoltzLDSCRIPT := $(LDSCRIPT_EFI)
703f1c046cSBen Stoltz
713f1c046cSBen Stoltzelse
723f1c046cSBen Stoltz
733f1c046cSBen StoltzPLATFORM_CPPFLAGS += $(CFLAGS_NON_EFI)
743f1c046cSBen StoltzPLATFORM_LDFLAGS += --emit-relocs
753a03703aSSimon GlassLDFLAGS_FINAL += --gc-sections $(if $(CONFIG_SPL_BUILD),,-pie)
763f1c046cSBen Stoltz
773f1c046cSBen Stoltzendif
785bd828b5SSimon Glass
793a03703aSSimon Glassifdef CONFIG_X86_64
803a03703aSSimon Glassifndef CONFIG_SPL_BUILD
813a03703aSSimon GlassPLATFORM_CPPFLAGS += -D__x86_64__
823a03703aSSimon Glasselse
833a03703aSSimon GlassPLATFORM_CPPFLAGS += -D__I386__
843a03703aSSimon Glassendif
853a03703aSSimon Glasselse
863a03703aSSimon GlassPLATFORM_CPPFLAGS += -D__I386__
873a03703aSSimon Glassendif
883a03703aSSimon Glass
89508d8567SHeinrich Schuchardtifdef CONFIG_EFI_STUB
905bd828b5SSimon Glass
91508d8567SHeinrich Schuchardtifdef CONFIG_EFI_STUB_64BIT
925bd828b5SSimon GlassEFI_LDS := elf_x86_64_efi.lds
935bd828b5SSimon GlassEFI_CRT0 := crt0_x86_64_efi.o
945bd828b5SSimon GlassEFI_RELOC := reloc_x86_64_efi.o
955bd828b5SSimon Glasselse
965bd828b5SSimon GlassEFI_LDS := elf_ia32_efi.lds
975bd828b5SSimon GlassEFI_CRT0 := crt0_ia32_efi.o
985bd828b5SSimon GlassEFI_RELOC := reloc_ia32_efi.o
99f4cf153aSHeinrich Schuchardtendif
100f4cf153aSHeinrich Schuchardt
101508d8567SHeinrich Schuchardtelse
102508d8567SHeinrich Schuchardt
103508d8567SHeinrich Schuchardtifdef CONFIG_X86_64
104508d8567SHeinrich SchuchardtEFI_LDS := elf_x86_64_efi.lds
105508d8567SHeinrich SchuchardtEFI_CRT0 := crt0_x86_64_efi.o
106508d8567SHeinrich SchuchardtEFI_RELOC := reloc_x86_64_efi.o
107508d8567SHeinrich Schuchardtelse
108508d8567SHeinrich SchuchardtEFI_LDS := elf_ia32_efi.lds
109508d8567SHeinrich SchuchardtEFI_CRT0 := crt0_ia32_efi.o
110508d8567SHeinrich SchuchardtEFI_RELOC := reloc_ia32_efi.o
111508d8567SHeinrich Schuchardtendif
112508d8567SHeinrich Schuchardt
113508d8567SHeinrich Schuchardtendif
114508d8567SHeinrich Schuchardt
115f4cf153aSHeinrich Schuchardtifdef CONFIG_X86_64
1165bd828b5SSimon GlassEFI_TARGET := --target=efi-app-x86_64
117f4cf153aSHeinrich Schuchardtelse
118f4cf153aSHeinrich SchuchardtEFI_TARGET := --target=efi-app-ia32
1195bd828b5SSimon Glassendif
120