From f4d5cf4c3424598a2b3bb391717313b70c79ea28 Mon Sep 17 00:00:00 2001 From: Jaxson Han Date: Tue, 28 Dec 2021 17:42:48 +0800 Subject: [PATCH] Makefile: Add the libfdt to the Makefile system Add the libfdt into Makefile system. The libfdt uses const value and thus gcc will enable the stack guard. The stack guard will fail the compile. Add -fno-stack-protector to fix it. Issue-Id: SCM-3814 Upstream-Status: Inappropriate [other] Implementation pending further discussion Signed-off-by: Jaxson Han Change-Id: I472bc28cdc5cde3b22461a4b7d7a3752ae382b4b --- Makefile.am | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index fc66662..ab2c3a9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -36,6 +36,9 @@ PSCI_CPU_OFF := 0x84000002 COMMON_SRC := common/ COMMON_OBJ := boot.o bakery_lock.o platform.o lib.o +LIBFDT_SRC := common/libfdt/ +LIBFDT_OBJS := fdt.o fdt_ro.o fdt_rw.o + ARCH_OBJ := boot.o stack.o utils.o if BOOTWRAPPER_32 @@ -127,11 +130,12 @@ CFLAGS += -I$(top_srcdir)/include/ -I$(top_srcdir)/$(ARCH_SRC)/include/ CFLAGS += -Wall -fomit-frame-pointer CFLAGS += -ffreestanding -nostdlib CFLAGS += -fno-stack-protector +CFLAGS += -fno-stack-protector CFLAGS += -ffunction-sections -fdata-sections CFLAGS += -fno-pic -fno-pie LDFLAGS += --gc-sections -OBJ := $(addprefix $(ARCH_SRC),$(ARCH_OBJ)) $(addprefix $(COMMON_SRC),$(COMMON_OBJ)) +OBJ := $(addprefix $(ARCH_SRC),$(ARCH_OBJ)) $(addprefix $(COMMON_SRC),$(COMMON_OBJ)) $(addprefix $(LIBFDT_SRC),$(LIBFDT_OBJS)) # Don't lookup all prerequisites in $(top_srcdir), only the source files. When # building outside the source tree $(ARCH_SRC) needs to be created. @@ -152,10 +156,13 @@ $(ARCH_SRC): $(COMMON_SRC): $(MKDIR_P) $@ +$(LIBFDT_SRC): + $(MKDIR_P) $@ + %.o: %.S Makefile | $(ARCH_SRC) $(CC) $(CPPFLAGS) -D__ASSEMBLY__ $(CFLAGS) $(DEFINES) -c -o $@ $< -%.o: %.c Makefile | $(COMMON_SRC) +%.o: %.c Makefile | $(COMMON_SRC) $(LIBFDT_SRC) $(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $< model.lds: $(LD_SCRIPT) Makefile