Update of /cvsroot/fink/experimental/fangism/finkinfo
In directory vz-cvs-3.sog:/tmp/cvs-serv20097

Added Files:
        cachecc1.info cachecc1.patch 
Log Message:
prize of one beer to whomever can make this work on darwin


--- NEW FILE: cachecc1.info ---
Package: cachecc1
Version: 0.3
Revision: 1
Description: GCC plug-in for caching bootstraps
Maintainer: David Fang <fang...@users.sourceforge.net>
Source: http://sourceforge.net/projects/%n/files/%n/%n-%v/%n-%v.tar.gz
# Source: mirror:sourceforge:projects/%n/files/%n/%n-%v/%n-%v.tar.gz
Source-MD5: ffe7a9391af62d4153673a4ee4dfde2f
License: GPL
BuildDependsOnly: true
PatchFile: %n.patch
PatchFile-MD5: 8bcc95cef1bae7af2d2234adbdb5d59a
CompileScript: <<
  #!/bin/sh -ev
  make
<<
InstallScript: <<
  #!/bin/sh -ev
  mkdir -p %i/lib
  cp bin/cachecc1.so %i/lib/
<<
DocFiles: COPYING README.*
DescDetail: <<
It works as follows:
gcc compilation is divided into 3 steps:
        1) cpp : the sources files a preprocessed into one C/C++ file (send
                though a pipe, or written into a temporary file)
        2) cc1/cc1plus : the preprocessed file is concerted into an assembly
                language file
        3) as : the assembly language file is converted into an object file

cachecc1 assumes that if
        1) the input of cc1/cc1plus is the same
        2) cc1/cc1plus is the same
        3) the cc1/cc1plus invocation parameters are the same
then the output is the same.

cachecc1.so does the following :
        1) overload exec* calls of the libc library in order to :
        2) disable the '-pipe' parameter sometimes given to gcc (cachecc1
            breaks the parallelism that allows '-pipe', and reading results
            from cpp and cc1/cc1plus in files is a lot faster that reading
            pipes, so '-pipe' does not make sense in this context)
        3) wrap calls to cc1/cc1plus/as
<<
DescUsage: <<
To use it, you need to define 2 variables:
        1) CACHECC1_DIR : the pathname of the cache
        2) LD_PRELOAD : to tell the dynamic loader to load cachecc1.so
<<
DescPackaging: <<
The cachecc1.so plug-in is installed in %p/lib/.
<<
DescPort: <<
This was never ported to darwin before, and could use some help, 
especially regarding .global assembly directives.
<<

--- NEW FILE: cachecc1.patch ---
diff -u -r cachecc1-0.3/followcc1.c cachecc1-0.3-patched/followcc1.c
--- cachecc1-0.3/followcc1.c    2004-03-28 12:49:20.000000000 -0800
+++ cachecc1-0.3-patched/followcc1.c    2011-07-08 17:37:43.000000000 -0700
@@ -37,6 +37,7 @@
 #include <fcntl.h>
 #include <string.h>
 #include <poll.h>
+#undef _POSIX_C_SOURCE
 #include <dlfcn.h>
 
 #include "cachecc1.h"
@@ -54,6 +55,9 @@
 int real_execve(const char *name, char *const argv[], char *const envp[])
 {
     static int (*real_fun)() = 0;
+#ifdef __APPLE__
+    char *execve_name = "execve";
+#endif
 #ifdef __linux
     char *execve_name = "execve";
 #endif
@@ -124,7 +128,7 @@
             char *fname;
             strcpy(ifgcc3, "CACHECC1_ifgcc3=");
             fname = &ifgcc3[strlen(ifgcc3)];
-            sprintf(fname, "%s/gcc3_%lx_%lx_%lx_%lx",
+            sprintf(fname, "%s/gcc3_%lx_%llx_%x_%lx",
                     env_dir,
                     st.st_mtime, st.st_size, st.st_ino, (long)st.st_dev);
             if (!access(fname, F_OK)) {


------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Fink-commits mailing list
Fink-commits@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.cvs

Reply via email to