浏览代码

Fix for Android build.

woollybah 10 年之前
父节点
当前提交
ad8395a0ca
共有 3 个文件被更改,包括 18 次插入2 次删除
  1. 4 0
      appstub.mod/appstub.linux.c
  2. 4 0
      blitz.mod/blitz.bmx
  3. 10 2
      blitz.mod/blitz_string.c

+ 4 - 0
appstub.mod/appstub.linux.c

@@ -5,7 +5,11 @@
 
 void __bb_brl_appstub_appstub();
 
+#ifndef __ANDROID__
 int main( int argc,char *argv[] ){
+#else
+int SDL_main( int argc,char *argv[] ){
+#endif
 
 	signal( SIGPIPE,SIG_IGN );
 	

+ 4 - 0
blitz.mod/blitz.bmx

@@ -46,7 +46,11 @@ ModuleInfo "History: Lotsa little tidyups"
 ModuleInfo "History: 1.04 Release"
 ModuleInfo "History: Fixed C Compiler warnings"
 
+?Not android
 ModuleInfo "CC_OPTS: -DGC_THREADS -DPARALLEL_MARK -DATOMIC_UNCOLLECTABLE"
+?android
+ModuleInfo "CC_OPTS: -DGC_THREADS -DATOMIC_UNCOLLECTABLE"
+?
 
 Import "blitz_app.c"
 Import "blitz_types.c"

+ 10 - 2
blitz.mod/blitz_string.c

@@ -619,7 +619,7 @@ BBString *bbStringJoin( BBString *sep,BBArray *bits ){
 	
 	return str;
 }
-
+#ifndef __ANDROID__
 static void mktmp( void *p ){
 	static AO_t i;
 	static void *bufs[32];
@@ -627,7 +627,15 @@ static void mktmp( void *p ){
 	bbMemFree( bufs[n] );
 	bufs[n]=p;
 }
-
+#else
+static void mktmp( void *p ){
+	static int i;
+	static void *bufs[32];
+	int n= __sync_fetch_and_add( &i, 1 ) & 31;
+	bbMemFree( bufs[n] );
+	bufs[n]=p;
+}
+#endif
 char *bbTmpCString( BBString *str ){
 	char *p=bbStringToCString( str );
 	mktmp( p );