Unset CC for apps-install makes
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 2 Oct 2018 17:38:49 +0000 (13:38 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 2 Oct 2018 18:17:09 +0000 (14:17 -0400)
If the user overrides CC on the commandline, that was getting passed
through to the make apps-install commands.  Even though we compute CC in
our top-level Makefile, we were not passing it along, and the one from the
shell's environment makes it through.

Additionally, we can't export CC directly, which is what I tried at first.
That will break other things (binutils, actually).  The safest thing is to
not export it.

This came up as a problem with travis, which sets its own CC variable, and
ends up using the wrong compiler for the applications.  For instance, here
are some entries from bash's install log:

gcc -c -DHAVE_CONFIG_H -DSHELL   -I. ... etc
x86_64-ucb-akaros-ar cr libreadline.a readline.o ... etc

It knew to use our toolchain prefix in some cases, but it used the CC
override.  If you dig into ./configure, you can see where it makes this
decision (or check ./configure --help).

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
Makefile

index 5801394..424657b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -72,6 +72,7 @@ endef
 define make_as_parent
        $(clear_current_env)\
        $(export_parent_env)\
+       unset CC; \
        $(call export_user_variables)\
        $(MAKE) $(NO_PRINT_DIRECTORY) -j $(MAKE_JOBS) $(1)
 endef