[coreboot-gerrit] Patch set updated for coreboot: 8571a96 build system: move compiler runtime determination to xcompile

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Thu Jun 4 14:25:19 CEST 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10425

-gerrit

commit 8571a96a2702621535b47471890d1242f6025196
Author: Patrick Georgi <patrick at georgi-clan.de>
Date:   Thu Jun 4 13:31:38 2015 +0200

    build system: move compiler runtime determination to xcompile
    
    Instead of fetching libgcc's location and required compiler flags on every
    individual build, do it once in xcompile.
    
    Change-Id: Ie5832fcb21710c4cf381ba475589d42ce0235f96
    Signed-off-by: Patrick Georgi <patrick at georgi-clan.de>
    Signed-off-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>
---
 toolchain.inc          | 11 ++---------
 util/xcompile/xcompile | 12 ++++++++++++
 2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/toolchain.inc b/toolchain.inc
index e089f2e..8b7b30a 100644
--- a/toolchain.inc
+++ b/toolchain.inc
@@ -104,15 +104,8 @@ STRIP_$(1) := $(STRIP_$(2))
 READELF_$(1) := $(READELF_$(2))
 CFLAGS_$(1) = $$(CFLAGS_common) $$(CFLAGS_$(2))
 CPPFLAGS_$(1) = $$(CPPFLAGS_common) $$(CPPFLAGS_$(2))
-COMPILER_RT_FLAGS_$(1) :=
-ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y)
-COMPILER_RT_$(1) := $(shell $(CC_$(2)) $(CFLAGS_$(2)) -print-librt-file-name 2>/dev/null)
-else
-COMPILER_RT_$(1) := $(wildcard $(shell $(CC_$(2)) $(CFLAGS_$(2)) -print-libgcc-file-name))
-ifeq ($(2),x86_32)
-COMPILER_RT_FLAGS_$(1) := --wrap __divdi3 --wrap __udivdi3 --wrap __moddi3 --wrap __umoddi3
-endif
-endif
+COMPILER_RT_$(1) := $$(COMPILER_RT_$(2))
+COMPILER_RT_FLAGS_$(1) := $$(COMPILER_RT_FLAGS_$(2))
 endef
 
 # define_class: Allows defining any program as dynamic class and compiler tool
diff --git a/util/xcompile/xcompile b/util/xcompile/xcompile
index 94e0c19..66b011a 100755
--- a/util/xcompile/xcompile
+++ b/util/xcompile/xcompile
@@ -157,6 +157,11 @@ detect_special_flags() {
 	esac
 }
 
+detect_compiler_runtime() {
+	CC_RT_CLANG="`${CLANG} ${CFLAGS} -print-librt-file-name`"
+	CC_RT_GCC="`${GCC} ${CFLAGS} -print-libgcc-file-name`"
+}
+
 report_arch_toolchain() {
 	cat <<EOF
 # elf${TWIDTH}-${TBFDARCH} toolchain (${GCC})
@@ -165,8 +170,12 @@ SUBARCH_SUPPORTED+=${TSUPP-${TARCH}}
 ifeq (\$(CONFIG_COMPILER_GCC),y)
 CC_${TARCH}:=${GCC}
 CFLAGS_${TARCH}:=${CFLAGS_GCC}
+COMPILER_RT_${TARCH}:=${CC_RT_GCC}
+COMPILER_RT_FLAGS_${TARCH}:=${CC_RT_EXTRA_GCC}
 else
 CC_${TARCH}:=${CLANG}
+COMPILER_RT_${TARCH}:=${CC_RT_CLANG}
+COMPILER_RT_FLAGS_${TARCH}:=${CC_RT_EXTRA_CLANG}
 endif
 CPP_${TARCH}:=${GCCPREFIX}cpp
 AS_${TARCH}:=${GCCPREFIX}as ${ASFLAGS}
@@ -217,6 +226,7 @@ arch_config_x86() {
 	TCLIST="i386 x86_64"
 	TWIDTH="32"
 	TABI="elf"
+	CC_RT_EXTRA_GCC="--wrap __divdi3 --wrap __udivdi3 --wrap __moddi3 --wrap __umoddi3"
 }
 
 arch_config_mipsel() {
@@ -235,6 +245,7 @@ test_architecture() {
 
 	GCCPREFIX="invalid"
 	unset TABI TARCH TBFDARCH TCLIST TENDIAN TSUPP TWIDTH
+	unset CC_RT_EXTRA_GCC CC_RT_EXTRA_CLANG
 	unset GCC CLANG
 	if type arch_config_$architecture > /dev/null; then
 		arch_config_$architecture
@@ -293,6 +304,7 @@ test_architecture() {
 for architecture in $SUPPORTED_ARCHITECTURES; do
 	if test_architecture $architecture; then
 		detect_special_flags "$architecture"
+		detect_compiler_runtime "$architecture"
 		report_arch_toolchain
 	fi
 done



More information about the coreboot-gerrit mailing list