#15772 closed defect (wontfix)
ccache support sets incompatible compiler
Reported by: | landonf (Landon Fuller) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | base | Version: | 1.6.0 |
Keywords: | Cc: | cooljeanius (Eric Gallager) | |
Port: |
Description
Prior to the introduction of ccache-specific functionality, ccache could be enabled by setting the binpath in macports.conf. This would result in standard compiler names being found in /opt/local/libexec/ccache.
With the introduction of ccache-specific functionality -- in of itself a layering violation -- the compiler is now munged at configure-time:
CC=ccache /usr/bin/gcc-4.0
This "two word" CC command breaks some otherwise valid Makefile that expect CC to be a single command. An example:
ifndef $(CXX) CXX = c++ endif
Results in:
Makefile:8: *** invalid syntax in conditional. Stop.
Change History (6)
comment:1 Changed 16 years ago by raimue (Rainer Müller)
Milestone: | → MacPorts base bugs |
---|
comment:2 Changed 16 years ago by tobypeterson
Milestone: | MacPorts base bugs → MacPorts Future |
---|
Milestone MacPorts base bugs deleted
comment:3 Changed 16 years ago by jmroot (Joshua Root)
Component: | ports → base |
---|
comment:5 Changed 8 years ago by raimue (Rainer Müller)
Resolution: | → wontfix |
---|---|
Status: | new → closed |
If we wanted to use wrapper scripts for compilers to avoid such problems, this should be a general decision and is not specific to ccache.
comment:6 Changed 8 years ago by jmroot (Joshua Root)
Milestone: | MacPorts Future |
---|
Note: See
TracTickets for help on using
tickets.
As MacPorts explicitly sets CC and CXX to the full path to the compiler in the build environment, extending binpath is not a possible solution for using ccache. Also, it will not work with the different compilers we allow to select by
configure.compiler
.If a port does only accept real paths for CC or CXX or does not understand more than one word, add
configure.ccache no
to the port, which will disable ccache for it.