fix cross compilationor libpayload / coreinfo by honoring

the setting of CC in the payload (coreinfo) when calling
 
make CC=i386-elf-gcc AS=i386-elf-as AR=i386-elf-ar STRIP=i386-elf-strip

This still does not cope with the hardcoded -fno-stack-protector in
libpayload's Makefile.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Peter Stuge <peter@stuge.se>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3477 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer 2008-08-07 15:22:01 +00:00 committed by Stefan Reinauer
parent 695cff30e1
commit c359124ef4
2 changed files with 12 additions and 7 deletions

View File

@ -45,8 +45,9 @@ HOSTCFLAGS := -I$(srck) -I$(objk)
HOSTCXXFLAGS := -I$(srck) -I$(objk) HOSTCXXFLAGS := -I$(srck) -I$(objk)
LIBPAYLOAD_DIR := ../libpayload LIBPAYLOAD_DIR := ../libpayload
CC = $(LIBPAYLOAD_DIR)/bin/lpgcc XCC := CC=$(CC) $(LIBPAYLOAD_DIR)/bin/lpgcc
AS = $(LIBPAYLOAD_DIR)/bin/lpas AS = $(LIBPAYLOAD_DIR)/bin/lpas
STRIP ?= strip
INCLUDES = -Ibuild INCLUDES = -Ibuild
CFLAGS := -Wall -Werror -Os $(INCLUDES) CFLAGS := -Wall -Werror -Os $(INCLUDES)
@ -68,9 +69,9 @@ all: prepare $(TARGET)
$(TARGET): $(src)/.config $(OBJS) $(TARGET): $(src)/.config $(OBJS)
$(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n" $(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) -o $@ $(OBJS) $(Q)$(XCC) -o $@ $(OBJS)
$(Q)printf " STRIP $(subst $(shell pwd)/,,$(@))\n" $(Q)printf " STRIP $(subst $(shell pwd)/,,$(@))\n"
$(Q)strip -s $@ $(Q)$(STRIP) -s $@
$(obj)/%.S.o: $(src)/%.S $(obj)/%.S.o: $(src)/%.S
$(Q)printf " AS $(subst $(shell pwd)/,,$(@))\n" $(Q)printf " AS $(subst $(shell pwd)/,,$(@))\n"
@ -78,7 +79,7 @@ $(obj)/%.S.o: $(src)/%.S
$(obj)/%.o: $(src)/%.c $(obj)/%.o: $(src)/%.c
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(CFLAGS) -c -o $@ $< $(Q)$(XCC) $(CFLAGS) -c -o $@ $<
endif endif

View File

@ -28,8 +28,11 @@
# GCC wrapper for libpayload # GCC wrapper for libpayload
DEFAULT_PREFIX=/opt if [ "$CC" != "" ]; then
DEFAULT_CC=$CC
else
DEFAULT_CC=gcc DEFAULT_CC=gcc
fi
BASE=`dirname $0` BASE=`dirname $0`
@ -37,9 +40,10 @@ BASE=`dirname $0`
. $BASE/lp.functions . $BASE/lp.functions
trygccoption() { trygccoption() {
$DEFAULT_CC $1 -S -xc /dev/null -o .$$.tmp > /dev/null $DEFAULT_CC $1 -S -xc /dev/null -o .$$.tmp &> /dev/null
RET=$?
rm -f .$$.tmp rm -f .$$.tmp
return $? return $RET
} }
DEBUGME=0 DEBUGME=0