-
Notifications
You must be signed in to change notification settings - Fork 54
1.3.6 build error on Fedora 30 (CGAL 4.14, gcc 9.0.1) #188
Comments
The code of SFCGAL uses several internal details of CGAL, and those details have changed. SFCGAL is not ready for CGAL-4.14, unfortunately. |
The first step to make the code compile is to use the flag @sloriot There is a compilation error in files you added recently:
|
Hi, This is breaking upgrages to Fedora 30, which is already released. Also, RHEL 8 is out very soon, and this will break more users. I mean, we need CGAL 4.14 support soon :( (FWIW, I am packaging RPMs for the PostgreSQL YUM/ZYPP repos) |
This is breaking build of SFCGAL in Homebrew as well, now that we have shipped GCC 9: Homebrew/homebrew-core#38890 |
Given no activity, and it's not the first time we've been blocked by SFCGAL from updating other software (#172) I will propose to Homebrew to remove it. It will, sadly, impact PostGIS functionality… but we currently have no other option. It's a bit sad that CGAL and its C++ wrapper cannot work together so they're kept in sync. |
Please try: #189 |
Together with |
@sloriot commented on May 19, 2019, 10:48 AM GMT+2:
I think SFCGAL headers could hardcode: #define CGAL_DO_NOT_USE_BOOST_MP 1
#define CGAL_DO_NOT_USE_GMPXX 1 The second macro, |
I've tried applying the patch at #189 and building with
|
You can add |
OK, thanks. I guess that's the lever of tinkering we're not going to be able to accept for distribution. Multiple patches, plus adding compiler flags (which should be defined in SFCGAL's own headers or build process if they need it)… it's simply too much. |
I'll update the PR to include that. |
Any updates? Fedora 30 users are also asking about this for some time. |
Thanks @vmora, PR update if you want to give it another try! |
@fxcoudert @devrimgunduz I've merged the fix proposed by @sloriot (sorry for the delay, I was away for a few days). I'll post a new point release if you confirm the last SFCGAL master compiles for you. |
Hi @mhugo , This patch fixes the build issue. Thanks! Waiting for the new point release. Cheers, Devrim |
@devrimgunduz Thanks for your test. A new release is out: https://github.com/Oslandia/SFCGAL/releases/tag/v1.3.7 |
Thanks! Rolling out new packages. Closing this issue. Cheers, Devrim |
Hi,
I'm getting this while building SFCGAL on Fedora 30. Any hints how I can fix it?
Thanks!
`/var/lib/pgsql/git/pgrpms/rpm/redhat/master/sfcgal/master/SFCGAL-1.3.6/src/Coordinate.cpp: In member function 'CGAL::Lazy_kernel_generic_base<CGAL::Simple_cartesian<boost::multiprecision::numberboost::multiprecision::backends::gmp_rational >, CGAL::Simple_cartesian<CGAL::Interval_nt >, CGAL::Cartesian_converter<CGAL::Simple_cartesian<boost::multiprecision::numberboost::multiprecision::backends::gmp_rational >, CGAL::Simple_cartesian<CGAL::Interval_nt > >, CGAL::Epeck>::FT SFCGAL::RoundVisitor::_roundFT(const FT&) const':
/var/lib/pgsql/git/pgrpms/rpm/redhat/master/sfcgal/master/SFCGAL-1.3.6/src/Coordinate.cpp:276:72: error: no matching function for call to 'round(boost::enable_if_c<true, boost::multiprecision::detail::expression<boost::multiprecision::detail::multiply_immediates, boost::multiprecision::numberboost::multiprecision::backends::gmp_rational, long int, void, void> >::type)'
276 | SFCGAL::round( v.exact() * _scaleFactor ),
| ^
In file included from /var/lib/pgsql/git/pgrpms/rpm/redhat/master/sfcgal/master/SFCGAL-1.3.6/include/SFCGAL/Coordinate.h:31,
from /var/lib/pgsql/git/pgrpms/rpm/redhat/master/sfcgal/master/SFCGAL-1.3.6/src/Coordinate.cpp:21:
/var/lib/pgsql/git/pgrpms/rpm/redhat/master/sfcgal/master/SFCGAL-1.3.6/include/SFCGAL/numeric.h:50:15: note: candidate: 'double SFCGAL::round(const double&)'
50 | inline double round( const double& v )
| ^~~~~
/var/lib/pgsql/git/pgrpms/rpm/redhat/master/sfcgal/master/SFCGAL-1.3.6/include/SFCGAL/numeric.h:50:36: note: no known conversion for argument 1 from 'boost::enable_if_c<true, boost::multiprecision::detail::expression<boost::multiprecision::detail::multiply_immediates, boost::multiprecision::numberboost::multiprecision::backends::gmp_rational, long int, void, void> >::type' {aka 'boost::multiprecision::detail::expression<boost::multiprecision::detail::multiply_immediates, boost::multiprecision::numberboost::multiprecision::backends::gmp_rational, long int, void, void>'} to 'const double&'
50 | inline double round( const double& v )
| ~~~~~~~~~~~~~~^
/var/lib/pgsql/git/pgrpms/rpm/redhat/master/sfcgal/master/SFCGAL-1.3.6/include/SFCGAL/numeric.h:86:23: note: candidate: 'CGAL::Gmpz SFCGAL::round(const CGAL::Gmpq&)'
86 | SFCGAL_API CGAL::Gmpz round( const CGAL::Gmpq& v ) ;
| ^~~~~
/var/lib/pgsql/git/pgrpms/rpm/redhat/master/sfcgal/master/SFCGAL-1.3.6/include/SFCGAL/numeric.h:86:48: note: no known conversion for argument 1 from 'boost::enable_if_c<true, boost::multiprecision::detail::expression<boost::multiprecision::detail::multiply_immediates, boost::multiprecision::numberboost::multiprecision::backends::gmp_rational, long int, void, void> >::type' {aka 'boost::multiprecision::detail::expression<boost::multiprecision::detail::multiply_immediates, boost::multiprecision::numberboost::multiprecision::backends::gmp_rational, long int, void, void>'} to 'const CGAL::Gmpq&'
86 | SFCGAL_API CGAL::Gmpz round( const CGAL::Gmpq& v ) ;
| ~~~~~~~~~~~~~~~~~~^
make[3]: *** [src/CMakeFiles/SFCGAL.dir/build.make:66: src/CMakeFiles/SFCGAL.dir/Coordinate.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/var/lib/pgsql/git/pgrpms/rpm/redhat/master/sfcgal/master/SFCGAL-1.3.6'
make[2]: *** [CMakeFiles/Makefile2:95: src/CMakeFiles/SFCGAL.dir/all] Error 2
`
The text was updated successfully, but these errors were encountered: