ccache: Make ccache aware of OpenWRT provided GCC patch.

The OpenWRT GCC patch, 910-mbsd_multi.patch adds an extra option
to gcc that depends on an environment variable. Standard ccache
is unaware of this option and therefor can produce stdout from gcc
that doesn't correspond to what you would get if you actually
do a direct compilation with gcc.

This commit adds a patch to ccache to make it aware of the new
option and removes the feature from the ccache package to use the
host system's installed ccache binary.

Signed-off-by: Karl Vogel <karl.vogel@gmail.com>

SVN-Revision: 46364
This commit is contained in:
Felix Fietkau 2015-07-14 10:30:38 +00:00
parent cf93a8f227
commit 388647b580
2 changed files with 37 additions and 20 deletions

View File

@ -23,7 +23,6 @@ define Host/Install/ccache
$(CP) ./files/* $(STAGING_DIR_HOST)/bin/ $(CP) ./files/* $(STAGING_DIR_HOST)/bin/
endef endef
ifneq ($(strip $(shell which ccache >/dev/null && echo found)),found)
define Host/Clean define Host/Clean
-$(MAKE) -C $(HOST_BUILD_DIR) uninstall -$(MAKE) -C $(HOST_BUILD_DIR) uninstall
$(call Host/Clean/Default) $(call Host/Clean/Default)
@ -32,20 +31,5 @@ ifneq ($(strip $(shell which ccache >/dev/null && echo found)),found)
$(call Host/Install/Default) $(call Host/Install/Default)
$(call Host/Install/ccache) $(call Host/Install/ccache)
endef endef
else
define Host/Prepare
endef
define Host/Configure
endef
define Host/Compile
endef
define Host/Install
$(call Host/Install/ccache)
endef
define Host/Clean
endef
define Download
endef
endif
$(eval $(call HostBuild)) $(eval $(call HostBuild))

View File

@ -0,0 +1,33 @@
From 90762a9b8d9a50b6176f10bd6c2e2b9501117561 Mon Sep 17 00:00:00 2001
From: Karl Vogel <karl.vogel@gmail.com>
Date: Tue, 14 Jul 2015 11:05:33 +0200
Subject: [PATCH] Include environment variable GCC_HONOUR_COPTS in hash.
The OpenWRT patch, 910-mbsd_multi.patch, to GCC adds an extra
compilation flag, -fhonour-copts, which is influenced by an
environment variable called GCC_HONOUR_COPTS.
Include this environment var in the hash calculation as otherwise
the gcc stdout warning from a previous compilation might be shown
where, even when GCC_HONOUR_COPTS is in 's'ilent mode.
Signed-off-by: Karl Vogel <karl.vogel@gmail.com>
---
ccache.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/ccache.c b/ccache.c
index e41af13..b736a9c 100644
--- a/ccache.c
+++ b/ccache.c
@@ -965,6 +965,7 @@ calculate_object_hash(struct args *args, struct mdfour *hash, int direct_mode)
"CPLUS_INCLUDE_PATH",
"OBJC_INCLUDE_PATH",
"OBJCPLUS_INCLUDE_PATH", /* clang */
+ "GCC_HONOUR_COPTS",
NULL
};
for (p = envvars; *p != NULL ; ++p) {
--
1.9.1