From: Arno P. <ar...@pu...> - 2011-01-12 22:49:32
|
you need to remove all files that are mentioned in xmlvm/lib/boehmgc.jar, not just the ones that start with gc_*. Regarding the number of classes: that is a problem pretty much of any J2SE implementation: your class inherits from java.lang.Object, that references java.lang.System and java.lang.Class and if you continue the transitive closure, you end up about 750 J2SE classes that need to be pulled in even for a Hello World program. This is overhead you have to accept. In return you don't need a JVM to run the application, so I believe this is acceptable. Arno On 1/12/11 2:42 PM, Leo Izen wrote: > I removed everything that was gc_*.h, gc_*.c, and gc.h and gc.c. Then I > edited the CFLAGS in the makefile to include -DXMLVM_NO_GC but it > apparently didn't get the message: > > [Leo@chessman dist]$ make > mkdir -p build/ > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_io_DataInputStream.c -o build/obj/java_io_DataInputStream.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_util_AbstractMap_1.c -o build/obj/java_util_AbstractMap_1.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_util_regex_Pattern_Dollar.c -o > build/obj/java_util_regex_Pattern_Dollar.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_util_MissingFormatWidthException.c -o > build/obj/java_util_MissingFormatWidthException.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c ../src/java_util_ArrayList_1.c > -o build/obj/java_util_ArrayList_1.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c ../src/java_lang_String.c -o > build/obj/java_lang_String.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c ../src/java_util_SortedMap.c > -o build/obj/java_util_SortedMap.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_util_WeakHashMap_ValueIterator.c -o > build/obj/java_util_WeakHashMap_ValueIterator.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_util_StringTokenizer.c -o build/obj/java_util_StringTokenizer.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_lang_ProcessBuilder.c -o build/obj/java_lang_ProcessBuilder.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c ../src/java_io_ObjectOutput.c > -o build/obj/java_io_ObjectOutput.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_lang_SecurityException.c -o > build/obj/java_lang_SecurityException.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c ../src/java_lang_ThreadLocal.c > -o build/obj/java_lang_ThreadLocal.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c ../src/java_util_Map_Entry.c > -o build/obj/java_util_Map_Entry.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c ../src/java_util_HashSet.c -o > build/obj/java_util_HashSet.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_util_concurrent_ConcurrentHashMap_WriteThroughEntry.c -o > build/obj/java_util_concurrent_ConcurrentHashMap_WriteThroughEntry.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_util_logging_LogManager_5.c -o > build/obj/java_util_logging_LogManager_5.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_util_regex_Pattern_8.c -o build/obj/java_util_regex_Pattern_8.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_lang_Short_ShortCache.c -o > build/obj/java_lang_Short_ShortCache.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_lang_ProcessEnvironment_StringEnvironment.c -o > build/obj/java_lang_ProcessEnvironment_StringEnvironment.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c ../src/java_util_regex_ASCII.c > -o build/obj/java_util_regex_ASCII.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/native_java_lang_Object.c -o build/obj/native_java_lang_Object.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_lang_CharSequence.c -o build/obj/java_lang_CharSequence.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_util_zip_ZipOutputStream.c -o > build/obj/java_util_zip_ZipOutputStream.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c > ../src/java_util_spi_LocaleNameProvider.c -o > build/obj/java_util_spi_LocaleNameProvider.o > mkdir -p build/obj/ > gcc -w -std=c99 -I../src -DXMLVM_NO_GC -c ../src/mark_rts.c -o > build/obj/mark_rts.o > ../src/mark_rts.c:15:21: fatal error: gc_priv.h: No such file or directory > compilation terminated. > make: *** [build/obj/mark_rts.o] Error 1 > [Leo@chessman dist]$ > > I also noticed that It seems to be including a lot of unneccesary files > in my build. i.e. I'm pretty sure that I'm not using > java.util.Collections.SynchronizedSortedSet, but maybe I just don't know. > > > On Wed, Jan 12, 2011 at 5:26 PM, Arno Puder <ar...@pu... > <mailto:ar...@pu...>> wrote: > > > well, here is the deal: The Boehm Garbage Collector we have bundled with > XMLVM is adapted to MacOS/iOS (although the Boehm GC can run on other > platforms). You have two options: > > 1. Use a Mac platform to compile. > 2. Remove all source files from the Boehm GC in the generated project > and compile with -DXMLVM_NO_GC > > Ultimately we should bundle the Boehm GC within XMLVM in such a way that > it can also be used on different platforms. We'll look into that. > > Arno > > > On 1/12/11 1:47 PM, Leo Izen wrote: > > I can't even compile a hello world with posix target. Take a look > at this: > > > > [Leo@chessman ~]$ cat Hello.java > > public class Hello { > > public static void main(String[] args){ > > System.out.println("Hello World!"); > > } > > } > > > > [Leo@chessman ~]$ javac Hello.java > > [Leo@chessman ~]$ java Hello > > Hello World! > > [Leo@chessman ~]$ xmlvm --in=Hello.class --target=posix > --out=Hello-out > > [01/12/11 16:43:20.322] WARNING: Using Hello-out as application name > > [Leo@chessman ~]$ cd Hello-out > > [Leo@chessman Hello-out]$ cd dist/ > > [Leo@chessman dist]$ ls > > Makefile > > [Leo@chessman dist]$ make > > mkdir -p build/ > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_io_DataInputStream.c -o > > build/obj/java_io_DataInputStream.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_AbstractMap_1.c -o > > build/obj/java_util_AbstractMap_1.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_util_regex_Pattern_Dollar.c -o > > build/obj/java_util_regex_Pattern_Dollar.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/java_util_MissingFormatWidthException.c -o > > build/obj/java_util_MissingFormatWidthException.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_ArrayList_1.c -o > > build/obj/java_util_ArrayList_1.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_lang_String.c -o > > build/obj/java_lang_String.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_SortedMap.c -o > > build/obj/java_util_SortedMap.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_util_WeakHashMap_ValueIterator.c > > -o build/obj/java_util_WeakHashMap_ValueIterator.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_StringTokenizer.c -o > > build/obj/java_util_StringTokenizer.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_lang_ProcessBuilder.c -o > > build/obj/java_lang_ProcessBuilder.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_io_ObjectOutput.c -o > > build/obj/java_io_ObjectOutput.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_lang_SecurityException.c -o > > build/obj/java_lang_SecurityException.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_lang_ThreadLocal.c -o > > build/obj/java_lang_ThreadLocal.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_Map_Entry.c -o > > build/obj/java_util_Map_Entry.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_HashSet.c -o > > build/obj/java_util_HashSet.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/java_util_concurrent_ConcurrentHashMap_WriteThroughEntry.c -o > > build/obj/java_util_concurrent_ConcurrentHashMap_WriteThroughEntry.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_util_logging_LogManager_5.c -o > > build/obj/java_util_logging_LogManager_5.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_regex_Pattern_8.c -o > > build/obj/java_util_regex_Pattern_8.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_lang_Short_ShortCache.c -o > > build/obj/java_lang_Short_ShortCache.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/java_lang_ProcessEnvironment_StringEnvironment.c -o > > build/obj/java_lang_ProcessEnvironment_StringEnvironment.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_regex_ASCII.c -o > > build/obj/java_util_regex_ASCII.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/native_java_lang_Object.c -o > > build/obj/native_java_lang_Object.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_lang_CharSequence.c -o > > build/obj/java_lang_CharSequence.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > > ../src/java_util_Collections_UnmodifiableMap_UnmodifiableEntrySet_UnmodifiableEntry.c > > -o > > > build/obj/java_util_Collections_UnmodifiableMap_UnmodifiableEntrySet_UnmodifiableEntry.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_zip_ZipOutputStream.c -o > > build/obj/java_util_zip_ZipOutputStream.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_util_spi_LocaleNameProvider.c -o > > build/obj/java_util_spi_LocaleNameProvider.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/mark_rts.c -o build/obj/mark_rts.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/java_util_Collections_UnmodifiableCollection_1.c -o > > build/obj/java_util_Collections_UnmodifiableCollection_1.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_util_logging_LogManager_2.c -o > > build/obj/java_util_logging_LogManager_2.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/native_java_io_FileInputStream.c -o > > build/obj/native_java_io_FileInputStream.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/java_util_UnknownFormatFlagsException.c -o > > build/obj/java_util_UnknownFormatFlagsException.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/native_java_io_ObjectOutputStream.c > > -o build/obj/native_java_io_ObjectOutputStream.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_regex_Pattern.c -o > > build/obj/java_util_regex_Pattern.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/native_java_lang_reflect_Constructor.c -o > > build/obj/native_java_lang_reflect_Constructor.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_net_FileNameMap.c -o > > build/obj/java_net_FileNameMap.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_lang_Terminator.c -o > > build/obj/java_lang_Terminator.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/pthread_stop_world.c -o > > build/obj/pthread_stop_world.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_Set.c -o > > build/obj/java_util_Set.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_util_regex_Pattern_GroupHead.c > > -o build/obj/java_util_regex_Pattern_GroupHead.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_io_InvalidClassException.c -o > > build/obj/java_io_InvalidClassException.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_HashMap_KeyIterator.c -o > > build/obj/java_util_HashMap_KeyIterator.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/native_java_lang_ClassLoader_NativeLibrary.c -o > > build/obj/native_java_lang_ClassLoader_NativeLibrary.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/blacklst.c -o build/obj/blacklst.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_util_AbstractList_ListItr.c -o > > build/obj/java_util_AbstractList_ListItr.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_net_NetworkInterface_1subIFs.c > > -o build/obj/java_net_NetworkInterface_1subIFs.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_net_Inet6Address.c -o > > build/obj/java_net_Inet6Address.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/new_hblk.c -o build/obj/new_hblk.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/java_lang_annotation_AnnotationFormatError.c -o > > build/obj/java_lang_annotation_AnnotationFormatError.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_io_FilePermissionCollection.c -o > > build/obj/java_io_FilePermissionCollection.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_XMLUtils.c -o > > build/obj/java_util_XMLUtils.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/xmlvm-class-list.c -o > > build/obj/xmlvm-class-list.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_util_ResourceBundle_Control_1.c > > -o build/obj/java_util_ResourceBundle_Control_1.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_util_AbstractMap_SimpleEntry.c > > -o build/obj/java_util_AbstractMap_SimpleEntry.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/os_dep.c -o build/obj/os_dep.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/java_util_concurrent_locks_ReentrantLock_Sync.c -o > > build/obj/java_util_concurrent_locks_ReentrantLock_Sync.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/java_io_ObjectInputStream_Caches.c -o > > build/obj/java_io_ObjectInputStream_Caches.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_io_FileDescriptor_1.c -o > > build/obj/java_io_FileDescriptor_1.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > ../src/native_java_lang_ProcessEnvironment.c > > -o build/obj/native_java_lang_ProcessEnvironment.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_lang_SecurityManager_2.c -o > > build/obj/java_lang_SecurityManager_2.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_Properties.c -o > > build/obj/java_util_Properties.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/java_util_Collections_CheckedCollection.c -o > > build/obj/java_util_Collections_CheckedCollection.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_Random.c -o > > build/obj/java_util_Random.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_logging_Logger.c -o > > build/obj/java_util_logging_Logger.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c > > ../src/java_util_Collections_UnmodifiableList_1.c -o > > build/obj/java_util_Collections_UnmodifiableList_1.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/java_util_regex_Pattern_Loop.c -o > > build/obj/java_util_regex_Pattern_Loop.o > > mkdir -p build/obj/ > > gcc -w -std=c99 -I../src -c ../src/finalize.c -o build/obj/finalize.o > > In file included from ../src/gc_pmark.h:45:0, > > from ../src/finalize.c:17: > > ../src/gc_priv.h:2196:12: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or > > ‘__attribute__’ before ‘GC_jmp_buf’ > > make: *** [build/obj/finalize.o] Error 1 > > [Leo@chessman dist]$ > > > > Is there a way to fix this? Thanx > > > > > > > > > ------------------------------------------------------------------------------ > > Protect Your Site and Customers from Malware Attacks > > Learn about various malware tactics and how to avoid them. Understand > > malware threats, the impact they can have on your business, and > how you > > can protect your company and customers by using code signing. > > http://p.sf.net/sfu/oracle-sfdevnl > > > > > > > > _______________________________________________ > > xmlvm-users mailing list > > xml...@li... > <mailto:xml...@li...> > > https://lists.sourceforge.net/lists/listinfo/xmlvm-users > > ------------------------------------------------------------------------------ > Protect Your Site and Customers from Malware Attacks > Learn about various malware tactics and how to avoid them. Understand > malware threats, the impact they can have on your business, and how you > can protect your company and customers by using code signing. > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > xmlvm-users mailing list > xml...@li... > <mailto:xml...@li...> > https://lists.sourceforge.net/lists/listinfo/xmlvm-users > > > > > ------------------------------------------------------------------------------ > Protect Your Site and Customers from Malware Attacks > Learn about various malware tactics and how to avoid them. Understand > malware threats, the impact they can have on your business, and how you > can protect your company and customers by using code signing. > http://p.sf.net/sfu/oracle-sfdevnl > > > > _______________________________________________ > xmlvm-users mailing list > xml...@li... > https://lists.sourceforge.net/lists/listinfo/xmlvm-users |