Hello everyone - I just did a clean (not an upgrade) install of Fedora 15, 64-bit. Trying to compile Therion 5.3.6 and 5.3.7 produces an error in thbezier. There are warnings, too, but I think they can be ignored. Version 5.3.6 compiles on 64-bit Fedora 14 as long as I turn off the loch item in the makefile. That may also be required for 5.3.7 ... I have never been able to get loch to compile. Any ideas? Thanks - Bill Gee ==================== thdataleg.cxx: In member function ‘void thdataleg::calc_total_stds()’: thdataleg.cxx:173:53: warning: variable ‘dh’ set but not used [-Wunused-but- set-variable] c++ -c -Wall -DTHLINUX -O2 -o thobjectname.o thobjectname.cxx c++ -c -Wall -DTHLINUX -O2 -o thinfnan.o thinfnan.cxx c++ -c -Wall -DTHLINUX -O2 -o thlayout.o thlayout.cxx c++ -c -Wall -DTHLINUX -O2 -o thinit.o thinit.cxx c++ -c -Wall -DTHLINUX -O2 -o thdb1d.o thdb1d.cxx thdb1d.cxx: In member function ‘void thdb1d::print_loops()’: thdb1d.cxx:2466:19: warning: variable ‘prev_ps’ set but not used [-Wunused- but-set-variable] thdb1d.cxx:2466:30: warning: variable ‘first_ps’ set but not used [-Wunused- but-set-variable] c++ -c -Wall -DTHLINUX -O2 -o thsvxctrl.o thsvxctrl.cxx c++ -c -Wall -DTHLINUX -O2 -o thdatastation.o thdatastation.cxx c++ -c -Wall -DTHLINUX -O2 -o thobjectid.o thobjectid.cxx c++ -c -Wall -DTHLINUX -O2 -o thobjectsrc.o thobjectsrc.cxx c++ -c -Wall -DTHLINUX -O2 -o thgrade.o thgrade.cxx c++ -c -Wall -DTHLINUX -O2 -o thlibrary.o thlibrary.cxx c++ -c -Wall -DTHLINUX -O2 -o thgeomag.o thgeomag.cxx thgeomag.cxx: In function ‘double thgeomag(double, double, double, double)’: thgeomag.cxx:61:68: warning: variable ‘Z’ set but not used [-Wunused-but-set- variable] c++ -c -Wall -DTHLINUX -O2 -o thbezier.o thbezier.cxx In file included from thbezier.cxx:48:0: thbezier.h:53:3: error: ‘size_t’ does not name a type thbezier.h:66:3: error: ‘size_t’ does not name a type thbezier.cxx: In member function ‘void thbezier_curve::copy_polyline(thbezier_polyline*, double)’: thbezier.cxx:1372:25: error: ‘struct thbezier_polyline’ has no member named ‘get_length’ make: *** [thbezier.o] Error 1 ===================
+++ Bill Gee [2011-05-29 20:17 -0500]:
Hello everyone -
I just did a clean (not an upgrade) install of Fedora 15, 64-bit. Trying to compile Therion 5.3.6 and 5.3.7 produces an error in thbezier. There are warnings, too, but I think they can be ignored.
Version 5.3.6 compiles on 64-bit Fedora 14 as long as I turn off the loch item in the makefile. That may also be required for 5.3.7 ... I have never been able to get loch to compile.
Any ideas?
I haven't tried 5.3.7 yet. 5.3.6 is fine here. Try the debian patches: http://wookware.org/software/therion/therion_5.3.6-1.debian.tar.gz there are various things in there, but the most relevant ones are: Subject: Segfaults can occur without ensuring that lang is set to something Origin: Debian Forwarded: not-needed Author: Wookey <wookey@wookware.org> Last-Update: 2010-11-15 Index: therion-5.3.3/thlayout.cxx =================================================================== --- therion-5.3.3.orig/thlayout.cxx 2010-06-01 12:49:43.000000000 +0100 +++ therion-5.3.3/thlayout.cxx 2010-06-06 23:48:12.000000000 +0100 @@ -2028,7 +2028,7 @@ LAYOUT.preview_below_b = this->color_preview_below.B; LAYOUT.lang = this->lang; - LAYOUT.langstr = thlang_getid(this->lang); + LAYOUT.langstr = (this->lang == -1 ? "en" : thlang_getid(this->lang)); } This used to be reuiqred to make loch work on intel video cards - not sure if it still is: Index: ./loch/lxGLC.cxx =================================================================== --- ./loch/lxGLC.cxx.orig 2009-07-09 11:31:11.000000000 +0100 +++ ./loch/lxGLC.cxx 2010-05-28 23:24:03.000000000 +0100 @@ -328,8 +328,8 @@ this->OSCMakeCurrent(); } if (this->m_initTextures) { - glGenTextures(1, & this->m_idTexSurface); - glGenTextures(1, & this->m_idTexStation); + //glGenTextures(1, & this->m_idTexSurface); + //glGenTextures(1, & this->m_idTexStation); } glBindTexture(GL_TEXTURE_2D, this->m_idTexSurface); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); Subject: Makefile fixes for Debianisation Origin: Debian Forwarded: not-needed Author: Wookey <wookey@wookware.org> Last-Update: 2010-11-15 Description: Changes to makefile for correct Debian package build Remove configs and targets for non-Debian builds Add -Wno-write-strings to remove loads of "warning: deprecated conversion from string constant to ‘char*’" complaints - should be fixed properly --- therion-5.3.5.orig/loch/Makefile 2010-09-23 15:49:19.000000000 +0100 +++ therion-5.3.5/loch/Makefile 2010-11-15 21:36:45.544097713 +0000 @@ -7,92 +7,20 @@ img.o # PLATFORM DEBIAN CXX = c++ CC = gcc POBJECTS = lxR2P.o VTKPATH = /usr/include/vtk-$(VTKVERSION) -VTKLIBPATH = /usr/lib/vtk-$(VTKVERSION) VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering -lvtkCommon -lfreetype -CXXPFLAGS = -DLXLINUX $(shell wx-config --cxxflags) -Wno-deprecated $(shell freetype-config --cflags) -I$(VTKPATH) +CXXPFLAGS = -DLXLINUX $(shell wx-config --cxxflags) -Wno-write-strings -Wno-deprecated -fno-strict-aliasing $(shell freetype-config --cflags) -I$(VTKPATH) CCPFLAGS = -DLXLINUX $(shell wx-config --cflags) LXLIBDIR = linux -PLIBS = $(shell wx-config --libs --gl-libs) -L$(VTKLIBPATH) $(VTKLIBS) -lGLU -lpthread -lz +PLIBS = $(shell wx-config --libs --gl-libs) $(VTKLIBS) -lGLU -lpthread -lz LXPLATFORM = LINUX @@ -112,7 +40,7 @@ .c.o: $(CC) -c $(CCFLAGS) -o $@ $< -all: loch hlp +all: loch hlp: make -C ./help Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/
+++ Bill Gee [2011-05-29 20:17 -0500]:
Hello everyone -
I just did a clean (not an upgrade) install of Fedora 15, 64-bit. Trying to compile Therion 5.3.6 and 5.3.7 produces an error in thbezier. There are warnings, too, but I think they can be ignored.
OK. I just tried building 5.3.7 and it works OK for me on Debian squeeze (AMD64)
c++ -c -Wall -DTHLINUX -O2 -o thbezier.o thbezier.cxx In file included from thbezier.cxx:48:0: thbezier.h:53:3: error: ‘size_t’ does not name a type thbezier.h:66:3: error: ‘size_t’ does not name a type thbezier.cxx: In member function ‘void thbezier_curve::copy_polyline(thbezier_polyline*, double)’: thbezier.cxx:1372:25: error: ‘struct thbezier_polyline’ has no member named ‘get_length’ make: *** [thbezier.o] Error 1
So the problem here is that you are not getting size_t defined properly. something to do with #include <list> or #include <vector> I suspect, but I'm not sure how C++ including works. Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/
+++ Bill Gee [2011-05-29 20:17 -0500]:
Hello everyone -
I just did a clean (not an upgrade) install of Fedora 15, 64-bit. Trying to compile Therion 5.3.6 and 5.3.7 produces an error in thbezier. There are warnings, too, but I think they can be ignored.
c++ -c -Wall -DTHLINUX -O2 -o thbezier.o thbezier.cxx In file included from thbezier.cxx:48:0: thbezier.h:53:3: error: ‘size_t’ does not name a type thbezier.h:66:3: error: ‘size_t’ does not name a type thbezier.cxx: In member function ‘void thbezier_curve::copy_polyline(thbezier_polyline*, double)’: thbezier.cxx:1372:25: error: ‘struct thbezier_polyline’ has no member named ‘get_length’ make: *** [thbezier.o] Error 1
OK. I've reproduced this now. By building on unstable instead of stable. Could be updating to vtk v5.6 instead of v5.4. but a number of other libs were upgraded too. Will investigate. Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/
Hi Wookey - Thanks for looking into this. Your first response was rather daunting! I know enough about C programming to get into serious trouble, but not enough to get out. One thing I have found with VTK is that I always have to make a link from the vtk "include" directory to a directory named vtk-5.4 ... ln -s /usr/include/vtk /usr/include/vtk-5.4 Also, my Fedora 14 system has vtk 5.6 installed. When you say "unstable", what are you referring to? The Therion version? Fedora? Vtk? Regards - Bill Gee On Monday, May 30, 2011 21:49:17 Wookey wrote:
+++ Bill Gee [2011-05-29 20:17 -0500]:
Hello everyone -
I just did a clean (not an upgrade) install of Fedora 15, 64-bit. Trying to compile Therion 5.3.6 and 5.3.7 produces an error in thbezier. There are warnings, too, but I think they can be ignored.
c++ -c -Wall -DTHLINUX -O2 -o thbezier.o thbezier.cxx In file included from thbezier.cxx:48:0: thbezier.h:53:3: error: ‘size_t’ does not name a type thbezier.h:66:3: error: ‘size_t’ does not name a type thbezier.cxx: In member function ‘void thbezier_curve::copy_polyline(thbezier_polyline*, double)’: thbezier.cxx:1372:25: error: ‘struct thbezier_polyline’ has no member named ‘get_length’ make: *** [thbezier.o] Error 1
OK. I've reproduced this now. By building on unstable instead of stable. Could be updating to vtk v5.6 instead of v5.4. but a number of other libs were upgraded too. Will investigate.
Wookey
+++ Wookey [2011-05-31 03:49 +0100]:
+++ Bill Gee [2011-05-29 20:17 -0500]:
Hello everyone -
I just did a clean (not an upgrade) install of Fedora 15, 64-bit. Trying to compile Therion 5.3.6 and 5.3.7 produces an error in thbezier. There are warnings, too, but I think they can be ignored.
c++ -c -Wall -DTHLINUX -O2 -o thbezier.o thbezier.cxx In file included from thbezier.cxx:48:0: thbezier.h:53:3: error: ‘size_t’ does not name a type thbezier.h:66:3: error: ‘size_t’ does not name a type thbezier.cxx: In member function ‘void thbezier_curve::copy_polyline(thbezier_polyline*, double)’: thbezier.cxx:1372:25: error: ‘struct thbezier_polyline’ has no member named ‘get_length’ make: *** [thbezier.o] Error 1
OK. I've reproduced this now. By building on unstable instead of stable. Could be updating to vtk v5.6 instead of v5.4. but a number of other libs were upgraded too. Will investigate.
In fact this problem is due to using gcc-4.5 which has stricter rules for including c++ headers. This patch fixes it: Index: therion-5.3.7/thbezier.h =================================================================== --- therion-5.3.7.orig/thbezier.h 2011-05-31 18:10:26.269303221 +0100 +++ therion-5.3.7/thbezier.h 2011-05-31 18:11:13.621303221 +0100 @@ -29,6 +29,7 @@ #ifndef thbezier_h #define thbezier_h +#include <cstddef> #include <list> #include <vector> Index: therion-5.3.7/thdb2dcp.cxx =================================================================== --- therion-5.3.7.orig/thdb2dcp.cxx 2011-05-31 18:10:26.285303221 +0100 +++ therion-5.3.7/thdb2dcp.cxx 2011-05-31 18:11:13.621303221 +0100 @@ -27,6 +27,8 @@ #include "thdb2dcp.h" +#include <cstddef> + thdb2dcp::thdb2dcp() { this->point = NULL; Index: therion-5.3.7/thscraplo.cxx =================================================================== --- therion-5.3.7.orig/thscraplo.cxx 2011-05-31 18:10:26.309303221 +0100 +++ therion-5.3.7/thscraplo.cxx 2011-05-31 18:11:13.621303221 +0100 @@ -27,6 +27,8 @@ #include "thscraplo.h" +#include <cstddef> + thscraplo::thscraplo() { this->next_line = NULL; Index: therion-5.3.7/thscrapen.cxx =================================================================== --- therion-5.3.7.orig/thscrapen.cxx 2011-05-31 18:10:26.317303221 +0100 +++ therion-5.3.7/thscrapen.cxx 2011-05-31 18:11:13.621303221 +0100 @@ -27,6 +27,8 @@ #include "thscrapen.h" +#include <cstddef> + thscrapen::thscrapen() { this->next_end = NULL; Index: therion-5.3.7/extern/lxMath.h =================================================================== --- therion-5.3.7.orig/extern/lxMath.h 2011-05-31 18:10:26.293303221 +0100 +++ therion-5.3.7/extern/lxMath.h 2011-05-31 18:11:13.621303221 +0100 @@ -31,6 +31,7 @@ // Standard libraries #ifndef LXDEPCHECK +#include <cstddef> #include <list> #include <vector> #include <map> Index: therion-5.3.7/thwarp.h =================================================================== --- therion-5.3.7.orig/thwarp.h 2011-05-31 18:10:26.277303221 +0100 +++ therion-5.3.7/thwarp.h 2011-05-31 18:11:13.621303221 +0100 @@ -32,6 +32,7 @@ #include "thpic.h" #include "thsketch.h" +#include <cstddef> class thwarp { Index: therion-5.3.7/extern/poly2tri/sweep/sweep_context.h =================================================================== --- therion-5.3.7.orig/extern/poly2tri/sweep/sweep_context.h 2011-05-31 18:11:20.237303221 +0100 +++ therion-5.3.7/extern/poly2tri/sweep/sweep_context.h 2011-05-31 18:11:44.145303221 +0100 @@ -32,6 +32,7 @@ #ifndef SWEEP_CONTEXT_H #define SWEEP_CONTEXT_H +#include <cstddef> #include <list> #include <vector> Index: therion-5.3.7/loch/lxMath.h =================================================================== --- therion-5.3.7.orig/loch/lxMath.h 2011-05-31 18:14:22.781303222 +0100 +++ therion-5.3.7/loch/lxMath.h 2011-05-31 18:14:44.793303222 +0100 @@ -31,6 +31,7 @@ // Standard libraries #ifndef LXDEPCHECK +#include <cstddef> #include <list> #include <vector> #include <map> Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/
+++ Wookey [2011-06-01 00:30 +0100]:
+++ Wookey [2011-05-31 03:49 +0100]:
The fact that the same file exists twice in the same sources and thus both copies have the same bug, seems like poor practice. Why have we got two copies? Are there more files like this?
Index: therion-5.3.7/extern/lxMath.h =================================================================== --- therion-5.3.7.orig/extern/lxMath.h 2011-05-31 18:10:26.293303221 +0100 +++ therion-5.3.7/extern/lxMath.h 2011-05-31 18:11:13.621303221 +0100 @@ -31,6 +31,7 @@
// Standard libraries #ifndef LXDEPCHECK +#include <cstddef> #include <list> #include <vector> #include <map> Index: therion-5.3.7/loch/lxMath.h =================================================================== --- therion-5.3.7.orig/loch/lxMath.h 2011-05-31 18:14:22.781303222 +0100 +++ therion-5.3.7/loch/lxMath.h 2011-05-31 18:14:44.793303222 +0100 @@ -31,6 +31,7 @@
// Standard libraries #ifndef LXDEPCHECK +#include <cstddef> #include <list> #include <vector> #include <map>
Wookey -- Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM http://wookware.org/
participants (2)
-
Bill Gee -
Wookey