[MacPorts] #18409: zip-3.00: fails to build with ccache (Portfile patch included)

MacPorts noreply at macports.org
Sat Feb 7 13:10:11 PST 2009


#18409: zip-3.00: fails to build with ccache (Portfile patch included)
------------------------------------+---------------------------------------
 Reporter:  aetherknight@…          |       Owner:  macports-tickets@…                   
     Type:  defect                  |      Status:  new                                  
 Priority:  Normal                  |   Milestone:  Port Bugs                            
Component:  ports                   |     Version:  1.7.0                                
 Keywords:  zip                     |        Port:  zip                                  
------------------------------------+---------------------------------------

Comment(by aetherknight@…):

 I'm running Mac OS X 10.4.11, with Xcode 2.5.
 I have ccache support enabled in MacPorts, which is what caused the
 problem.

 {{{sudo port -dv upgrade zip }}} output:
 {{{
 DEBUG: Found port in
 file:///opt/local/var/macports/sources/rsync.macports.org/release/ports/archivers/zip
 DEBUG: epoch: in tree: 0 installed: 0
 DEBUG: zip 3.00_0 exists in the ports tree
 DEBUG: zip 2.32_0 is installed
 DEBUG: variants to install
 DEBUG: available variants are : universal
 DEBUG: new portvariants: without_ofx + without_quotes + cscope +
 without_hbci + ipv6 + pcre +
 DEBUG: Changing to port directory:
 /opt/local/var/macports/sources/rsync.macports.org/release/ports/archivers/zip
 DEBUG: setting option os.universal_supported to yes
 DEBUG: org.macports.load registered provides 'load', a pre-existing
 procedure. Target override will not be provided
 DEBUG: org.macports.distfiles registered provides 'distfiles', a pre-
 existing procedure. Target override will not be provided
 DEBUG: universal variant already exists, so not adding the default one
 DEBUG: Requested variant without_quotes is not provided by port zip.
 DEBUG: Requested variant without_ofx is not provided by port zip.
 DEBUG: Requested variant darwin is not provided by port zip.
 DEBUG: Requested variant ipv6 is not provided by port zip.
 DEBUG: Requested variant without_hbci is not provided by port zip.
 DEBUG: Requested variant cscope is not provided by port zip.
 DEBUG: Requested variant i386 is not provided by port zip.
 DEBUG: Requested variant pcre is not provided by port zip.
 DEBUG: Requested variant macosx is not provided by port zip.
 DEBUG: Executing org.macports.main (zip)
 --->  Fetching zip
 DEBUG: Executing org.macports.fetch (zip)
 --->  Verifying checksum(s) for zip
 DEBUG: Executing org.macports.checksum (zip)
 --->  Checksumming zip30.tgz
 DEBUG: Correct (md5) checksum for zip30.tgz
 DEBUG: Correct (sha1) checksum for zip30.tgz
 DEBUG: Correct (rmd160) checksum for zip30.tgz
 --->  Extracting zip
 DEBUG: Executing org.macports.extract (zip)
 --->  Extracting zip30.tgz
 DEBUG: setting option extract.args to
 /opt/local/var/macports/distfiles/zip/zip30.tgz
 DEBUG: Environment: MACOSX_DEPLOYMENT_TARGET='10.4'
 DEBUG: Assembled command: 'cd
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_archivers_zip/work"
 && gzip -dc /opt/local/var/macports/distfiles/zip/zip30.tgz |
 /usr/bin/gnutar --no-same-owner -xf -'
 DEBUG: Executing org.macports.patch (zip)
 --->  Configuring zip
 DEBUG: Using compiler 'Mac OS X gcc 4.0'
 DEBUG: Executing org.macports.configure (zip)
 DEBUG: Environment: CFLAGS='-pipe -O2' CPPFLAGS='-I/opt/local/include'
 CXXFLAGS='-pipe -O2' MACOSX_DEPLOYMENT_TARGET='10.4' CPP='ccache
 /usr/bin/cpp-4.0' CXX='ccache /usr/bin/g++-4.0' F90FLAGS='-pipe -O2'
 LDFLAGS='-L/opt/local/lib' FCFLAGS='-pipe -O2' OBJC='ccache
 /usr/bin/gcc-4.0' INSTALL='/usr/bin/install -c' OBJCFLAGS='-pipe -O2'
 FFLAGS='-pipe -O2' CC='ccache /usr/bin/gcc-4.0'
 DEBUG: Assembled command: 'cd
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_archivers_zip/work/zip30"
 && make CC=${CC} flags -f unix/Makefile'
 make: Nothing to be done for `/usr/bin/gcc-4.0'.
 sh unix/configure "ccache" "-I. -DUNIX " ""
 Check C compiler type (optimization options)
   Other-unknown C (-O)
 Check bzip2 support
   Check for bzip2 in bzip2 directory
   Check if OS already has bzip2 library installed
 -- Either bzlib.h or libbz2.a not found - no bzip2
 Check for the C preprocessor
 Check if we can use asm code
 Check for ANSI options
 Check for prototypes
 Check the handling of const
 Check for time_t
 Check for size_t
 Check for off_t
 Check size of UIDs and GIDs
 (Now zip stores variable size UIDs/GIDs using a new extra field.  This
  tests if this OS uses 16-bit UIDs/GIDs and so if the old 16-bit storage
  should also be used for backward compatibility.)
 -- UID/GID test failed on compile - disabling old 16-bit UID/GID support
 Check for Large File Support
 -- no Large File Support
 Check for wide char support
 -- no Unicode support
 Check for gcc no-builtin flag
 Check for rmdir
 Check for strchr
 Check for strrchr
 Check for rename
 Check for mktemp
 Check for mktime
 Check for mkstemp
 Check for memset
 Check for memmove
 Check for strerror
 Check for errno declaration
 Check for directory libraries
 Check for readlink
 Check for directory include file
 Check for nonexistent include files
 Check for term I/O include file
 Check for valloc
 Check for /usr/local/bin and /usr/local/man
 Check for OS-specific flags
 Check for symbolic links
 --->  Building zip
 DEBUG: Executing org.macports.build (zip)
 DEBUG: Environment: MACOSX_DEPLOYMENT_TARGET='10.4'
 DEBUG: Assembled command: 'cd
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_archivers_zip/work/zip30"
 && nice -n 10 make generic -f unix/Makefile'
 eval make -f unix/Makefile zips `cat flags`
 ccache -c -I. -DUNIX -O -DNO_PROTO -DNO_CONST -DNO_TIME_T -DNO_SIZE_T
 -DNO_OFF_T -DUIDGID_NOT_16BIT -DNO_RMDIR -DNO_STRCHR -DNO_STRRCHR
 -DNO_RENAME -DNO_MKTEMP -DNO_MKTIME -DNO_MKSTEMP -DZMEM -DNEED_MEMMOVE
 -DNEED_STRERROR -DNO_ERRNO -DNO_DIR -DHAVE_DIRENT_H -DHAVE_TERMIOS_H
 -DNO_VALLOC zip.c
 ccache: illegal option -- I
 Cleaned cache
 ccache, a compiler cache. Version 2.4
 Copyright Andrew Tridgell, 2002

 Usage:
         ccache [options]
         ccache compiler [compile options]
         compiler [compile options]    (via symbolic link)

 Options:
 -s                      show statistics summary
 -z                      zero statistics
 -c                      run a cache cleanup
 -C                      clear the cache completely
 -F <maxfiles>           set maximum files in cache
 -M <maxsize>            set maximum size of cache (use G, M or K)
 -h                      this help page
 -V                      print version number
 make[1]: *** [zip.o] Error 1
 make: *** [generic] Error 2
 Error: Target org.macports.build returned: shell command " cd
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_archivers_zip/work/zip30"
 && nice -n 10 make generic -f unix/Makefile " returned error 2
 Command output: eval make -f unix/Makefile zips `cat flags`
 ccache -c -I. -DUNIX -O -DNO_PROTO -DNO_CONST -DNO_TIME_T -DNO_SIZE_T
 -DNO_OFF_T -DUIDGID_NOT_16BIT -DNO_RMDIR -DNO_STRCHR -DNO_STRRCHR
 -DNO_RENAME -DNO_MKTEMP -DNO_MKTIME -DNO_MKSTEMP -DZMEM -DNEED_MEMMOVE
 -DNEED_STRERROR -DNO_ERRNO -DNO_DIR -DHAVE_DIRENT_H -DHAVE_TERMIOS_H
 -DNO_VALLOC zip.c
 ccache: illegal option -- I
 Cleaned cache
 ccache, a compiler cache. Version 2.4
 Copyright Andrew Tridgell, 2002

 Usage:
         ccache [options]
         ccache compiler [compile options]
         compiler [compile options]    (via symbolic link)

 Options:
 -s                      show statistics summary
 -z                      zero statistics
 -c                      run a cache cleanup
 -C                      clear the cache completely
 -F <maxfiles>           set maximum files in cache
 -M <maxsize>            set maximum size of cache (use G, M or K)
 -h                      this help page
 -V                      print version number
 make[1]: *** [zip.o] Error 1
 make: *** [generic] Error 2

 Warning: the following items did not execute (for zip):
 org.macports.destroot org.macports.build
 DEBUG: invalid command name "::ui_init"
     while executing
 "::ui_init $priority $prefix $channels $message"
     ("uplevel" body line 2)
     invoked from within
 "uplevel 1 $body"
 Error: Unable to upgrade port: 1
 }}}

 In the Portfile, the
 {{{
 configure.pre_args      CC=\${CC} flags \
                                                 ${args}
 }}}
 lines modify the shell command run during the configure phase to be:
 {{{
 DEBUG: Assembled command: ... make CC=${CC} flags -f unix/Makefile
 }}}
 which does not properly preserve the original CC variable:
 {{{
 make: Nothing to be done for `/usr/bin/gcc-4.0'.
 sh unix/configure "ccache" "-I. -DUNIX " ""
 Check C compiler type (optimization options)
   Other-unknown C (-O)
 ...
 }}}

 My patch fixes this by putting quotes around the $CC variable in order to
 preserve the space between ccache and the actual compiler.

-- 
Ticket URL: <http://trac.macports.org/ticket/18409#comment:2>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list