From: Michael Neumann Date: 2001-06-23T19:37:50+09:00 Subject: [ruby-talk:16799] Problems compiling FOX for Ruby (FXRuby) on NetBSD Hi, I didn't get FXRuby (Ruby interface for FOX GUI Toolkit) available from fxruby.sourceforge.net working on NetBSD 1.5. At first I get a memory exhausted error, but when disabling optimations this do not occures any longer. But then I get a '/usr/lib/libstdc++.so.2: Undefined symbol "__vt_9exception"...' error when trying to load the shared library. Perhaps a too old version of the stdc++ library? Has anybody some hints? Thanks in advance. Michael Neumann $ ruby extconf.rb --with-fox-include=/usr/X11R6/include/fox --with-fox-lib=/usr/X11R6/lib checking for png_create_read_struct() in -lpng... no checking for deflate() in -lz... yes checking for jpeg_mem_init() in -ljpeg... no checking for XShmQueryVersion() in -lXext... no checking for XFindContext() in -lX11... yes checking for glXCreateContext() in -lGL... no checking for gluNewQuadric() in -lGLU... no creating Makefile $ make cc -fpic -O2 -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c -o librb.o librb.c c++ -fpic -O2 -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c FXRbApp.cpp c++ -fpic -O2 -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c FXRbDataTarget.cpp c++ -fpic -O2 -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c FXRuby.cpp c++ -fpic -O2 -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c core_wrap.cpp core_wrap.cpp: In function `void Init_core()': core_wrap.cpp:108596: virtual memory exhausted *** Error code 1 Stop. Then if I remove the -O2 option from CFLAGS in Makefile it successfully compiles. $ make c++ -fpic -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c core_wrap.cpp c++ -fpic -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c dialogs_wrap.cpp c++ -fpic -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c icons_wrap.cpp c++ -fpic -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c image_wrap.cpp c++ -fpic -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c impl.cpp c++ -fpic -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c markfuncs.cpp c++ -fpic -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c mdi_wrap.cpp c++ -fpic -fpic -pipe -DSWIG_NOINCLUDE -I../include -I/usr/pkg/lib/ruby/1.6/i386-netbsd -I/usr/pkg/include -I/usr/X11R6/include/fox -c opengl_wrap.cpp cc -shared -L/usr/X11R6/lib -L/usr/pkg/lib -o fox.so librb.o FXRbApp.o FXRbDataTarget.o FXRuby.o core_wrap.o dialogs_wrap.o icons_wrap.o image_wrap.o impl.o markfuncs.o mdi_wrap.o opengl_wrap.o -Wl,-R -Wl,/usr/pkg/lib -L/usr/pkg/lib -L. -lruby -Wl,-R -Wl,/usr/X11R6/lib -L/usr/X11R6/lib -lFOX -lX11 -lz -lstdc++ -lc But when I try to require the fox library: $ ruby -r fox -e "p 'test'" the following exception is raised: 0: /usr/lib/libstdc++.so.2: Undefined symbol "__vt_9exception" (reloc type = 6, symnum = 934) - /usr/pkg/lib/ruby/1.6/i386-netbsd/fox.so (LoadError) After changing some settings in the Makefile I got: 0: /usr/pkg/lib/ruby/1.6/i386-netbsd/fox.so: Undefined symbol "__sjthrow" (reloc type = 2, symnum = 39) - /usr/pkg/lib/ruby/1.6/i386-netbsd/fox.so (LoadError) -- Michael Neumann merlin.zwo InfoDesign GmbH http://www.merlin-zwo.de