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, \ 13cca4e4aeSWolfgang Denk $(call cc-option, -fno-unit-at-a-time)) \ 14cca4e4aeSWolfgang Denk $(call cc-option, -mpreferred-stack-boundary=2) 153f1c046cSBen Stoltz 16cca4e4aeSWolfgang DenkPLATFORM_CPPFLAGS += $(PF_CPPFLAGS_X86) 17fea25720SGraeme RussPLATFORM_CPPFLAGS += -fno-dwarf2-cfi-asm 18dbb7234bSVasili GalkaPLATFORM_CPPFLAGS += -march=i386 -m32 19fea25720SGraeme Russ 20fea25720SGraeme RussPLATFORM_RELFLAGS += -ffunction-sections -fvisibility=hidden 21fea25720SGraeme Russ 223f1c046cSBen StoltzPLATFORM_LDFLAGS += -Bsymbolic -Bsymbolic-functions -m elf_i386 23fea25720SGraeme Russ 2436b2409aSGabe BlackLDFLAGS_FINAL += --wrap=__divdi3 --wrap=__udivdi3 2536b2409aSGabe BlackLDFLAGS_FINAL += --wrap=__moddi3 --wrap=__umoddi3 263f1c046cSBen Stoltz 27476476e7SSimon Glass# This is used in the top-level Makefile which does not include 28476476e7SSimon Glass# PLATFORM_LDFLAGS 29476476e7SSimon GlassLDFLAGS_EFI_PAYLOAD := -Bsymbolic -Bsymbolic-functions -shared --no-undefined 30476476e7SSimon Glass 313f1c046cSBen StoltzOBJCOPYFLAGS_EFI := -j .text -j .sdata -j .data -j .dynamic -j .dynsym \ 323f1c046cSBen Stoltz -j .rel -j .rela -j .reloc 333f1c046cSBen Stoltz 343f1c046cSBen StoltzCFLAGS_NON_EFI := -mregparm=3 353f1c046cSBen StoltzCFLAGS_EFI := -fpic -fshort-wchar 363f1c046cSBen Stoltz 3796a8d409SSimon Glassifeq ($(CONFIG_EFI_STUB_64BIT),) 3896a8d409SSimon GlassCFLAGS_EFI += $(call cc-option, -mno-red-zone) 393f1c046cSBen StoltzEFIARCH = ia32 40476476e7SSimon GlassEFIPAYLOAD_BFDTARGET = elf32-i386 4196a8d409SSimon Glasselse 4296a8d409SSimon GlassEFIARCH = x86_64 4396a8d409SSimon GlassEFIPAYLOAD_BFDTARGET = elf64-x86-64 4496a8d409SSimon Glassendif 45476476e7SSimon Glass 46476476e7SSimon GlassEFIPAYLOAD_BFDARCH = i386 473f1c046cSBen Stoltz 48d36badfdSSimon GlassLDSCRIPT_EFI := $(srctree)/arch/x86/lib/elf_$(EFIARCH)_efi.lds 49*2dcd4e9eSSimon GlassEFISTUB := crt0_$(EFIARCH)_efi.o reloc_$(EFIARCH)_efi.o 503f1c046cSBen StoltzOBJCOPYFLAGS_EFI += --target=efi-app-$(EFIARCH) 513f1c046cSBen Stoltz 5296a8d409SSimon GlassCPPFLAGS_REMOVE_crt0-efi-$(EFIARCH).o += $(CFLAGS_NON_EFI) 5396a8d409SSimon GlassCPPFLAGS_crt0-efi-$(EFIARCH).o += $(CFLAGS_EFI) 5496a8d409SSimon Glass 553f1c046cSBen Stoltzifeq ($(CONFIG_EFI_APP),y) 563f1c046cSBen Stoltz 573f1c046cSBen StoltzPLATFORM_CPPFLAGS += $(CFLAGS_EFI) 583f1c046cSBen StoltzLDFLAGS_FINAL += -znocombreloc -shared 593f1c046cSBen StoltzLDSCRIPT := $(LDSCRIPT_EFI) 603f1c046cSBen Stoltz 613f1c046cSBen Stoltzelse 623f1c046cSBen Stoltz 633f1c046cSBen StoltzPLATFORM_CPPFLAGS += $(CFLAGS_NON_EFI) 643f1c046cSBen StoltzPLATFORM_LDFLAGS += --emit-relocs 653f1c046cSBen StoltzLDFLAGS_FINAL += --gc-sections -pie 663f1c046cSBen Stoltz 673f1c046cSBen Stoltzendif 68