Subject: Problems compiling FOX for Ruby (FXRuby) on NetBSD
To: None <ruby-talk@ruby-lang.org>
From: Michael Neumann <neumann@s-direktnet.de>
List: netbsd-help
Date: 06/23/2001 12:39:54
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