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