From de5d2b6c200ae5dd8113751e58bf7cf5844eec5a 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 88a27de..5e8668a 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 @@ -125,11 +128,12 @@ CHOSEN_NODE := chosen { \ CPPFLAGS += $(INITRD_FLAGS) CFLAGS += -I$(top_srcdir)/include/ -I$(top_srcdir)/$(ARCH_SRC)/include/ CFLAGS += -Wall -fomit-frame-pointer +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. @@ -150,10 +154,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