Merge branch '2021-05-24-add-lto-support'
[pandora-u-boot.git] / arch / sandbox / config.mk
1 # SPDX-License-Identifier: GPL-2.0+
2 # Copyright (c) 2011 The Chromium OS Authors.
3
4 PLATFORM_CPPFLAGS += -D__SANDBOX__ -U_FORTIFY_SOURCE
5 PLATFORM_CPPFLAGS += -DCONFIG_ARCH_MAP_SYSMEM
6 PLATFORM_CPPFLAGS += -fPIC
7 PLATFORM_LIBS += -lrt
8 SDL_CONFIG ?= sdl2-config
9
10 # Define this to avoid linking with SDL, which requires SDL libraries
11 # This can solve 'sdl-config: Command not found' errors
12 ifneq ($(NO_SDL),)
13 PLATFORM_CPPFLAGS += -DSANDBOX_NO_SDL
14 else
15 PLATFORM_LIBS += $(shell $(SDL_CONFIG) --libs)
16 PLATFORM_CPPFLAGS += $(shell $(SDL_CONFIG) --cflags)
17 endif
18
19 cmd_u-boot__ = $(CC) -o $@ -Wl,-T u-boot.lds $(u-boot-init) \
20         $(LTO_FINAL_LDFLAGS) \
21         -Wl,--whole-archive \
22                 $(u-boot-main) \
23                 $(u-boot-keep-syms-lto) \
24         -Wl,--no-whole-archive \
25         $(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot.map
26
27 cmd_u-boot-spl = (cd $(obj) && $(CC) -o $(SPL_BIN) -Wl,-T u-boot-spl.lds \
28         $(LTO_FINAL_LDFLAGS) \
29         $(patsubst $(obj)/%,%,$(u-boot-spl-init)) \
30         -Wl,--whole-archive \
31                 $(patsubst $(obj)/%,%,$(u-boot-spl-main)) \
32                 $(patsubst $(obj)/%,%,$(u-boot-spl-platdata)) \
33                 $(patsubst $(obj)/%,%,$(u-boot-spl-keep-syms-lto)) \
34         -Wl,--no-whole-archive \
35         $(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot-spl.map -Wl,--gc-sections)
36
37 CONFIG_ARCH_DEVICE_TREE := sandbox
38
39 ifeq ($(HOST_ARCH),$(HOST_ARCH_X86_64))
40 EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_x86_64_efi.lds
41 EFI_TARGET := --target=efi-app-x86_64
42 else ifeq ($(HOST_ARCH),$(HOST_ARCH_X86))
43 EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_ia32_efi.lds
44 EFI_TARGET := --target=efi-app-ia32
45 else ifeq ($(HOST_ARCH),$(HOST_ARCH_AARCH64))
46 EFI_LDS := ${SRCDIR}/../../../arch/arm/lib/elf_aarch64_efi.lds
47 OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \
48                 -j .u_boot_list -j .rela.dyn -j .got -j .got.plt \
49                 -j .binman_sym_table -j .text_rest \
50                 -j .efi_runtime -j .efi_runtime_rel
51 else ifeq ($(HOST_ARCH),$(HOST_ARCH_ARM))
52 EFI_LDS := ${SRCDIR}/../../../arch/arm/lib/elf_arm_efi.lds
53 OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .hash \
54                 -j .data -j .got -j .got.plt -j .u_boot_list -j .rel.dyn \
55                 -j .binman_sym_table -j .text_rest \
56                 -j .efi_runtime -j .efi_runtime_rel
57 else ifeq ($(HOST_ARCH),$(HOST_ARCH_RISCV32))
58 EFI_LDS := ${SRCDIR}/../../../arch/riscv/lib/elf_riscv32_efi.lds
59 else ifeq ($(HOST_ARCH),$(HOST_ARCH_RISCV64))
60 EFI_LDS := ${SRCDIR}/../../../arch/riscv/lib/elf_riscv64_efi.lds
61 endif
62 EFI_CRT0 := crt0_sandbox_efi.o
63 EFI_RELOC := reloc_sandbox_efi.o
64 AFLAGS_crt0_sandbox_efi.o += -DHOST_ARCH="$(HOST_ARCH)"
65 CFLAGS_reloc_sandbox_efi.o += -DHOST_ARCH="$(HOST_ARCH)"