Bug #354

Compilation error on Arch Linux

Added by Yannick Hold about 2 years ago. Updated about 2 years ago.

Status:NewStart date:02/19/2016
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Hello,

Out of the box, the Mitsuba renderer project doesn't compile on the current version of ArchLinux. The problem seems to be the latest version of Boost, which moved the files:
boost/spirit/home/phoenix/bind/bind_member_variable.hpp
boost/spirit/home/phoenix/bind/bind_member_function.hpp
boost/spirit/home/phoenix/statement/if.hpp
outside of the "spirit" package (referenced in src/bsdfs/irawan.h).

The annexed diff fixes the problem and compiles with Boost 1.60 .

I just created my account on the repository system, I can do a pull request if you wish.

Have a nice day,
Yannick

fix.txt Magnifier - Fix to compile on boost 1.60 (675 Bytes) Yannick Hold, 02/19/2016 03:25 pm

fix.txt Magnifier (675 Bytes) Yannick Hold, 02/19/2016 09:23 pm

fix_with_if.txt Magnifier (752 Bytes) Yannick Hold, 02/19/2016 09:36 pm

History

#1 Updated by Wenzel Jakob about 2 years ago

Would you be able to make a fix that has an #ifdef based on the version of Boost where these header files moved?
Thanks,
Wenzel

#2 Updated by Yannick Hold about 2 years ago

Of course, there you go. It compiles on my side with GCC 5.3.0. Haven't tried compiling with Collada support, though.

I realize the fix was already known in the ArchLinux community (just found this):
[[https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=mitsuba-hg]]
There is another fix for the Collada support, which I haven't tested. This AUR package doesn't work on my system, though, but I didn't investigate.

I see some headers used by Mitsuba are deprecated in Boost 1.60 (like ice_or.hpp). If you want, I can propose similar fixes for these issues.

Have a nice day,
Yannick

#3 Updated by Yannick Hold about 2 years ago

Oops, wrong file. Here's the right one!

#4 Updated by Wenzel Jakob about 2 years ago

Committed, thank you! With regards to the deprecated header file -- certainly, that would be very helpful. (I'm developing mainly on OSX with the older header files and don't get these warnings)

Best,
Wenzel

#5 Updated by Yannick Hold about 2 years ago

Thanks!

I just checked the deprecation warnings and they doesn't seem to come from Mitsuba but from within Boost... I guess it should be fine on the next version of Boost.

I realized that I use the git version of the repository, but cmake tries to get the revision number from mercurial commands, which fails and displays something generic instead. Would you be interested in incorporating GetGitRevisionDescription.cmake from https://github.com/rpavlik/cmake-modules into the project, or is the mercurial repository the official one?

#6 Updated by Mike Cashman about 2 years ago

This error is a bit more widespread than Boost 1.6.

I had the same error, for the same reason with Boost 1.59. I'm not sure when Boost made the change, but it was earlier than 1.6.

Adapting the original fix to the version of Boost I was using also allowed the compile to finish.

Also available in: Atom PDF