Bug 1843142
Summary: | F33FailsToInstall: slic3r | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Igor Raits <igor.raits> |
Component: | slic3r | Assignee: | Jonathan Wakely <jwakely> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | jwakely, mhroncok, perl-devel |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | slic3r-1.3.0-14.fc33 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2020-06-02 23:13:27 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1803234, 1803235 |
Description
Igor Raits
2020-06-02 17:43:01 UTC
I never got a slic3r fails to build with new boost heads up :/ Trying now, but I kinda suspect it will fail as prusa-slicer did. g++ -I/usr/lib/perl5/CORE -fPIC -xc++ -Isrc/libslic3r -D_GLIBCXX_USE_C99 -DHAS_BOOL -DNOGDI -DSLIC3RXS -DBOOST_ASIO_DISABLE_KQUEUE -Dexprtk_disable_rtl_io_file -Dexprtk_disable_return_statement -Dexprtk_disable_rtl_vecops -Dexprtk_disable_string_capabilities -Dexprtk_disable_enhanced_features -U__STRICT_ANSI__ -std=c++11 -DBOOST_LIBS -DNDEBUG -O -Wno-undefined-var-template -Isrc -Ibuildtmp -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -o src/libslic3r/GCode/CoolingBuffer.o src/libslic3r/GCode/CoolingBuffer.cpp In file included from src/libslic3r/TriangleMesh.hpp:5, from src/libslic3r/Model.hpp:9, from src/libslic3r/Print.hpp:14, from src/libslic3r/GCode.hpp:11, from src/libslic3r/GCode/CoolingBuffer.hpp:5, from src/libslic3r/GCode/CoolingBuffer.cpp:1: src/admesh/stl.h:29:10: fatal error: boost/detail/endian.hpp: No such file or directory 29 | #include <boost/detail/endian.hpp> | ^~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. In file included from src/admesh/stl.h:29, from src/libslic3r/TriangleMesh.hpp:5, from src/libslic3r/Model.hpp:9, from src/libslic3r/Print.hpp:14, from src/libslic3r/PrintRegion.cpp:1: /usr/include/boost/endian/endian.hpp:14:3: error: #error "<boost/endian/endian.hpp> is deprecated. Define BOOST_ENDIAN_DEPRECATED_NAMES to use." 14 | # error "<boost/endian/endian.hpp> is deprecated. Define BOOST_ENDIAN_DEPRECATED_NAMES to use." | ^~~~~ So even if I replace: #include <boost/detail/endian.hpp> With: #define BOOST_ENDIAN_DEPRECATED_NAMES #include <boost/endian/endian.hpp> I still get to this: #ifndef BOOST_LITTLE_ENDIAN #error "admesh works correctly on little endian machines only!" #endif And that fails even on x86_64: g++ -I/usr/lib64/perl5/CORE -fPIC -xc++ -Isrc/libslic3r -D_GLIBCXX_USE_C99 -DHAS_BOOL -DNOGDI -DSLIC3RXS -DBOOST_ASIO_DISABLE_KQUEUE -Dexprtk_disable_rtl_io_file -Dexprtk_disable_return_statement -Dexprtk_disable_rtl_vecops -Dexprtk_disable_string_capabilities -Dexprtk_disable_enhanced_features -U__STRICT_ANSI__ -std=c++11 -DBOOST_LIBS -DNDEBUG -O -Wno-undefined-var-template -Isrc -Ibuildtmp -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -o src/libslic3r/IO.o src/libslic3r/IO.cpp In file included from src/libslic3r/TriangleMesh.hpp:5, from src/libslic3r/Model.hpp:9, from src/libslic3r/IO.hpp:5, from src/libslic3r/IO.cpp:1: src/admesh/stl.h:33:2: error: #error "admesh works correctly on little endian machines only!" 33 | #error "admesh works correctly on little endian machines only!" | ^~~~~ In file included from /usr/include/boost/config/header_deprecated.hpp:18, from /usr/include/boost/endian/endian.hpp:17, from src/admesh/stl.h:30, from src/libslic3r/TriangleMesh.hpp:5, from src/libslic3r/Model.hpp:9, from src/libslic3r/IO.hpp:5, from src/libslic3r/IO.cpp:1: /usr/include/boost/endian/endian.hpp:19:1: note: '#pragma message: This header is deprecated. Use <boost/endian/arithmetic.hpp> instead.' 19 | BOOST_HEADER_DEPRECATED( "<boost/endian/arithmetic.hpp>" ) | ^~~~~~~~~~~~~~~~~~~~~~~ cc1plus: note: unrecognized command-line option '-Wno-undefined-var-template' may have been intended to silence earlier diagnostics error building src/libslic3r/IO.o from 'src/libslic3r/IO.cpp' at /usr/share/perl5/vendor_perl/ExtUtils/CBuilder/Base.pm line 185. Redi, could you please help? Using Boost.Endian just to detect if the CPU is little endian is unnecessary. I'm testing this: --- Slic3r-1.3.0/xs/src/admesh/stl.h~ 2020-06-02 21:36:34.816574974 +0100 +++ Slic3r-1.3.0/xs/src/admesh/stl.h 2020-06-02 21:36:37.553576616 +0100 @@ -26,9 +26,8 @@ #include <stdio.h> #include <stdint.h> #include <stddef.h> -#include <boost/detail/endian.hpp> -#ifndef BOOST_LITTLE_ENDIAN +#if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ #error "admesh works correctly on little endian machines only!" #endif Ugh, and this package uses -U__STRICT_ANSI__ -std=c++11 which is idiotic. If you don't want strict mode, use -std=gnu++11 instead of -std=c++11. After fixing lots of uses of boost::bind without including the relevant header, it now fails with: src/libslic3r/Config.cpp:16:10: fatal error: boost/nowide/cenv.hpp: No such file or directory 16 | #include <boost/nowide/cenv.hpp> | ^~~~~~~~~~~~~~~~~~~~~~~ I think I'm going to have to patch boost-1.73.0 to add that header even though it isn't upstream. Building slic3r-1.3.0-14.fc33 for rawhide Created task: 45332133 Task info: https://koji.fedoraproject.org/koji/taskinfo?taskID=45332133 Thank you so much! Side note: Upstream is aware of the issues and the patches: https://github.com/slic3r/Slic3r/issues/4967 |