POV-Ray / povray

The Persistence of Vision Raytracer: http://www.povray.org/
GNU Affero General Public License v3.0
1.35k stars 282 forks source link

[BUILD][UNIX] #438

Open nellacod opened 2 years ago

nellacod commented 2 years ago

Summary Failure to build with boost 1.77.0

POV-Ray Version

Build Environment

Build Command Sequence

Pre-Build Output

Configure Output

Make Output

In file included from /usr/include/boost/math/common_factor.hpp:14,
                 from backend/scene/view.cpp:34:
/usr/include/boost/math/common_factor_ct.hpp:17:68: error: _Pragma takes a parenthesized string literal
   17 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_ct.hpp>");
      |                                                                    ^
In file included from /usr/include/boost/math/common_factor.hpp:15,
                 from backend/scene/view.cpp:34:
/usr/include/boost/math/common_factor_rt.hpp:14:68: error: _Pragma takes a parenthesized string literal
   14 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_rt.hpp>");
      |                                                                    ^
In file included from backend/scene/view.cpp:34:
/usr/include/boost/math/common_factor.hpp:18:65: error: _Pragma takes a parenthesized string literal
   18 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor.hpp>");
      |                                                                 ^
In file included from /usr/include/boost/smart_ptr/detail/sp_thread_sleep.hpp:22,
                 from /usr/include/boost/smart_ptr/detail/yield_k.hpp:23,
                 from /usr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp:14,
                 from /usr/include/boost/smart_ptr/detail/spinlock.hpp:42,
                 from /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:25,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:29,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/boost/date_time/time_clock.hpp:17,
                 from /usr/include/boost/thread/thread_time.hpp:9,
                 from /usr/include/boost/thread/lock_types.hpp:18,
                 from /usr/include/boost/thread/pthread/thread_data.hpp:12,
                 from /usr/include/boost/thread/thread_only.hpp:17,
                 from /usr/include/boost/thread/thread.hpp:12,
                 from /usr/include/boost/thread.hpp:13,
                 from backend/scene/view.cpp:32:
/usr/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
   36 | BOOST_PRAGMA_MESSAGE(
      | ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/math/common_factor_ct.hpp:15,
                 from /usr/include/boost/math/common_factor.hpp:14,
                 from backend/scene/view.cpp:34:
/usr/include/boost/math/common_factor_ct.hpp:17:1: error: ‘_Pragma’ does not name a type
   17 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_ct.hpp>");
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/math/common_factor_rt.hpp:14:1: error: ‘_Pragma’ does not name a type
   14 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_rt.hpp>");
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/math/common_factor.hpp:18:1: error: ‘_Pragma’ does not name a type
   18 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor.hpp>");
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:1232: backend/scene/view.o] Error 1
make[1]: Leaving directory '/tmp/SBo/povray-3.7.0.10/source'
make: *** [Makefile:645: all-recursive] Error 1

Additional context (optional)

Workaround (optional)

Suggested Solution (optional)

jhgoebbert commented 2 years ago
In file included from [..]/Boost/1.77.0-GCC-11.2.0/include/boost/math/common_factor.hpp:14,
                 from backend/scene/view.cpp:34:
[..]/Boost/1.77.0-GCC-11.2.0/include/boost/math/common_factor_ct.hpp:17:68: error: _Pragma takes a parenthesized string literal
   17 | BOOST_MATH_HEADER_DEPRECATED("<boost/integer/common_factor_ct.hpp>");
      |                                                                    ^
jhgoebbert commented 2 years ago

With Boost 1.78 POV-Ray compiles for me.

ivilata commented 2 years ago

As a temporary workaround when Boost can't be upgraded, one can drop Boost 1.78's math/tools/header_deprecated.hpp as povray/source/boost/math/tools/header_deprecated.hpp and the build seems to succeed too.