[openwrt/openwrt] Remove ccache wrappers

LEDE Commits lede-commits at lists.infradead.org
Sun Mar 5 08:49:00 PST 2023


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/5a1eb3bb2c27ede3046bb2977008c74a04681db9

commit 5a1eb3bb2c27ede3046bb2977008c74a04681db9
Author: Paul Fertser <fercerpav at gmail.com>
AuthorDate: Fri Jan 20 18:25:13 2023 +0300

    Remove ccache wrappers
    
    These wrappers are not needed as CC doesn't need to be a single word.
    
    a53b084e497a9f1629a2caada833ebe14a6838b7 which introduced the wrappers
    doesn't explain why they were really needed and why only for the target
    and not for the host.
    
    Moreover, name of the wrappers breaks a ccache assumption: since
    v4.0-3-g6a92b4cd3a67 it has special handling for "chained" invocation
    such as "ccache ccache gcc" where it skips all the "ccache*" names in
    the middle and proceeds to run as if it was started as "ccache
    gcc"[1][2].
    
    This becomes important when a build system sees ccache in the PATH and
    automatically enables it by prepending to CC. An example of such a
    system would be autosetup as used by jimtcl. With the wrappers it breaks
    as the command line ends up being just "ccache -Os..." because
    "ccache_cc" gets skipped as it starts with "ccache".
    
    [1] https://github.com/ccache/ccache/blob/master/src/ccache.cpp#L2105
    [2] https://github.com/ccache/ccache/blob/master/src/Util.cpp#L802
    
    Reported-by: Karl Palsson <karlp at etactica.com>
    Signed-off-by: Paul Fertser <fercerpav at gmail.com>
---
 rules.mk                      |  4 ++--
 tools/ccache/Makefile         | 10 ----------
 tools/ccache/files/ccache_cc  |  2 --
 tools/ccache/files/ccache_cxx |  2 --
 4 files changed, 2 insertions(+), 16 deletions(-)

diff --git a/rules.mk b/rules.mk
index 3d151338af..a2f5bcca4b 100644
--- a/rules.mk
+++ b/rules.mk
@@ -283,8 +283,8 @@ export HOSTCC_NOCACHE
 export HOSTCXX_NOCACHE
 
 ifneq ($(CONFIG_CCACHE),)
-  TARGET_CC:= ccache_cc
-  TARGET_CXX:= ccache_cxx
+  TARGET_CC:= ccache $(TARGET_CC)
+  TARGET_CXX:= ccache $(TARGET_CXX)
   HOSTCC:= ccache $(HOSTCC)
   HOSTCXX:= ccache $(HOSTCXX)
   export CCACHE_BASEDIR:=$(TOPDIR)
diff --git a/tools/ccache/Makefile b/tools/ccache/Makefile
index 25ab4a46ea..6824dbddfd 100644
--- a/tools/ccache/Makefile
+++ b/tools/ccache/Makefile
@@ -28,14 +28,4 @@ ifneq (docs-$(CONFIG_BUILD_DOCUMENTATION),docs-y)
 CMAKE_HOST_OPTIONS += -DENABLE_DOCUMENTATION=OFF
 endif
 
-define Host/Install/ccache
-	$(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
-	$(CP) ./files/* $(STAGING_DIR_HOST)/bin/
-endef
-
-define Host/Install
-	$(call Host/Install/Default)
-	$(call Host/Install/ccache)
-endef
-
 $(eval $(call HostBuild))
diff --git a/tools/ccache/files/ccache_cc b/tools/ccache/files/ccache_cc
deleted file mode 100755
index 01c4ad42a2..0000000000
--- a/tools/ccache/files/ccache_cc
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-exec ccache "${TARGET_CC_NOCACHE}" "$@"
diff --git a/tools/ccache/files/ccache_cxx b/tools/ccache/files/ccache_cxx
deleted file mode 100755
index cc60eb3a13..0000000000
--- a/tools/ccache/files/ccache_cxx
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-exec ccache "${TARGET_CXX_NOCACHE}" "$@"




More information about the lede-commits mailing list