[Skiboot] [PATCH] pflash: Allow building under yocto.

Patrick Williams patrick at stwcx.xyz
Fri Apr 15 03:54:20 AEST 2016


The makefiles under external/* utilize the $(CROSS_COMPILE) variable
to determine the cross-compiler prefix.  In a few places,
$(CROSS_COMPILE)gcc is called instead of $(CC).  The issue with this is
that yocto build passes some compile flags as part of $(CC) instead of
$(CFLAGS), the most important of these is '--sysroot=...'.  Without the
proper --sysroot flag, pflash compile fails to find critical libc
headers like stdio.h.

This change delegates setting of $(CC) and $(LD) to
external/common/rules.mk, which is widely used in the external tree, and
ensures that:
    1) $(CC) is used instead of $(CROSS_COMPILE)gcc.
    2) CC is only set when not passed from the environment.

Signed-off-by: Patrick Williams <patrick at stwcx.xyz>
---
 external/common/rules.mk   | 6 ++++--
 external/gard/rules.mk     | 2 --
 external/opal-prd/Makefile | 2 --
 external/pflash/rules.mk   | 2 --
 external/shared/Makefile   | 1 -
 5 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/external/common/rules.mk b/external/common/rules.mk
index ec20593..95a2757 100644
--- a/external/common/rules.mk
+++ b/external/common/rules.mk
@@ -1,3 +1,5 @@
+CC ?= $(CROSS_COMPILE)gcc
+LD ?= $(CROSS_COMPILE)ld
 ARCH := $(shell $(GET_ARCH) "$(CROSS_COMPILE)")
 
 ifeq ($(ARCH),ARCH_ARM)
@@ -42,8 +44,8 @@ arch_clean:
 $(ARCH_SRC): | common
 
 $(ARCH_OBJS): common-%.o: common/%.c
-	$(Q_CC)$(CROSS_COMPILE)gcc $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+	$(Q_CC)$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
 
 common-arch_flash.o: $(ARCH_OBJS)
-	$(Q_LD)$(CROSS_COMPILE)ld -r $(ARCH_OBJS) -o $@
+	$(Q_LD)$(LD) -r $(ARCH_OBJS) -o $@
 
diff --git a/external/gard/rules.mk b/external/gard/rules.mk
index f0086a2..0dd14ed 100644
--- a/external/gard/rules.mk
+++ b/external/gard/rules.mk
@@ -7,8 +7,6 @@ OBJS     += $(LIBFLASH_OBJS)
 OBJS     += common-arch_flash.o
 EXE       = gard
 
-CC = $(CROSS_COMPILE)gcc
-
 prefix = /usr/local/
 sbindir = $(prefix)/sbin
 datadir = $(prefix)/share
diff --git a/external/opal-prd/Makefile b/external/opal-prd/Makefile
index 3f34371..ff5ba6b 100644
--- a/external/opal-prd/Makefile
+++ b/external/opal-prd/Makefile
@@ -1,5 +1,3 @@
-CC = $(CROSS_COMPILE)gcc
-
 CFLAGS += -m64 -Werror -Wall -g2 -ggdb
 LDFLAGS += -m64
 ASFLAGS = -m64
diff --git a/external/pflash/rules.mk b/external/pflash/rules.mk
index 219e3d3..aa426b5 100644
--- a/external/pflash/rules.mk
+++ b/external/pflash/rules.mk
@@ -9,8 +9,6 @@ OBJS	+= $(LIBFLASH_OBJS)
 OBJS	+= common-arch_flash.o
 EXE     = pflash
 
-CC	= $(CROSS_COMPILE)gcc
-
 PFLASH_VERSION ?= $(shell ../../make_version.sh $(EXE))
 
 version.c: .version
diff --git a/external/shared/Makefile b/external/shared/Makefile
index ffc049f..4c31657 100644
--- a/external/shared/Makefile
+++ b/external/shared/Makefile
@@ -1,5 +1,4 @@
 .DEFAULT_GOAL := all
-CC ?= $(CROSS_COMPILE)gcc
 GET_ARCH = ../../external/common/get_arch.sh
 include ../../external/common/rules.mk
 
-- 
2.6.3




More information about the Skiboot mailing list