Golly 2.1 has stopped working here

For general discussion about Conway's Game of Life.
Post Reply
User avatar
ddt
Posts: 11
Joined: September 6th, 2009, 3:05 pm
Location: Montreal

Golly 2.1 has stopped working here

Post by ddt »

Hi,

Golly stopped working here. It started to get an error during startup with missing refs. Usually when this happens to any program rebuild work. When I try to rebuild golly I now get:

g++ `wx-config --cxxflags` -O5 -DZLIB -DVERSION=2.1 -Wall -Wno-non-virtual-dtor -fno-strict-aliasing `perl -MExtUtils::Embed -e ccopts` -c -o ObjGTK/wxperl.o wxperl.cpp
wxperl.cpp:134: error: expected constructor, destructor, or type conversion before ‘*’ token
wxperl.cpp:233: error: ‘G_Perl_Gthr_key_ptr’ was not declared in this scope
wxperl.cpp:274: error: too many initializers for ‘PerlFunc’
make: *** [ObjGTK/wxperl.o] Error 1

This is on gentoo.

wxgtk is 2.8.10.1-r5
wxperl is 0.97.02

perl -v
This is perl, v5.10.1 (*) built for x86_64-linux

gcc -v
gcc version 4.4.3 (Gentoo 4.4.3-r2 p1.2)

Ideas?

TIA
Ed

PS. I would really like to break 8x10⁹ objects added to the census :-)
User avatar
ddt
Posts: 11
Joined: September 6th, 2009, 3:05 pm
Location: Montreal

Re: Golly 2.1 has stopped working here

Post by ddt »

if I comment out lines 134 & 233 then wxperl.cpp builds but I get the following error:


g++ `wx-config --cxxflags` -O5 -DZLIB -DVERSION=2.1 -Wall -Wno-non-virtual-dtor -fno-strict-aliasing -o golly ObjGTK/bigint.o ObjGTK/lifealgo.o ObjGTK/hlifealgo.o ObjGTK/hlifedraw.o ObjGTK/qlifealgo.o ObjGTK/qlifedraw.o ObjGTK/jvnalgo.o ObjGTK/ruletreealgo.o ObjGTK/ruletable_algo.o ObjGTK/ghashbase.o ObjGTK/ghashdraw.o ObjGTK/readpattern.o ObjGTK/writepattern.o ObjGTK/liferules.o ObjGTK/util.o ObjGTK/liferender.o ObjGTK/viewport.o ObjGTK/lifepoll.o ObjGTK/generationsalgo.o ObjGTK/wxutils.o ObjGTK/wxprefs.o ObjGTK/wxalgos.o ObjGTK/wxrule.o ObjGTK/wxinfo.o ObjGTK/wxhelp.o ObjGTK/wxstatus.o ObjGTK/wxview.o ObjGTK/wxrender.o ObjGTK/wxscript.o ObjGTK/wxperl.o ObjGTK/wxpython.o ObjGTK/wxfile.o ObjGTK/wxedit.o ObjGTK/wxcontrol.o ObjGTK/wxundo.o ObjGTK/wxselect.o ObjGTK/wxlayer.o ObjGTK/wxmain.o ObjGTK/wxgolly.o `wx-config --libs` -lz `perl -MExtUtils::Embed -e '$]<5.010 && ldopts'`
ObjGTK/wxperl.o: In function `pl_check':
wxperl.cpp:(.text+0x63): undefined reference to `PL_markstack_ptr'
wxperl.cpp:(.text+0x6b): undefined reference to `PL_stack_sp'
wxperl.cpp:(.text+0x78): undefined reference to `PL_markstack_ptr'
wxperl.cpp:(.text+0x7f): undefined reference to `PL_stack_base'
wxperl.cpp:(.text+0xa6): undefined reference to `PL_stack_base'
wxperl.cpp:(.text+0xd4): undefined reference to `PL_stack_sp'
wxperl.cpp:(.text+0xf1): undefined reference to `PL_stack_base'

and many more

ideas?
Ed
User avatar
ddt
Posts: 11
Joined: September 6th, 2009, 3:05 pm
Location: Montreal

Re: Golly 2.1 has stopped working here

Post by ddt »

Hi

turns out this test in makefile-gtk is not correct:

# for Perl script support
PERL_INCLUDE = `perl -MExtUtils::Embed -e ccopts`
# note that we must link in the Perl library if the Perl version is older
# than 5.10 (this is necessary because boot_DynaLoader is in DynaLoader.a);
# if using 5.10 or later we can dynamically load the Perl library because
# it contains the boot_DynaLoader code
PERL_LINK = `perl -MExtUtils::Embed -e '$$]<5.010 && ldopts'`

If I change it to:

PERL_LINK = `perl -MExtUtils::Embed -e '$$]<5.020 && ldopts'`

all is ok.

I guess the comment does not apply to linux dists. Not sure what the correct fix for this one is...

Note that golly runs but perl does not work. It thinks I need a newer version with the lines commented out in wxperl.cpp & makefile-gtk change.

Thanks,
Ed
User avatar
Andrew
Moderator
Posts: 1065
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.1 has stopped working here

Post by Andrew »

We're currently wrestling with this problem in the golly-test list.
Can you please tell us what output you get from running these 4 commands:

perl -MExtUtils::Embed -e ccopts
perl -MExtUtils::Embed -e ldopts
perl -MExtUtils::Embed -e '$]<5.010 && ldopts'
perl -MExtUtils::Embed -e 'print $]'
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
ddt
Posts: 11
Joined: September 6th, 2009, 3:05 pm
Location: Montreal

Re: Golly 2.1 has stopped working here

Post by ddt »

ed@grover ~/golly-2.1-src $ perl -MExtUtils::Embed -e ccopts
-fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib64/perl5/5.10.1/x86_64-linux/CORE ed@grover ~/golly-2.1-src $ perl -MExtUtils::Embed -e ldopts
-Wl,-E -fstack-protector -L/usr/lib64/perl5/5.10.1/x86_64-linux/CORE -lperl -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
ed@grover ~/golly-2.1-src $ perl -MExtUtils::Embed -e '$]<5.010 && ldopts'
ed@grover ~/golly-2.1-src $ perl -MExtUtils::Embed -e 'print $]'

This is all with wxgtk 2.8.10, installing 2.8.11 causes golly to fail to start nor will it build.

Do ask if you want something tested or need more info.

Thanks
Ed
User avatar
Andrew
Moderator
Posts: 1065
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.1 has stopped working here

Post by Andrew »

ed@grover ~/golly-2.1-src $ perl -MExtUtils::Embed -e 'print $]'
You forgot the output from this command -- I assume it was "5.010001"?
This is all with wxgtk 2.8.10, installing 2.8.11 causes golly to fail to start nor will it build.
I don't quite understand this -- if you can't build it then how can you even start it?

I suspect I won't be able to solve your problems until I upgrade my Ubuntu system to use Perl 5.10.1.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
ddt
Posts: 11
Joined: September 6th, 2009, 3:05 pm
Location: Montreal

Re: Golly 2.1 has stopped working here

Post by ddt »

>by Andrew » Yesterday, 7:57 pm

>ed@grover ~/golly-2.1-src $ perl -MExtUtils::Embed -e 'print $]'
>You forgot the output from this command -- I assume it was "5.010001"?

perl -MExtUtils::Embed -e 'print $]'
5.010001ed@grover /var/log $

No CR is generated...

>This is all with wxgtk 2.8.10, installing 2.8.11 causes golly to fail to start nor will it build.
>I don't quite understand this -- if you can't build it then how can you even start it?

Since golly is installed outside the packaging system I can install 2.8.11 and then try to run an existing golly - which fails. Normally
this would mean a rebuild. That rebuild also fails. Putting 2.8.10 back makes the rebuild work.

>I suspect I won't be able to solve your problems until I upgrade my Ubuntu system to use Perl 5.10.1.

Fair enough. A working Perl is icing here.

Thanks
Ed
User avatar
Andrew
Moderator
Posts: 1065
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.1 has stopped working here

Post by Andrew »

ddt wrote:Since golly is installed outside the packaging system I can install 2.8.11 and then try to run an existing golly - which fails. Normally
this would mean a rebuild. That rebuild also fails. Putting 2.8.10 back makes the rebuild work.
Hmm, this sounds like you're building wxWidgets as a shared library. Note that the instructions in Golly's BUILD file say to build a non-shared library (ie. the configure command has a "--disable-shared" option). I've just downloaded wxGTK 2.8.11 and followed the steps in BUILD to build wxWidgets and then Golly without any problems (on Ubuntu 8.10), so please try doing that and see what happens. To be on the safe side, it might be best to use cvs to grab the latest Golly source files from sourceforge so you're using the exact same sources I'm using.
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
User avatar
ddt
Posts: 11
Joined: September 6th, 2009, 3:05 pm
Location: Montreal

Re: Golly 2.1 has stopped working here

Post by ddt »

Andrew,

wxGTK's build is controlled by emerge (gentoo's package manager). USE flags are the method of controlling the build and configure options.
wxGTK does not have one to disable building the lib as shared. It uses:

/var/tmp/portage/x11-libs/wxGTK-2.8.11.0/work/wxPython-src-2.8.11.0/configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --enable-compat26 --enable-shared --enable-unicode --with-regex=builtin --with-zlib=sys --with-expat=sys --disable-debug --disable-precomp-headers --without-odbc --with-sdl --without-libtiff --enable-graphics_ctx --enable-gui --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --enable-mediactrl --enable-opengl --with-opengl --with-gnomeprint --without-gnomevfs

ideas?
Ed
User avatar
Andrew
Moderator
Posts: 1065
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 2.1 has stopped working here

Post by Andrew »

wxGTK's build is controlled by emerge ...
Don't use emerge -- follow the instructions in Golly's BUILD file instead. First you need to build and install wxGTK:

go to http://www.wxwidgets.org/downloads/ and click on the wxGTK link to download wxGTK-2.8.11.tar.gz
gunzip wxGTK-2.8.11.tar.gz
tar xfm wxGTK-2.8.11.tar
cd wxGTK-2.8.11
mkdir build-gtk
cd build-gtk
../configure --with-gtk --disable-shared --enable-unicode
make
sudo make install
ldconfig (actually, I don't think this is necessary)

To get the latest Golly 2.2 source files do these commands:

cvs -d:pserver:anonymous@golly.cvs.sourceforge.net:/cvsroot/golly login
(hit return when prompted for password)
cvs -z3 -d:pserver:anonymous@golly.cvs.sourceforge.net:/cvsroot/golly co -P golly

Finally, build Golly:

cd golly/src
make -f makefile-gtk

Oh, and keep your fingers crossed!
Use Glu or Glui to explore CA rules on non-periodic tilings: DominoLife and HatLife and SpectreLife
Post Reply