]>
Commit | Line | Data |
---|---|---|
2262cfee WD |
1 | # |
2 | # (C) Copyright 2000-2002 | |
3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. | |
4 | # | |
1a459660 | 5 | # SPDX-License-Identifier: GPL-2.0+ |
2262cfee WD |
6 | # |
7 | ||
8ae86b76 | 8 | CONFIG_STANDALONE_LOAD_ADDR ?= 0x40000 |
262ae0a6 | 9 | |
5c161653 | 10 | PLATFORM_CPPFLAGS += -fno-strict-aliasing |
5c161653 | 11 | PLATFORM_CPPFLAGS += -fomit-frame-pointer |
f694183b | 12 | PF_CPPFLAGS_X86 := $(call cc-option, -fno-toplevel-reorder, \ |
cca4e4ae | 13 | $(call cc-option, -fno-unit-at-a-time)) \ |
cca4e4ae | 14 | $(call cc-option, -mpreferred-stack-boundary=2) |
3f1c046c | 15 | |
cca4e4ae | 16 | PLATFORM_CPPFLAGS += $(PF_CPPFLAGS_X86) |
a85f53cd | 17 | PLATFORM_CPPFLAGS += -fno-dwarf2-cfi-asm |
dbb7234b | 18 | PLATFORM_CPPFLAGS += -march=i386 -m32 |
a85f53cd GR |
19 | |
20 | PLATFORM_RELFLAGS += -ffunction-sections -fvisibility=hidden | |
21 | ||
3f1c046c | 22 | PLATFORM_LDFLAGS += -Bsymbolic -Bsymbolic-functions -m elf_i386 |
a85f53cd | 23 | |
36b2409a GB |
24 | LDFLAGS_FINAL += --wrap=__divdi3 --wrap=__udivdi3 |
25 | LDFLAGS_FINAL += --wrap=__moddi3 --wrap=__umoddi3 | |
3f1c046c | 26 | |
476476e7 SG |
27 | # This is used in the top-level Makefile which does not include |
28 | # PLATFORM_LDFLAGS | |
29 | LDFLAGS_EFI_PAYLOAD := -Bsymbolic -Bsymbolic-functions -shared --no-undefined | |
30 | ||
3f1c046c BS |
31 | OBJCOPYFLAGS_EFI := -j .text -j .sdata -j .data -j .dynamic -j .dynsym \ |
32 | -j .rel -j .rela -j .reloc | |
33 | ||
34 | CFLAGS_NON_EFI := -mregparm=3 | |
35 | CFLAGS_EFI := -fpic -fshort-wchar | |
36 | ||
96a8d409 SG |
37 | ifeq ($(CONFIG_EFI_STUB_64BIT),) |
38 | CFLAGS_EFI += $(call cc-option, -mno-red-zone) | |
3f1c046c | 39 | EFIARCH = ia32 |
476476e7 | 40 | EFIPAYLOAD_BFDTARGET = elf32-i386 |
96a8d409 SG |
41 | else |
42 | EFIARCH = x86_64 | |
43 | EFIPAYLOAD_BFDTARGET = elf64-x86-64 | |
44 | endif | |
476476e7 SG |
45 | |
46 | EFIPAYLOAD_BFDARCH = i386 | |
3f1c046c | 47 | |
d36badfd | 48 | LDSCRIPT_EFI := $(srctree)/arch/x86/lib/elf_$(EFIARCH)_efi.lds |
2dcd4e9e | 49 | EFISTUB := crt0_$(EFIARCH)_efi.o reloc_$(EFIARCH)_efi.o |
3f1c046c BS |
50 | OBJCOPYFLAGS_EFI += --target=efi-app-$(EFIARCH) |
51 | ||
96a8d409 SG |
52 | CPPFLAGS_REMOVE_crt0-efi-$(EFIARCH).o += $(CFLAGS_NON_EFI) |
53 | CPPFLAGS_crt0-efi-$(EFIARCH).o += $(CFLAGS_EFI) | |
54 | ||
3f1c046c BS |
55 | ifeq ($(CONFIG_EFI_APP),y) |
56 | ||
57 | PLATFORM_CPPFLAGS += $(CFLAGS_EFI) | |
58 | LDFLAGS_FINAL += -znocombreloc -shared | |
59 | LDSCRIPT := $(LDSCRIPT_EFI) | |
60 | ||
61 | else | |
62 | ||
63 | PLATFORM_CPPFLAGS += $(CFLAGS_NON_EFI) | |
64 | PLATFORM_LDFLAGS += --emit-relocs | |
65 | LDFLAGS_FINAL += --gc-sections -pie | |
66 | ||
67 | endif | |
5bd828b5 | 68 | |
95b62b2e | 69 | ifneq ($(CONFIG_EFI_STUB)$(CONFIG_CMD_BOOTEFI_HELLO_COMPILE),) |
5bd828b5 SG |
70 | |
71 | ifneq ($(CONFIG_EFI_STUB_64BIT),) | |
72 | EFI_LDS := elf_x86_64_efi.lds | |
73 | EFI_CRT0 := crt0_x86_64_efi.o | |
74 | EFI_RELOC := reloc_x86_64_efi.o | |
75 | EFI_TARGET := --target=efi-app-ia32 | |
76 | else | |
77 | EFI_LDS := elf_ia32_efi.lds | |
78 | EFI_CRT0 := crt0_ia32_efi.o | |
79 | EFI_RELOC := reloc_ia32_efi.o | |
80 | EFI_TARGET := --target=efi-app-x86_64 | |
81 | endif | |
82 | ||
83 | endif |