From: Cunningham, D. <dav...@im...> - 2009-09-28 23:28:24
|
GC_INIT is called on line 72 of bootstrap.h in the template_main function, but maybe this wasn't early enough. ________________________________________ From: x10...@li... [x10...@li...] On Behalf Of ta...@us... [ta...@us...] Sent: 28 September 2009 15:56 To: x10...@li... Subject: [X10-commits] SF.net SVN: x10:[11311] trunk Revision: 11311 http://x10.svn.sourceforge.net/x10/?rev=11311&view=rev Author: tardieu Date: 2009-09-28 19:56:23 +0000 (Mon, 28 Sep 2009) Log Message: ----------- added support for GC on MacOSX added -enable-thread-local-alloc to GC configuration added GC_INIT() call in alloc.h Modified Paths: -------------- trunk/x10.compiler/src/x10cpp/postcompiler/CXXCommandBuilder.java trunk/x10.runtime/build.xml trunk/x10.runtime/src-cpp/x10aux/alloc.h trunk/x10.runtime/src-cpp/x10aux/bootstrap.h Added Paths: ----------- trunk/x10.compiler/src/x10cpp/postcompiler/MacOSX_CXXCommandBuilder.java Modified: trunk/x10.compiler/src/x10cpp/postcompiler/CXXCommandBuilder.java =================================================================== --- trunk/x10.compiler/src/x10cpp/postcompiler/CXXCommandBuilder.java 2009-09-28 13:19:46 UTC (rev 11310) +++ trunk/x10.compiler/src/x10cpp/postcompiler/CXXCommandBuilder.java 2009-09-28 19:56:23 UTC (rev 11311) @@ -232,6 +232,8 @@ return new AIX_CXXCommandBuilder(options); if (PLATFORM.startsWith("sunos_")) return new SunOS_CXXCommandBuilder(options); + if (PLATFORM.startsWith("macosx_")) + return new MacOSX_CXXCommandBuilder(options); eq.enqueue(ErrorInfo.WARNING, "Unknown platform '"+PLATFORM+"'; using the default post-compiler (g++)"); return new CXXCommandBuilder(options); Added: trunk/x10.compiler/src/x10cpp/postcompiler/MacOSX_CXXCommandBuilder.java =================================================================== --- trunk/x10.compiler/src/x10cpp/postcompiler/MacOSX_CXXCommandBuilder.java (rev 0) +++ trunk/x10.compiler/src/x10cpp/postcompiler/MacOSX_CXXCommandBuilder.java 2009-09-28 19:56:23 UTC (rev 11311) @@ -0,0 +1,26 @@ +/** + * + */ +package x10cpp.postcompiler; + +import java.util.ArrayList; + +import polyglot.main.Options; + +public class MacOSX_CXXCommandBuilder extends CXXCommandBuilder { + + public MacOSX_CXXCommandBuilder(Options options) { + super(options); + assert (CXXCommandBuilder.PLATFORM.startsWith("macosx_")); + } + + protected boolean gcEnabled() { return true; } + + protected void addPreArgs(ArrayList<String> cxxCmd) { + super.addPreArgs(cxxCmd); + } + + protected void addPostArgs(ArrayList<String> cxxCmd) { + super.addPostArgs(cxxCmd); + } +} Modified: trunk/x10.runtime/build.xml =================================================================== --- trunk/x10.runtime/build.xml 2009-09-28 13:19:46 UTC (rev 11310) +++ trunk/x10.runtime/build.xml 2009-09-28 19:56:23 UTC (rev 11311) @@ -66,6 +66,7 @@ <isfalse value="${DISABLE_GC}" /> <or> <os family="unix" name="linux"/> + <os family="mac"/> </or> </and> </condition> @@ -227,6 +228,8 @@ <exec executable="${bash.exe}" dir="${bdwgc.dir}/src" failonerror="true"> <arg value="${bdwgc.dir}/src/configure" /> <arg value="-enable-threads=posix" /> + <arg value="-enable-thread-local-alloc" /> + <arg value="CFLAGS=-D_XOPEN_SOURCE" /> <arg value="--prefix=${bdwgc.platform.dir}/install" /> </exec> <exec executable="${make.exe}" dir="${bdwgc.dir}/src" failonerror="true"> Modified: trunk/x10.runtime/src-cpp/x10aux/alloc.h =================================================================== --- trunk/x10.runtime/src-cpp/x10aux/alloc.h 2009-09-28 13:19:46 UTC (rev 11310) +++ trunk/x10.runtime/src-cpp/x10aux/alloc.h 2009-09-28 19:56:23 UTC (rev 11311) @@ -4,9 +4,7 @@ #include <x10aux/config.h> #ifdef X10_USE_BDWGC -#ifdef __linux__ -#define GC_LINUX_THREADS -#endif +#define GC_THREADS #include "gc.h" #endif @@ -41,9 +39,15 @@ void throwOOME() X10_PRAGMA_NORETURN; + static bool gc_init_done = false; + template<class T> T* alloc(size_t size = sizeof(T)) { _M_("Allocating " << size << " bytes of type " << TYPENAME(T)); #ifdef X10_USE_BDWGC + if (!gc_init_done) { + gc_init_done = true; + GC_INIT(); + } T* ret = (T*)GC_MALLOC(size); #else T* ret = (T*)malloc(size); Modified: trunk/x10.runtime/src-cpp/x10aux/bootstrap.h =================================================================== --- trunk/x10.runtime/src-cpp/x10aux/bootstrap.h 2009-09-28 13:19:46 UTC (rev 11310) +++ trunk/x10.runtime/src-cpp/x10aux/bootstrap.h 2009-09-28 19:56:23 UTC (rev 11311) @@ -1,13 +1,6 @@ #ifndef X10AUX_BOOTSTRAP_H #define X10AUX_BOOTSTRAP_H -#ifdef X10_USE_BDWGC -#ifdef __linux__ -#define GC_LINUX_THREADS -#endif -#include "gc.h" -#endif - #include <x10aux/config.h> #include <x10aux/alloc.h> #include <x10aux/place_local.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf _______________________________________________ X10-commits mailing list X10...@li... https://lists.sourceforge.net/lists/listinfo/x10-commits |