New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #15772 (new defect)

Opened 5 years ago

Last modified 4 years ago

ccache support sets incompatible compiler

Reported by: landonf@… Owned by: macports-tickets@…
Priority: Normal Milestone: MacPorts Future
Component: base Version: 1.6.0
Keywords: Cc:
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

comment:1 Changed 5 years ago by raimue@…

  • Milestone set to MacPorts base bugs

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.

comment:2 Changed 5 years ago by toby@…

  • Milestone changed from MacPorts base bugs to MacPorts Future

Milestone MacPorts base bugs deleted

comment:3 Changed 4 years ago by jmr@…

  • Component changed from ports to base
Note: See TracTickets for help on using tickets.