Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12816
-gerrit
commit e9f4c34f65d36ea4dd4fc1bed0196fe205896b91
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Wed Dec 30 14:52:19 2015 -0600
util/crossgcc: Regenerate GMP autotools files before build
The config.guess file included with GMP is completely obsolete,
leading to build failures on ppc64el due to the system architecture
not being detected. Regenerate the files from the host system via
automake before attempting to build GMP.
Change-Id: I00fc16003906e373d112c25978197ac907adccfd
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
util/crossgcc/buildgcc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc
index 988e3c3..8b52d5f 100755
--- a/util/crossgcc/buildgcc
+++ b/util/crossgcc/buildgcc
@@ -367,6 +367,10 @@ build_GMP() {
build_MPFR() {
test $UNAME = "Darwin" && CFLAGS="$CFLAGS -force_cpusubtype_ALL"
+ BUILD_DIR="$PWD"
+ cd ../${MPFR_DIR}/
+ CC="$CC" automake --add-missing --copy --force-missing
+ cd "$BUILD_DIR"
CC="$CC" ../${MPFR_DIR}/configure --disable-shared --prefix=$TARGETDIR \
--infodir=$TARGETDIR/info \
--with-gmp=$DESTDIR$TARGETDIR CFLAGS="$HOSTCFLAGS" || \
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12679
-gerrit
commit 31ef2d1449f7bc3601c4ab015372e8e216cf40a4
Author: Martin Roth <martinroth(a)google.com>
Date: Mon Dec 7 14:24:57 2015 -0700
toolchain.inc: Skip how to use any toolchain if it's selected
If ANY_TOOLCHAIN is selected, don't bother telling the user how to
do what they've already done.
Change-Id: I7182d18a91e832aa56638ec64fe8b3b0c38cff7a
Signed-off-by: Martin Roth <martinroth(a)google.com>
---
toolchain.inc | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/toolchain.inc b/toolchain.inc
index ef3ae16..7a0864e 100644
--- a/toolchain.inc
+++ b/toolchain.inc
@@ -174,9 +174,13 @@ $(warning To build just IASL: make iasl)
endif #($(IASLFAIL),1)
$(warning For more toolchain build targets: make help_toolchain)
$(warning )
-$(warning *** To try to use your own toolchain, run 'make menuconfig', then select the)
-$(warning *** config option: General setup -> Allow building with any toolchain)
-$(error Note that this is NOT supported. Using it means you're on your own)
+ifneq ($(CONFIG_ANY_TOOLCHAIN),y)
+$(warning To try to use any toolchain in your path, run 'make menuconfig', then select)
+$(warning the config option: 'General setup', and 'Allow building with any toolchain')
+$(warning Note that this is NOT supported. Using it means you're on your own.)
+$(warning )
+endif #($(CONFIG_ANY_TOOLCHAIN),y)
+$(error Halting the build)
endif #($(COMPILERFAIL),1)
endif #($(NOCOMPILE),1)
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12678
-gerrit
commit 3a539b2bda7f1a2509e8860c8a1192912a96f1a7
Author: Martin Roth <martinroth(a)google.com>
Date: Mon Dec 7 14:20:55 2015 -0700
toolchain.inc: Move nocompile around entire check, Comment endifs
Move the check for NOCOMPILE flag around the whole block. There's
no need to test COMPILERFAIL if NOCOMPILE is set.
Comment the endif lines to make it easier to understand.
Signed-off-by: Martin Roth <martinroth(a)google.com>
Change-Id: Id7bb5ca13e6bf1cabf4b7b2ff3256b47b966bac1
---
toolchain.inc | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/toolchain.inc b/toolchain.inc
index c03881c..ef3ae16 100644
--- a/toolchain.inc
+++ b/toolchain.inc
@@ -162,7 +162,6 @@ $(foreach arch,$(sort $(foreach stage,$(COREBOOT_STANDARD_STAGES),$(ARCH-$(stage
$(if $(shell if [ -n "$(IASL)" ]; then $(IASL) -v 2>&1 | grep -q "$(shell util/crossgcc/buildgcc -s iasl)" || echo not-coreboot; else echo not-coreboot; fi), \
$(eval COMPILERFAIL:=1)$(eval IASLFAIL:=1)$(warning Please use the coreboot toolchain version of iasl - $(shell util/crossgcc/buildgcc -s iasl)))
endif
-endif
ifeq ($(COMPILERFAIL),1)
ifneq ($(XGCCPATH),)
$(warning )
@@ -172,10 +171,12 @@ $(warning )
$(warning To build the entire coreboot toolchain: make crossgcc)
ifeq ($(IASLFAIL),1)
$(warning To build just IASL: make iasl)
-endif
+endif #($(IASLFAIL),1)
$(warning For more toolchain build targets: make help_toolchain)
$(warning )
$(warning *** To try to use your own toolchain, run 'make menuconfig', then select the)
$(warning *** config option: General setup -> Allow building with any toolchain)
$(error Note that this is NOT supported. Using it means you're on your own)
-endif
+endif #($(COMPILERFAIL),1)
+
+endif #($(NOCOMPILE),1)
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12682
-gerrit
commit 8fdfefb256483b7e98d52994241b79299a3aed7f
Author: Martin Roth <martinroth(a)google.com>
Date: Mon Dec 7 14:34:46 2015 -0700
xcompile: Remove warnings about missing tools & architectures
Let toolchain.inc error out when the architecture or tool is missing.
Change-Id: I39a51e5a2c778d6bbc50354807e5e2b717fa9e52
Signed-off-by: Martin Roth <martinroth(a)google.com>
---
util/xcompile/xcompile | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/util/xcompile/xcompile b/util/xcompile/xcompile
index 635bcd6..afd5986 100755
--- a/util/xcompile/xcompile
+++ b/util/xcompile/xcompile
@@ -56,8 +56,6 @@ if [ "$(${XGCCPATH}/iasl 2>/dev/null | grep -c ACPI)" -gt 0 ]; then
IASL=${XGCCPATH}iasl
elif [ "$(iasl 2>/dev/null | grep -c ACPI)" -gt 0 ]; then
IASL=iasl
-else
- die "no iasl found"
fi
if program_exists gcc; then
@@ -350,19 +348,13 @@ test_architecture() {
# that this will change in the future.
CLANG="clang -target ${clang_arch}-${TABI} -ccc-gcc-name ${GCC}"
fi
-
- if [ -z "$GCC" -a -z "$CLANG" -a "power8" != "$architecture" ]; then
- echo "Warning: no suitable compiler for $architecture." >&2
- return 1
- fi
}
# This loops over all supported architectures.
for architecture in $SUPPORTED_ARCHITECTURES; do
- if test_architecture $architecture; then
- detect_special_flags "$architecture"
- detect_compiler_runtime "$architecture"
- report_arch_toolchain
- fi
+ test_architecture $architecture
+ detect_special_flags "$architecture"
+ detect_compiler_runtime "$architecture"
+ report_arch_toolchain
done
echo XCOMPILE_COMPLETE:=1
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12681
-gerrit
commit ff3aed7ce981b0e649c1b4c21570ab1929ba79f2
Author: Martin Roth <martinroth(a)google.com>
Date: Mon Dec 7 14:33:44 2015 -0700
toolchain.inc: Test for valid toolchain when ANY_TOOLCHAIN is used
Even when ANY_TOOLCHAIN is selected, a valid compiler for the requested
architecture is needed.
Change-Id: If1a0a1ca6b726e8e58d29c69de93546510582548
Signed-off-by: Martin Roth <martinroth(a)google.com>
---
toolchain.inc | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/toolchain.inc b/toolchain.inc
index f2a6232..ee8d776 100644
--- a/toolchain.inc
+++ b/toolchain.inc
@@ -162,6 +162,14 @@ $(foreach arch,$(sort $(foreach stage,$(COREBOOT_STANDARD_STAGES),$(ARCH-$(stage
#TODO: Figure out if iasl is even needed for the build.
$(if $(shell if [ -n "$(IASL)" ]; then $(IASL) -v 2>&1 | grep -q "$(shell util/crossgcc/buildgcc -s iasl)" || echo not-coreboot; else echo not-coreboot; fi), \
$(eval COMPILERFAIL:=1)$(eval IASLFAIL:=1)$(warning The coreboot toolchain version of iasl '$(shell util/crossgcc/buildgcc -s iasl)' was not found))
+else #$(CONFIG_ANY_TOOLCHAIN)
+$(foreach arch,$(sort $(foreach stage,$(COREBOOT_STANDARD_STAGES),$(ARCH-$(stage)-y))), \
+ $(if $(CC_$(arch)),, $(eval COMPILERFAIL:=1) \
+ $(warning No compiler found for '$(arch)' architecture. Install one or use the coreboot toolchain?)) )
+#if iasl isn't present, fail
+#TODO: Figure out if iasl is even needed for the build.
+$(if $(IASL),, $(eval COMPILERFAIL:=1)$(eval IASLFAIL:=1) \
+ $(warning iasl not found. Please install it or use the coreboot toolchain.))
endif
ifeq ($(COMPILERFAIL),1)
ifneq ($(XGCCPATH),)
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12680
-gerrit
commit 5a089f386b9991e9db76d16cd2019de4f6b13e04
Author: Martin Roth <martinroth(a)google.com>
Date: Mon Dec 7 14:27:34 2015 -0700
toolchain.inc: Update help text, Add TODO.
- Update the help text to be more informative.
- Add todo about IASL - we shouldn't require it if the build doesn't
use it.
Change-Id: Iffeb94f78c1ae7535a8a7b9b0b9f1728301a42b3
Signed-off-by: Martin Roth <martinroth(a)google.com>
---
toolchain.inc | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/toolchain.inc b/toolchain.inc
index 7a0864e..f2a6232 100644
--- a/toolchain.inc
+++ b/toolchain.inc
@@ -157,10 +157,11 @@ IASLFAIL:=0
ifneq ($(CONFIG_ANY_TOOLCHAIN),y)
$(foreach arch,$(sort $(foreach stage,$(COREBOOT_STANDARD_STAGES),$(ARCH-$(stage)-y))), \
$(if $(shell if [ -n "$(CC_$(arch))" ]; then $(CC_$(arch)) -v 2>&1 |grep -q "coreboot toolchain" || echo not-coreboot; else echo not-coreboot; fi), \
- $(eval COMPILERFAIL:=1)$(warning Please use the coreboot toolchain for '$(arch)')))
+ $(eval COMPILERFAIL:=1)$(warning The coreboot toolchain for '$(arch)' architecture was not found.)))
#if iasl doesn't match the current coreboot version, fail the test
+#TODO: Figure out if iasl is even needed for the build.
$(if $(shell if [ -n "$(IASL)" ]; then $(IASL) -v 2>&1 | grep -q "$(shell util/crossgcc/buildgcc -s iasl)" || echo not-coreboot; else echo not-coreboot; fi), \
- $(eval COMPILERFAIL:=1)$(eval IASLFAIL:=1)$(warning Please use the coreboot toolchain version of iasl - $(shell util/crossgcc/buildgcc -s iasl)))
+ $(eval COMPILERFAIL:=1)$(eval IASLFAIL:=1)$(warning The coreboot toolchain version of iasl '$(shell util/crossgcc/buildgcc -s iasl)' was not found))
endif
ifeq ($(COMPILERFAIL),1)
ifneq ($(XGCCPATH),)
@@ -168,11 +169,11 @@ $(warning )
$(warning Path to your toolchain is currently set to '$(XGCCPATH)')
endif
$(warning )
-$(warning To build the entire coreboot toolchain: make crossgcc)
+$(warning To build the entire coreboot toolchain: run 'make crossgcc')
ifeq ($(IASLFAIL),1)
-$(warning To build just IASL: make iasl)
+$(warning To build just IASL: run 'make iasl')
endif #($(IASLFAIL),1)
-$(warning For more toolchain build targets: make help_toolchain)
+$(warning For more toolchain build targets: run 'make help_toolchain')
$(warning )
ifneq ($(CONFIG_ANY_TOOLCHAIN),y)
$(warning To try to use any toolchain in your path, run 'make menuconfig', then select)
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12676
-gerrit
commit bdf9bbd33f61b960cfbfd0fe3662df67200fa7b9
Author: Martin Roth <martinroth(a)google.com>
Date: Mon Dec 7 14:07:10 2015 -0700
toolchain.inc: Test for toolchain when using llvm/clang
Change-Id: I45ed5e289f9bfae90d71938243f921588b256e39
Signed-off-by: Martin Roth <martinroth(a)google.com>
---
toolchain.inc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/toolchain.inc b/toolchain.inc
index bbd99ca..c03881c 100644
--- a/toolchain.inc
+++ b/toolchain.inc
@@ -148,21 +148,21 @@ $(call init_stages)
# Test for coreboot toolchain (except when explicitly not requested)
ifneq ($(NOCOMPILE),1)
-# only run if we're doing a build (not for tests, kconfig, ...), using gcc
+# only run if we're doing a build (not for tests, kconfig, ...)
# rationale: gcc versions by Linux distributions tend to be quite messed up
+# llvm/clang also needs patches supplied by the coreboot build
COMPILERFAIL:=0
IASLFAIL:=0
-ifeq ($(CONFIG_COMPILER_GCC),y)
+
ifneq ($(CONFIG_ANY_TOOLCHAIN),y)
$(foreach arch,$(sort $(foreach stage,$(COREBOOT_STANDARD_STAGES),$(ARCH-$(stage)-y))), \
- $(if $(shell if [ -n "$(CC_$(arch))" ]; then $(CC_$(arch)) -v 2>&1 |grep -q "gcc version .*coreboot toolchain" || echo not-coreboot; else echo not-coreboot; fi), \
+ $(if $(shell if [ -n "$(CC_$(arch))" ]; then $(CC_$(arch)) -v 2>&1 |grep -q "coreboot toolchain" || echo not-coreboot; else echo not-coreboot; fi), \
$(eval COMPILERFAIL:=1)$(warning Please use the coreboot toolchain for '$(arch)')))
#if iasl doesn't match the current coreboot version, fail the test
$(if $(shell if [ -n "$(IASL)" ]; then $(IASL) -v 2>&1 | grep -q "$(shell util/crossgcc/buildgcc -s iasl)" || echo not-coreboot; else echo not-coreboot; fi), \
$(eval COMPILERFAIL:=1)$(eval IASLFAIL:=1)$(warning Please use the coreboot toolchain version of iasl - $(shell util/crossgcc/buildgcc -s iasl)))
endif
endif
-endif
ifeq ($(COMPILERFAIL),1)
ifneq ($(XGCCPATH),)
$(warning )