xref: /rk3399_rockchip-uboot/arch/x86/config.mk (revision 07d778382200a05a8b86cc135f79ec48e386f25a)
1fea25720SGraeme Russ#
2fea25720SGraeme Russ# (C) Copyright 2000-2002
3fea25720SGraeme Russ# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4fea25720SGraeme Russ#
51a459660SWolfgang Denk# SPDX-License-Identifier:	GPL-2.0+
6fea25720SGraeme Russ#
7fea25720SGraeme Russ
8fea25720SGraeme RussCONFIG_STANDALONE_LOAD_ADDR ?= 0x40000
9fea25720SGraeme Russ
10fea25720SGraeme RussPLATFORM_CPPFLAGS += -fno-strict-aliasing
11fea25720SGraeme RussPLATFORM_CPPFLAGS += -fomit-frame-pointer
12f694183bSMasahiro YamadaPF_CPPFLAGS_X86   := $(call cc-option, -fno-toplevel-reorder, \
139a95f51fSBin Meng		     $(call cc-option, -fno-unit-at-a-time))
143f1c046cSBen Stoltz
15cca4e4aeSWolfgang DenkPLATFORM_CPPFLAGS += $(PF_CPPFLAGS_X86)
16fea25720SGraeme RussPLATFORM_CPPFLAGS += -fno-dwarf2-cfi-asm
173a03703aSSimon Glass
183a03703aSSimon Glassifdef CONFIG_SPL_BUILD
193a03703aSSimon GlassIS_32BIT := y
203a03703aSSimon Glasselse
213a03703aSSimon Glassifndef CONFIG_X86_64
223a03703aSSimon GlassIS_32BIT := y
233a03703aSSimon Glassendif
243a03703aSSimon Glassendif
253a03703aSSimon Glass
263a03703aSSimon Glassifeq ($(IS_32BIT),y)
27dbb7234bSVasili GalkaPLATFORM_CPPFLAGS += -march=i386 -m32
283a03703aSSimon Glasselse
29*e719b6b0SBin MengPLATFORM_CPPFLAGS += $(if $(CONFIG_SPL_BUILD),,-fpic) -fno-common -m64
303a03703aSSimon Glassendif
31fea25720SGraeme Russ
32fea25720SGraeme RussPLATFORM_RELFLAGS += -ffunction-sections -fvisibility=hidden
33fea25720SGraeme Russ
343a03703aSSimon GlassPLATFORM_LDFLAGS += -Bsymbolic -Bsymbolic-functions
353a03703aSSimon GlassPLATFORM_LDFLAGS += -m $(if $(IS_32BIT),elf_i386,elf_x86_64)
36fea25720SGraeme Russ
3736b2409aSGabe BlackLDFLAGS_FINAL += --wrap=__divdi3 --wrap=__udivdi3
3836b2409aSGabe BlackLDFLAGS_FINAL += --wrap=__moddi3 --wrap=__umoddi3
393f1c046cSBen Stoltz
40476476e7SSimon Glass# This is used in the top-level Makefile which does not include
41476476e7SSimon Glass# PLATFORM_LDFLAGS
42476476e7SSimon GlassLDFLAGS_EFI_PAYLOAD := -Bsymbolic -Bsymbolic-functions -shared --no-undefined
43476476e7SSimon Glass
443f1c046cSBen StoltzOBJCOPYFLAGS_EFI := -j .text -j .sdata -j .data -j .dynamic -j .dynsym \
453f1c046cSBen Stoltz	-j .rel -j .rela -j .reloc
463f1c046cSBen Stoltz
473a03703aSSimon Glassifeq ($(IS_32BIT),y)
483f1c046cSBen StoltzCFLAGS_NON_EFI := -mregparm=3
493a03703aSSimon Glassendif
503f1c046cSBen StoltzCFLAGS_EFI := -fpic -fshort-wchar
513f1c046cSBen Stoltz
5296a8d409SSimon Glassifeq ($(CONFIG_EFI_STUB_64BIT),)
5396a8d409SSimon GlassCFLAGS_EFI += $(call cc-option, -mno-red-zone)
543f1c046cSBen StoltzEFIARCH = ia32
55476476e7SSimon GlassEFIPAYLOAD_BFDTARGET = elf32-i386
5696a8d409SSimon Glasselse
5796a8d409SSimon GlassEFIARCH = x86_64
5896a8d409SSimon GlassEFIPAYLOAD_BFDTARGET = elf64-x86-64
5996a8d409SSimon Glassendif
60476476e7SSimon Glass
61476476e7SSimon GlassEFIPAYLOAD_BFDARCH = i386
623f1c046cSBen Stoltz
63d36badfdSSimon GlassLDSCRIPT_EFI := $(srctree)/arch/x86/lib/elf_$(EFIARCH)_efi.lds
642dcd4e9eSSimon GlassEFISTUB := crt0_$(EFIARCH)_efi.o reloc_$(EFIARCH)_efi.o
653f1c046cSBen StoltzOBJCOPYFLAGS_EFI += --target=efi-app-$(EFIARCH)
663f1c046cSBen Stoltz
6796a8d409SSimon GlassCPPFLAGS_REMOVE_crt0-efi-$(EFIARCH).o += $(CFLAGS_NON_EFI)
6896a8d409SSimon GlassCPPFLAGS_crt0-efi-$(EFIARCH).o += $(CFLAGS_EFI)
6996a8d409SSimon Glass
703f1c046cSBen Stoltzifeq ($(CONFIG_EFI_APP),y)
713f1c046cSBen Stoltz
723f1c046cSBen StoltzPLATFORM_CPPFLAGS += $(CFLAGS_EFI)
733f1c046cSBen StoltzLDFLAGS_FINAL += -znocombreloc -shared
743f1c046cSBen StoltzLDSCRIPT := $(LDSCRIPT_EFI)
753f1c046cSBen Stoltz
763f1c046cSBen Stoltzelse
773f1c046cSBen Stoltz
783f1c046cSBen StoltzPLATFORM_CPPFLAGS += $(CFLAGS_NON_EFI)
793f1c046cSBen StoltzPLATFORM_LDFLAGS += --emit-relocs
803a03703aSSimon GlassLDFLAGS_FINAL += --gc-sections $(if $(CONFIG_SPL_BUILD),,-pie)
813f1c046cSBen Stoltz
823f1c046cSBen Stoltzendif
835bd828b5SSimon Glass
843a03703aSSimon Glassifdef CONFIG_X86_64
853a03703aSSimon Glassifndef CONFIG_SPL_BUILD
863a03703aSSimon GlassPLATFORM_CPPFLAGS += -D__x86_64__
873a03703aSSimon Glasselse
883a03703aSSimon GlassPLATFORM_CPPFLAGS += -D__I386__
893a03703aSSimon Glassendif
903a03703aSSimon Glasselse
913a03703aSSimon GlassPLATFORM_CPPFLAGS += -D__I386__
923a03703aSSimon Glassendif
933a03703aSSimon Glass
9495b62b2eSAlexander Grafifneq ($(CONFIG_EFI_STUB)$(CONFIG_CMD_BOOTEFI_HELLO_COMPILE),)
955bd828b5SSimon Glass
965bd828b5SSimon Glassifneq ($(CONFIG_EFI_STUB_64BIT),)
975bd828b5SSimon GlassEFI_LDS := elf_x86_64_efi.lds
985bd828b5SSimon GlassEFI_CRT0 := crt0_x86_64_efi.o
995bd828b5SSimon GlassEFI_RELOC := reloc_x86_64_efi.o
1005bd828b5SSimon GlassEFI_TARGET := --target=efi-app-ia32
1015bd828b5SSimon Glasselse
1025bd828b5SSimon GlassEFI_LDS := elf_ia32_efi.lds
1035bd828b5SSimon GlassEFI_CRT0 := crt0_ia32_efi.o
1045bd828b5SSimon GlassEFI_RELOC := reloc_ia32_efi.o
1055bd828b5SSimon GlassEFI_TARGET := --target=efi-app-x86_64
1065bd828b5SSimon Glassendif
1075bd828b5SSimon Glass
1085bd828b5SSimon Glassendif
109