Trying to build gcc trunk with java on current cygwin (with snapshot 20111211, I get a strange Boehm Garbage Collector problem, first manifesting itself like this:
dlltool -d /usr/local/src/trunk/gcc/libjava/libgcj-noncore-dummy.def -l libgcj-noncore-dummy.dll.a --dllname cyggcj-noncore-`expr \`grep -v '^#' /usr/local/src/trunk/gcc/libjava/libtool-version | sed -e 's/\(.*\):\(.*\):.*/\1 + \2/'\``.dll /bin/sh ./libtool --tag=CXX --mode=link /usr/local/src/trunk/objdir.withjava/./gcc/xgcc -shared-libgcc -B/usr/local/src/trunk/objdir.withjava/./gcc -nostdinc++ -L/usr/local/src/trunk/objdir.withjava/i686-pc-cygwin/libstdc++-v3/src -L/usr/local/src/trunk/objdir.withjava/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr/i686-pc-cygwin/bin/ -B/usr/i686-pc-cygwin/lib/ -isystem /usr/i686-pc-cygwin/include -isystem /usr/i686-pc-cygwin/sys-include -L/usr/local/src/trunk/objdir.withjava/i686-pc-cygwin/libjava -ffloat-store -fomit-frame-pointer -Usun -g -O2 -liconv -o libgcj.la -rpath /usr/lib/gcc/i686-pc-cygwin/4.7.0 -lrt ./libltdl/libltdlc.la -no-undefined -bindir "/usr/bin" -Wl,-u,__ZN3org4ietf4jgss10GSSManagerC1Ev,-L..,-lgcj-noncore-dummy -version-info `grep -v '^#' /usr/local/src/trunk/gcc/libjava/libtool-version` -Wl,-Bsymbolic-functions -rpath /usr/lib/gcc/i686-pc-cygwin/4.7.0 prims.lo jni.lo exception.lo stacktrace.lo link.lo defineclass.lo verify.lo jvmti.lo interpret.lo gnu/classpath/jdwp/natVMFrame.lo gnu/classpath/jdwp/natVMMethod.lo gnu/classpath/jdwp/natVMVirtualMachine.lo gnu/classpath/natConfiguration.lo gnu/classpath/natSystemProperties.lo gnu/classpath/natVMStackWalker.lo gnu/gcj/natCore.lo gnu/gcj/convert/JIS0208_to_Unicode.lo gnu/gcj/convert/JIS0212_to_Unicode.lo gnu/gcj/convert/Unicode_to_JIS.lo gnu/gcj/convert/natIconv.lo gnu/gcj/convert/natInput_EUCJIS.lo gnu/gcj/convert/natInput_SJIS.lo gnu/gcj/convert/natOutput_EUCJIS.lo gnu/gcj/convert/natOutput_SJIS.lo gnu/gcj/io/natSimpleSHSStream.lo gnu/gcj/io/shs.lo gnu/gcj/jvmti/natBreakpoint.lo gnu/gcj/jvmti/natNormalBreakpoint.lo gnu/gcj/runtime/natFinalizerThread.lo gnu/gcj/runtime/natSharedLibLoader.lo gnu/gcj/runtime/natSystemClassLoader.lo gnu/gcj/runtime/natStringBuffer.lo gnu/gcj/util/natDebug.lo gnu/gcj/util/natGCInfo.lo gnu/java/lang/natMainThread.lo gnu/java/lang/management/natVMClassLoadingMXBeanImpl.lo gnu/java/lang/management/natVMCompilationMXBeanImpl.lo gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.lo gnu/java/lang/management/natVMMemoryMXBeanImpl.lo gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.lo gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.lo gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.lo gnu/java/lang/management/natVMRuntimeMXBeanImpl.lo gnu/java/lang/management/natVMThreadMXBeanImpl.lo gnu/java/net/natPlainDatagramSocketImpl.lo gnu/java/net/natPlainSocketImpl.lo gnu/java/net/protocol/core/natCoreInputStream.lo gnu/java/nio/natVMPipe.lo gnu/java/nio/natVMSelector.lo gnu/java/nio/natNIOServerSocket.lo gnu/java/nio/natVMChannel.lo gnu/java/nio/channels/natFileChannelImpl.lo gnu/java/security/jce/prng/natVMSecureRandom.lo java/io/natFile.lo java/io/natVMObjectInputStream.lo java/io/natVMObjectStreamClass.lo java/lang/natCharacter.lo java/lang/natClass.lo java/lang/natClassLoader.lo java/lang/natConcreteProcess.lo java/lang/natVMDouble.lo java/lang/natVMFloat.lo java/lang/natMath.lo java/lang/natObject.lo java/lang/natRuntime.lo java/lang/natString.lo java/lang/natAbstractStringBuffer.lo java/lang/natSystem.lo java/lang/natThread.lo java/lang/natThreadLocal.lo java/lang/natVMClassLoader.lo java/lang/natVMProcess.lo java/lang/natVMThrowable.lo java/lang/ref/natReference.lo java/lang/reflect/natArray.lo java/lang/reflect/natConstructor.lo java/lang/reflect/natField.lo java/lang/reflect/natMethod.lo java/lang/reflect/natVMProxy.lo java/net/natVMInetAddress.lo java/net/natVMNetworkInterface.lo java/net/natVMURLConnection.lo java/nio/channels/natVMChannels.lo java/nio/natVMDirectByteBufferImpl.lo java/security/natVMAccessController.lo java/security/natVMAccessControlState.lo java/text/natCollator.lo java/util/natVMTimeZone.lo java/util/concurrent/atomic/natAtomicLong.lo java/util/logging/natLogger.lo java/util/zip/natDeflater.lo java/util/zip/natInflater.lo sun/misc/natUnsafe.lo boehm.lo posix.lo posix-threads.lo classpath/native/fdlibm/libfdlibm.la java/lang/Object.lo java/lang/Class.lo java/process-Posix.lo gnu/classpath.lo gnu/classpath/debug.lo gnu/classpath/toolkit.lo gnu/gcj.lo gnu/gcj/convert.lo gnu/gcj/runtime.lo gnu/gcj/util.lo gnu/java/awt.lo gnu/java/awt/color.lo gnu/java/awt/java2d.lo gnu/java/awt/peer.lo gnu/java/awt/peer/headless.lo gnu/java/io.lo gnu/java/lang.lo gnu/java/lang/reflect.lo gnu/java/locale.lo gnu/java/net.lo gnu/java/net/loader.lo gnu/java/net/protocol/core.lo gnu/java/net/protocol/file.lo gnu/java/net/protocol/http.lo gnu/java/net/protocol/jar.lo gnu/java/nio.lo gnu/java/nio/channels.lo gnu/java/nio/charset.lo gnu/java/rmi.lo gnu/java/rmi/activation.lo gnu/java/rmi/dgc.lo gnu/java/rmi/registry.lo gnu/java/rmi/server.lo gnu/java/security.lo gnu/java/security/action.lo gnu/java/security/ber.lo gnu/java/security/der.lo gnu/java/security/hash.lo gnu/java/security/jce/hash.lo gnu/java/security/jce/prng.lo gnu/java/security/jce/sig.lo gnu/java/security/key.lo gnu/java/security/key/dss.lo gnu/java/security/key/rsa.lo gnu/java/security/pkcs.lo gnu/java/security/prng.lo gnu/java/security/provider.lo gnu/java/security/sig.lo gnu/java/security/sig/dss.lo gnu/java/security/sig/rsa.lo gnu/java/security/util.lo gnu/java/security/x509.lo gnu/java/security/x509/ext.lo gnu/java/text.lo gnu/java/util.lo gnu/java/util/jar.lo gnu/java/util/prefs.lo gnu/java/util/regex.lo gnu/javax/crypto.lo gnu/javax/crypto/assembly.lo gnu/javax/crypto/cipher.lo gnu/javax/crypto/jce.lo gnu/javax/crypto/jce/cipher.lo gnu/javax/crypto/jce/key.lo gnu/javax/crypto/jce/keyring.lo gnu/javax/crypto/jce/mac.lo gnu/javax/crypto/jce/params.lo gnu/javax/crypto/jce/prng.lo gnu/javax/crypto/jce/sig.lo gnu/javax/crypto/jce/spec.lo gnu/javax/crypto/key.lo gnu/javax/crypto/key/dh.lo gnu/javax/crypto/key/srp6.lo gnu/javax/crypto/keyring.lo gnu/javax/crypto/kwa.lo gnu/javax/crypto/mac.lo gnu/javax/crypto/mode.lo gnu/javax/crypto/pad.lo gnu/javax/crypto/prng.lo gnu/javax/crypto/sasl.lo gnu/javax/crypto/sasl/anonymous.lo gnu/javax/crypto/sasl/crammd5.lo gnu/javax/crypto/sasl/plain.lo gnu/javax/crypto/sasl/srp.lo gnu/javax/net/ssl.lo gnu/javax/net/ssl/provider.lo gnu/javax/security/auth.lo gnu/javax/security/auth/callback.lo gnu/javax/swing/text/html.lo gnu/javax/swing/text/html/css.lo gnu/javax/swing/text/html/parser/GnuParserDelegator.lo gnu/javax/swing/text/html/parser/HTML_401F.lo gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.lo gnu/javax/swing/text/html/parser/gnuDTD.lo gnu/javax/swing/text/html/parser/htmlAttributeSet.lo gnu/javax/swing/text/html/parser/htmlValidator.lo gnu/javax/swing/text/html/parser/models.lo gnu/javax/swing/text/html/parser/support.lo gnu/javax/swing/text/html/parser/support/low.lo gnu/javax/swing/tree.lo java/applet.lo java/awt.lo java/awt/color.lo java/awt/datatransfer.lo java/awt/dnd.lo java/awt/dnd/peer.lo java/awt/event.lo java/awt/font.lo java/awt/geom.lo java/awt/image.lo java/awt/image/renderable.lo java/awt/peer.lo java/beans.lo java/beans/beancontext.lo java/io.lo java/lang.lo java/lang/annotation.lo java/lang/instrument.lo java/lang/ref.lo java/lang/reflect.lo java/math.lo java/net.lo java/nio.lo java/nio/channels.lo java/nio/channels/spi.lo java/nio/charset.lo java/nio/charset/spi.lo java/rmi.lo java/rmi/activation.lo java/rmi/dgc.lo java/rmi/registry.lo java/rmi/server.lo java/security.lo java/security/cert.lo java/security/interfaces.lo java/security/spec.lo java/text.lo java/text/spi.lo java/util.lo java/util/concurrent.lo java/util/concurrent/atomic.lo java/util/concurrent/locks.lo java/util/jar.lo java/util/logging.lo java/util/prefs.lo java/util/regex.lo java/util/spi.lo java/util/zip.lo javax/accessibility.lo javax/crypto.lo javax/crypto/interfaces.lo javax/crypto/spec.lo javax/net.lo javax/net/ssl.lo javax/security/auth.lo javax/security/auth/callback.lo javax/security/auth/x500.lo javax/security/sasl.lo javax/sound/sampled.lo javax/sound/sampled/spi.lo javax/swing.lo javax/swing/border.lo javax/swing/colorchooser.lo javax/swing/event.lo javax/swing/filechooser.lo javax/swing/plaf.lo javax/swing/plaf/basic.lo javax/swing/plaf/metal.lo javax/swing/table.lo javax/swing/text.lo javax/swing/text/html.lo javax/swing/text/html/parser.lo javax/swing/tree.lo javax/swing/undo.lo sun/misc.lo sun/reflect.lo sun/reflect/annotation.lo sun/reflect/misc.lo gnu/classpath/jdwp.lo gnu/classpath/jdwp/event.lo gnu/classpath/jdwp/event/filters.lo gnu/classpath/jdwp/exception.lo gnu/classpath/jdwp/id.lo gnu/classpath/jdwp/processor.lo gnu/classpath/jdwp/transport.lo gnu/classpath/jdwp/util.lo gnu/classpath/jdwp/value.lo gnu/gcj/jvmti.lo gnu-java-beans.lo gnu-java-math.lo gnu-java-util-prefs-gconf.lo javax-xml.lo org-w3c.lo ../libffi/libffi_convenience.la ../zlib/libzgcj_convenience.la ../boehm-gc/libgcjgc_convenience.la libtool: link: /usr/local/src/trunk/objdir.withjava/./gcc/xgcc -shared-libgcc -B/usr/local/src/trunk/objdir.withjava/./gcc -nostdinc++ -L/usr/local/src/trunk/objdir.withjava/i686-pc-cygwin/libstdc++-v3/src -L/usr/local/src/trunk/objdir.withjava/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr/i686-pc-cygwin/bin/ -B/usr/i686-pc-cygwin/lib/ -isystem /usr/i686-pc-cygwin/include -isystem /usr/i686-pc-cygwin/sys-include -shared -nostdlib /usr/local/src/trunk/objdir.withjava/./gcc/crtbegin.o .libs/libgcj.la.lnkscript -Wl,--whole-archive ./libltdl/.libs/libltdlc.a classpath/native/fdlibm/.libs/libfdlibm.a ../libffi/.libs/libffi_convenience.a ../zlib/.libs/libzgcj_convenience.a ../boehm-gc/.libs/libgcjgc_convenience.a -Wl,--no-whole-archive -L/usr/local/src/trunk/objdir.withjava/i686-pc-cygwin/libstdc++-v3/src -L/usr/local/src/trunk/objdir.withjava/i686-pc-cygwin/libstdc++-v3/src/.libs -L/usr/local/src/trunk/objdir.withjava/i686-pc-cygwin/libjava /usr/lib/libiconv.dll.a -lrt -ldl -L/usr/local/src/trunk/objdir.withjava/./gcc -L/usr/i686-pc-cygwin/bin -lgcc_s -lgcc -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 -lgcc_s -lgcc /usr/local/src/trunk/objdir.withjava/./gcc/crtend.o -Wl,-u -Wl,__ZN3org4ietf4jgss10GSSManagerC1Ev -Wl,-L.. -Wl,-lgcj-noncore-dummy -Wl,-Bsymbolic-functions -o .libs/cyggcj-13.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libgcj.dll.a Creating library file: .libs/libgcj.dll.a.libs/boehm.o: In function `Z18_Jv_GCAttachThreadv': /usr/local/src/trunk/gcc/libjava/boehm.cc:751: undefined reference to `GC_register_my_thread' .libs/boehm.o: In function `Z18_Jv_GCDetachThreadv': /usr/local/src/trunk/gcc/libjava/boehm.cc:759: undefined reference to `GC_unregister_my_thread' collect2: error: ld returned 1 exit status Makefile:9294: recipe for target `libgcj.la' failed make[3]: *** [libgcj.la] Error 1 make[3]: Leaving directory `/usr/local/src/trunk/objdir.withjava/i686-pc-cygwin/libjava' Makefile:10205: recipe for target `all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/usr/local/src/trunk/objdir.withjava/i686-pc-cygwin/libjava' Makefile:16443: recipe for target `all-target-libjava' failed make[1]: *** [all-target-libjava] Error 2 make[1]: Leaving directory `/usr/local/src/trunk/objdir.withjava' Makefile:898: recipe for target `all' failed make: *** [all] Error 2 Now; I see a few other instances where a GC warning is issued, such as these: find asm classes -type d -exec chmod u+w \{\} \; if [ -d asm/.svn ]; then \ find asm classes -depth -type d -name .svn -exec rm -rf \{\} \;; \ fi (cd classes; \ gjar cf ../tools.zip .; \ cd ..) GC Warning: Thread stack pointer 0xfff3c924 out of range, pushing everything Exception in thread "main" java.lang.NoClassDefFoundError: loaded class gnu.classpath.tools.jar.messages was in fact named gnu.classpath.tools.jar.Messages at java.lang.VMClassLoader.defineClass(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.util.ResourceBundle.tryBundle(Unknown Source) at java.util.ResourceBundle.tryBundle(Unknown Source) at java.util.ResourceBundle.getBundle(Unknown Source) at java.util.ResourceBundle.getBundle(Unknown Source) at gnu.classpath.tools.jar.Messages.<clinit>(Unknown Source) at java.lang.Class.initializeClass(Unknown Source) at gnu.classpath.tools.jar.Messages.getString(Unknown Source) at gnu.classpath.tools.jar.Main.initializeParser(Unknown Source) at gnu.classpath.tools.jar.Main.run(Unknown Source) at gnu.classpath.tools.jar.Main.main(Unknown Source) (cd asm; \ gjar uf ../tools.zip .; \ cd ..) GC Warning: Thread stack pointer 0xfff3c924 out of range, pushing everything GC Warning: Thread stack pointer 0xfff3c924 out of range, pushing everything GC Warning: Thread stack pointer 0xfff3c924 out of range, pushing everything jar: internal error: java.util.zip.ZipException: ../tools.zip (No such file or directory) at java.lang.Throwable.<init>(Unknown Source) at java.lang.Exception.<init>(Unknown Source) at java.io.IOException.<init>(Unknown Source) at java.util.zip.ZipFile.openFile(Unknown Source) at java.util.zip.ZipFile.<init>(Unknown Source) at java.util.jar.JarFile.<init>(Unknown Source) at java.util.jar.JarFile.<init>(Unknown Source) at gnu.classpath.tools.jar.Updater.run(Unknown Source) at gnu.classpath.tools.jar.Main.run(Unknown Source) at gnu.classpath.tools.jar.Main.main(Unknown Source) Caused by: java.io.FileNotFoundException: ../tools.zip (No such file or directory) at gnu.java.nio.channels.FileChannelImpl.open(Unknown Source) at gnu.java.nio.channels.FileChannelImpl.<init>(Unknown Source) at gnu.java.nio.channels.FileChannelImpl.create(Unknown Source) at java.io.RandomAccessFile.<init>(Unknown Source) ...7 more rm -rf asm classes classes.lst asm.lst make all-am Now, this is on Windows 7 Enterprise/SP1 cygwin Intel(R) Core(TM)2 Duo CPU T9600@2.80GHz with: binutils 2.22.51-1 cygwin 20111211 snapshot dejagnu 20021217-2 expect 20030128-1 gmp 4.3.2-1 libgmp-devel 4.3.2-1 libmpfr-devel 3.0.1-1 make 3.82.90-1 mpfr 3.0.1-1 tcltk 20080420-1 w32api 3.17-2 and gcc (Mon Dec 12 05:58:38 UTC 2011 (revision 182218)) was configured like this: $ /usr/local/src/trunk/gcc/configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --localstatedir=/var --sysconfdir=/etc --datarootdir=/usr/share --docdir=/usr/share/doc/gcc4 -C --datadir=/usr/share --infodir=/usr/share/info --mandir=/usr/share/man -v --with-gmp=/usr --with-mpfr=/usr --enable-bootstrap --enable-version-specific-runtime-libs --libexecdir=/usr/lib --enable-static --enable-shared --enable-shared-libgcc --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --with-dwarf2 --disable-sjlj-exceptions --enable-graphite --enable-lto --enable-java-awt=gtk --disable-symvers --enable-libjava --program-suffix=-4 --enable-libgomp --enable-libssp --enable-threads=posix --with-arch=i686 --with-tune=generic --enable-libgcj-sublibs --enable-libada CC=gcc-4 CXX=g++-4 CC_FOR_TARGET=gcc-4 CXX_FOR_TARGET=g++-4 GNATMAKE_FOR_TARGET=gnatmake GNATBIND_FOR_TARGET=gnatbind --with-ecj-jar=/usr/share/java/ecj.jar --enable-languages=c,ada,c++,fortran,java,lto,objc,obj-c++ Any ideas on what I might be doing wrong here? -- Cheers, /ChJ