[Therion] Problem compiling Therion 6.1.7 on Fedora 38

Bill Gee bgee at campercaver.net
Mon May 15 18:56:09 CEST 2023


Arithmetic problems?!?!  If it's not one thing, it's another!

Thanks for your efforts.  I will be patient and see how things develop. 
For now I have a working installation of Therion 6.1.6, and I have no 
active cave map projects.

===============
Bill Gee

On 5/15/23 10:38, Matěj Plch wrote:
> It should be fixed in the master branch now, the problem was caused by
> the new version of GCC 13.1. However, with the same compiler there is
> an issue with floating-point arithmetics, so Therion now computes
> different results, we are investigating how to fix this.
> 
> so 13. 5. 2023 v 0:12 odesílatel Matěj Plch <plch.matej at gmail.com> napsal:
>>
>> Looks like there are for some reason missing includes, I will fix and test this on Fedora over the weekend.
>>
>> Dne pá 12. 5. 2023 20:12 uživatel Bill Gee <bgee at campercaver.net> napsal:
>>>
>>> Thanks!  That made a difference.  I still get an error, but it happens
>>> later in the process.  This happens after a bunch of other g++ commands
>>> have run.
>>>
>>> ====================== Paste text =============
>>> g++ -c -DIMG_API_VERSION=1 -Wall -DTHLINUX -O2 -DPROJ_VER=9
>>> -I/usr/include -Iextern -Iextern/shapelib -Iextern/quickhull -std=c++17
>>> -o thdb1d.o thdb1d.cxx
>>> In file included from extern/quickhull/QuickHull.hpp:10,
>>>                    from thdb1d.cxx:53:
>>> extern/quickhull/Structs/Mesh.hpp:41:30: error: ‘uint8_t’ in namespace
>>> ‘std’ does not name a type; did you mean ‘wint_t’?
>>>      41 |                         std::uint8_t
>>> m_isVisibleFaceOnCurrentIteration : 1;
>>>         |                              ^~~~~~~
>>>         |                              wint_t
>>> extern/quickhull/Structs/Mesh.hpp:42:30: error: ‘uint8_t’ in namespace
>>> ‘std’ does not name a type; did you mean ‘wint_t’?
>>>      42 |                         std::uint8_t m_inFaceStack : 1;
>>>         |                              ^~~~~~~
>>>         |                              wint_t
>>> extern/quickhull/Structs/Mesh.hpp:43:30: error: ‘uint8_t’ in namespace
>>> ‘std’ does not name a type; did you mean ‘wint_t’?
>>>      43 |                         std::uint8_t
>>> m_horizonEdgesOnCurrentIteration : 3; // Bit for each half edge assigned
>>> to this face, each being 0 or 1 depending on whether the edge belongs to
>>> horizon edge
>>>         |                              ^~~~~~~
>>>         |                              wint_t
>>> extern/quickhull/Structs/Mesh.hpp: In constructor
>>> ‘quickhull::MeshBuilder<T>::Face::Face()’:
>>> extern/quickhull/Structs/Mesh.hpp:50:42: error: class
>>> ‘quickhull::MeshBuilder<T>::Face’ does not have any field named
>>> ‘m_isVisibleFaceOnCurrentIteration’
>>>      50 |
>>> m_isVisibleFaceOnCurrentIteration(0),
>>>         |
>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> extern/quickhull/Structs/Mesh.hpp:51:42: error: class
>>> ‘quickhull::MeshBuilder<T>::Face’ does not have any field named
>>> ‘m_inFaceStack’
>>>      51 |                                          m_inFaceStack(0),
>>>         |                                          ^~~~~~~~~~~~~
>>> extern/quickhull/Structs/Mesh.hpp:52:42: error: class
>>> ‘quickhull::MeshBuilder<T>::Face’ does not have any field named
>>> ‘m_horizonEdgesOnCurrentIteration’
>>>      52 |
>>> m_horizonEdgesOnCurrentIteration(0)
>>>         |
>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> make: *** [Makefile:151: thdb1d.o] Error 1
>>> ================================ End of pasted text ================
>>>
>>> When I built therion 6.1.6 on Fedora 37, I used cmake instead of make.
>>> Trying that process, I get yet another error!
>>>
>>> ============== Begin pasted text ===============
>>> /home/bgee/Installs/therion-6.1.7/loch/lxFile.cxx: In member function
>>> ‘bool lxFile::HasAnyWalls()’:
>>> /home/bgee/Installs/therion-6.1.7/loch/lxFile.cxx:1345:30: error: no
>>> match for ‘operator!=’ (operand types are ‘lxFileSize’ and ‘<unnamed enum>’)
>>>    1345 |       if (shi->m_sectionType != LXFILE_SHOT_SECTION_NONE) {
>>>         |           ~~~~~~~~~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~~~~~~~~~
>>>         |                |                |
>>>         |                lxFileSize       <unnamed enum>
>>> /home/bgee/Installs/therion-6.1.7/loch/lxMath.h:77:6: note: candidate:
>>> ‘bool operator!=(const lxVec&, const lxVec&)’
>>>      77 | bool operator != ( const lxVec& p, const lxVec& q );
>>>         |      ^~~~~~~~
>>> /home/bgee/Installs/therion-6.1.7/loch/lxMath.h:77:33: note:   no known
>>> conversion for argument 1 from ‘lxFileSize’ to ‘const lxVec&’
>>>      77 | bool operator != ( const lxVec& p, const lxVec& q );
>>>         |                    ~~~~~~~~~~~~~^
>>> make[2]: *** [loch/CMakeFiles/common-utils.dir/build.make:76:
>>> loch/CMakeFiles/common-utils.dir/lxFile.cxx.o] Error 1
>>> make[1]: *** [CMakeFiles/Makefile2:3821:
>>> loch/CMakeFiles/common-utils.dir/all] Error 2
>>> make: *** [Makefile:146: all] Error 2
>>>
>>> =================== End pasted text ===============
>>>
>>> ===============
>>> Bill Gee
>>>
>>> On 5/12/23 12:40, Matěj Plch wrote:
>>>> Hi, Therion 6.1.7 does not include internal copy of fmt library, you
>>>> need to install package fmt-devel.
>>>>
>>>> Dne pá 12. 5. 2023 17:03 uživatel Bill Gee <bgee at campercaver.net
>>>> <mailto:bgee at campercaver.net>> napsal:
>>>>
>>>>      I gave it a shot today to see if I could duplicate Rodrigo's
>>>>      problem.  I
>>>>      got a completely different error:
>>>>
>>>>      ===========================
>>>>      [bgee at main2 build]$ cmake ..
>>>>      CMake Error at cmake/Dependencies.cmake:8 (find_package):
>>>>          By not providing "Findfmt.cmake" in CMAKE_MODULE_PATH this
>>>>      project has
>>>>          asked CMake to find a package configuration file provided by
>>>>      "fmt", but
>>>>          CMake did not find one.
>>>>
>>>>          Could not find a package configuration file provided by "fmt"
>>>>      with any of
>>>>          the following names:
>>>>
>>>>            fmtConfig.cmake
>>>>            fmt-config.cmake
>>>>
>>>>          Add the installation prefix of "fmt" to CMAKE_PREFIX_PATH or set
>>>>      "fmt_DIR"
>>>>          to a directory containing one of the above files.  If "fmt"
>>>>      provides a
>>>>          separate development package or SDK, be sure it has been installed.
>>>>      Call Stack (most recent call first):
>>>>          CMakeLists.txt:18 (include)
>>>>      ===============================
>>>>
>>>>      This is Fedora 38.  The compile of 6.1.6 on Fedora 37 worked correctly
>>>>      for me.  6.1.6 still works after the upgrade to Fedora 38.  I did not
>>>>      recompile it.
>>>>
>>>>
>>>>
>>>>      --
>>>>      ===============
>>>>      Bill Gee
>>>>      _______________________________________________
>>>>      Therion mailing list
>>>>      Therion at speleo.sk <mailto:Therion at speleo.sk>
>>>>      https://mailman.speleo.sk/listinfo/therion
>>>>      <https://mailman.speleo.sk/listinfo/therion>
>>>>
>>>>
>>>> _______________________________________________
>>>> Therion mailing list
>>>> Therion at speleo.sk
>>>> https://mailman.speleo.sk/listinfo/therion
>>> _______________________________________________
>>> Therion mailing list
>>> Therion at speleo.sk
>>> https://mailman.speleo.sk/listinfo/therion
> _______________________________________________
> Therion mailing list
> Therion at speleo.sk
> https://mailman.speleo.sk/listinfo/therion


More information about the Therion mailing list