Test for g++ when building the toolchain
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 17 Jul 2015 15:19:57 +0000 (11:19 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 24 Jul 2015 07:05:13 +0000 (03:05 -0400)
It's possible to have gcc but not g++, resulting in an error like this
while making binutils:

...
checking for x86_64-unknown-linux-gnu-gcc... gcc
configure: error: in
`/home/brho/akaros/ros-kernel/tools/compilers/gcc-glibc/x86_64-ucb-akaros-binutils-builddir/gold':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.
checking for C compiler default output file name... yes
checking whether declaration is required for errno... yes
make[4]: *** [configure-gold] Error 1
make[4]: *** Waiting for unfinished jobs....
...
(many other lines)
...

tools/compilers/gcc-glibc/Makefile

index e7e9985..dc2900b 100644 (file)
@@ -135,6 +135,15 @@ define BUILD_ERROR
 endef
 BUILD_ERRORS := $(call add_error, $(BUILD_ERROR))
 endif
+
+GPPEXISTS := $(shell which g++ > /dev/null 2>&1 ; echo $$?)
+ifneq ($(GPPEXISTS),0)
+define BUILD_ERROR
+    You need to have 'g++' installed on your system before proceeding!"
+endef
+BUILD_ERRORS := $(call add_error, $(BUILD_ERROR))
+endif
+
 ifeq ($(INSTDIR),)
 define BUILD_ERROR
     You need to setup $(INSTDIR_STRING), to point to where you
@@ -144,6 +153,7 @@ define BUILD_ERROR
 endef
 BUILD_ERRORS := $(call add_error, $(BUILD_ERROR))
 endif 
+
 ifeq ($(CONFIG),native)
 ifeq ($(shell which $(ARCH)-ucb-akaros-gcc 2>/dev/null),)
 define BUILD_ERROR
@@ -165,6 +175,7 @@ endef
 BUILD_ERRORS := $(call add_error, $(BUILD_ERROR))
 endif
 endif
+
 ifeq ($(ARCH),x86_64)
 ifeq ($(shell grep "CONFIG_X86_64=y" $(AKAROSDIR)/.config),)
 define BUILD_ERROR