Opened 16 years ago

Closed 8 years ago

Last modified 8 years ago

#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

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 16 years ago by tobypeterson

Milestone: MacPorts base bugsMacPorts Future

Milestone MacPorts base bugs deleted

comment:3 Changed 16 years ago by jmroot (Joshua Root)

Component: portsbase

comment:4 Changed 10 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:5 Changed 8 years ago by raimue (Rainer Müller)

Resolution: wontfix
Status: newclosed

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.