Walkthrough: Building Luxrays on Ubuntu

Discussion and help for Compilation problems and platform portability.

Moderator: coordinators

Re: Walkthrough: Building Luxrays on Ubuntu

Postby haraldthi » Tue Mar 06, 2012 4:01 am

Hah! That helped! Thanks! (Now for the rest.)
haraldthi
 
Posts: 6
Joined: Mon Jan 02, 2012 6:33 pm

Re: Walkthrough: Building Luxrays on Ubuntu

Postby haraldthi » Tue Mar 06, 2012 8:00 am

Next problem: boost

I have boost 1.48 installed on system and that doesn't compile very well for luxrender so I've downloaded and compiled a boost 1.43 on /home/harald/src/luxrender/boost/boost_1_43_0/ with PREFIX=/home/harald/usr so it installs on /home/harald/usr/lib etc. Python3 and freeglut is installed with the same PREFIX (and $HOME/usr/bin is added to PATH in .profile), not to confuse system libraries with my own projects.

In order tell cmake to use my local boost 1.43 I created a Config_Tutorial.cmake (and even tried to make the paths absolute to make sure they are right):

harald@jeb:~/src/luxrender/luxrays$ cat cmake/SpecializedConfig/Config_Tutorial.cmake
set(BOOST_SEARCH_PATH "/home/harald/src/luxrender/boost/boost_1_43_0")
set(GLUT_SEARCH_PATH "/home/harald/src/luxrender/freeglut/freeglut-2.8.0")

harald@jeb:~/src/luxrender/luxrays$ ls /home/harald/src/luxrender/boost/boost_1_43_0
bin.v2 boost.png index.htm LICENSE_1_0.txt rst.css ...
harald@jeb:~/src/luxrender/luxrays$ ls /home/harald/src/luxrender/freeglut/freeglut-2.8.0
aclocal.m4 freeglut.dsp LISEZ_MOI ...
(both compiled successfully)

I still get this result:

harald@jeb:~/src/luxrender/luxrays$ rm CMakeCache.txt
harald@jeb:~/src/luxrender/luxrays$ cmake -DLUXRAYS_CUSTOM_CONFIG=Config_Tutorial.cmake
...
-- Using custom build config: Config_Tutorial.cmake
CMake Error at Configuration.cmake:90 (INCLUDE):
include could not find load file:

Config_Tutorial.cmake
Call Stack (most recent call first):
CMakeLists.txt:55 (INCLUDE)
... (goes on without using Config_Tutorial.cmake)

However, copying Config_Tutorial.cmake to build root works better:
harald@jeb:~/src/luxrender/luxrays$ cp cmake/SpecializedConfig/Config_Tutorial.cmake .
harald@jeb:~/src/luxrender/luxrays$ rm CMakeCache.txt
harald@jeb:~/src/luxrender/luxrays$ cmake -DLUXRAYS_CUSTOM_CONFIG=Config_Tutorial.cmake
-- CMAKE VERSION DETECTED 2.8.7
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Using custom build config: Config_Tutorial.cmake
-- Building mode: Release
-- Looking for FreeImage...
-- checking for module 'freeimage'
-- package 'freeimage' not found
-- FreeImage_INCLUDE_DIR NAMES /usr/include
-- FreeImage_LIBRARY_DBG NAMES FreeImagefreeimageFreeImageLibfreeimageLib
-- Found FreeImage: optimized;/usr/lib/libfreeimage.so;debug;/usr/lib/libfreeimage.so
-- Boost version: 1.43.0
-- Found the following Boost libraries:
-- thread
-- filesystem
-- system
-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/i386-linux-gnu/libX11.so
-- Found OpenGL: /usr/lib/i386-linux-gnu/libGL.so
-- Found Doxygen: /usr/bin/doxygen
-- Found Doxygen and generating SLG documentation
-- Doxygen SLG output:/html/index.html
-- Found dot
-- Building SLG2 too - this will require OpenCL
-- Found Doxygen and generating SLG documentation
-- Doxygen SLG output:/html/index.html
-- Found dot
-- Configuring done
-- Generating done
-- Build files have been written to: /home/harald/src/luxrender/luxrays

Now for the make:
harald@jeb:~/src/luxrender/luxrays$ make
Scanning dependencies of target luxrays
...
[ 40%] Building CXX object src/CMakeFiles/luxrays.dir/utils/properties.cpp.o
Linking CXX static library ../lib/libluxrays.a
[ 50%] Built target luxrays
Scanning dependencies of target benchsimple
[ 51%] Building CXX object samples/benchsimple/CMakeFiles/benchsimple.dir/benchsimple.cpp.o
Linking CXX executable ../../bin/benchsimple
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::exists<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&) [clone .constprop.433]: error: undefined reference to 'boost::system::get_system_category()'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::exists<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&) [clone .constprop.433]: error: undefined reference to 'boost::filesystem::detail::status_api(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::system::error_code&)'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::create_directories<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&) [clone .constprop.426]: error: undefined reference to 'boost::system::get_generic_category()'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function luxrays::utils::oclKernelPersistentCache::Compile(cl::Context&, cl::Device&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*): error: undefined reference to 'boost::filesystem::detail::file_size_api(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::is_directory<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&): error: undefined reference to 'boost::system::get_system_category()'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::is_directory<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&): error: undefined reference to 'boost::filesystem::detail::status_api(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::system::error_code&)'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::create_directory<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&): error: undefined reference to 'boost::filesystem::detail::create_directory_api(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function bool boost::filesystem::detail::remove_aux<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&, boost::filesystem::file_status): error: undefined reference to 'boost::filesystem::detail::remove_api(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::remove<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&): error: undefined reference to 'boost::system::get_system_category()'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::remove<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&): error: undefined reference to 'boost::filesystem::detail::symlink_status_api(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::system::error_code&)'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function _GLOBAL__sub_I_utils.cpp: error: undefined reference to 'boost::system::get_system_category()'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function _GLOBAL__sub_I_utils.cpp: error: undefined reference to 'boost::system::get_generic_category()'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function _GLOBAL__sub_I_utils.cpp: error: undefined reference to 'boost::system::get_generic_category()'
../../lib/libluxrays.a(utils.cpp.o):utils.cpp:function _GLOBAL__sub_I_utils.cpp: error: undefined reference to 'boost::system::get_generic_category()'
collect2: ld returned 1 exit status
make[2]: *** [bin/benchsimple] Error 1
make[1]: *** [samples/benchsimple/CMakeFiles/benchsimple.dir/all] Error 2
make: *** [all] Error 2

Is it something I've forgotten here too?
haraldthi
 
Posts: 6
Joined: Mon Jan 02, 2012 6:33 pm

Re: Walkthrough: Building Luxrays on Ubuntu

Postby Dade » Tue Mar 06, 2012 8:08 am

haraldthi wrote:Next problem: boost


You could try to add a:

ADD_DEFINITIONS(-DBOOST_FILESYSTEM_VERSION=2)

like in: http://src.luxrender.net/lux/file/914f1 ... cmake#l154

I guess 1.48 uses the new BOOST_FILESYSTEM.
User avatar
Dade
Developer
 
Posts: 4800
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: Walkthrough: Building Luxrays on Ubuntu

Postby haraldthi » Tue Mar 06, 2012 10:32 am

Dade wrote:
haraldthi wrote:Next problem: boost


You could try to add a:

ADD_DEFINITIONS(-DBOOST_FILESYSTEM_VERSION=2)

like in: http://src.luxrender.net/lux/file/914f1 ... cmake#l154

I guess 1.48 uses the new BOOST_FILESYSTEM.


That's actually included in http://src.luxrender.net/luxrays/file/5 ... .cmake#l62 (I'm using the latest source code).

Trying cmake without changing the settings gives
harald@jeb:~/src/luxrender/luxrays$ rm CMakeCache.txt
harald@jeb:~/src/luxrender/luxrays$ cmake .
-- CMAKE VERSION DETECTED 2.8.7
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Building mode: Release
-- Looking for FreeImage...
-- checking for module 'freeimage'
-- package 'freeimage' not found
-- FreeImage_INCLUDE_DIR NAMES /usr/include
-- FreeImage_LIBRARY_DBG NAMES FreeImagefreeimageFreeImageLibfreeimageLib
-- Found FreeImage: optimized;/usr/lib/libfreeimage.so;debug;/usr/lib/libfreeimage.so
-- Boost version: 1.48.0
-- Found the following Boost libraries:
-- thread
-- filesystem
-- system
-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/i386-linux-gnu/libX11.so
-- Found OpenGL: /usr/lib/i386-linux-gnu/libGL.so
-- Found Doxygen: /usr/bin/doxygen
-- Found Doxygen and generating SLG documentation
-- Doxygen SLG output:/html/index.html
-- Found dot
-- Building SLG2 too - this will require OpenCL
-- Found Doxygen and generating SLG documentation
-- Doxygen SLG output:/html/index.html
-- Found dot
-- Configuring done
-- Generating done
-- Build files have been written to: /home/harald/src/luxrender/luxrays
harald@jeb:~/src/luxrender/luxrays$ make
Scanning dependencies of target luxrays
[ 1%] Building CXX object src/CMakeFiles/luxrays.dir/accelerators/bvhaccel.cpp.o
...
[ 40%] Building CXX object src/CMakeFiles/luxrays.dir/utils/properties.cpp.o
Linking CXX static library ../lib/libluxrays.a
[ 50%] Built target luxrays
Scanning dependencies of target benchsimple
[ 51%] Building CXX object samples/benchsimple/CMakeFiles/benchsimple.dir/benchsimple.cpp.o
Linking CXX executable ../../bin/benchsimple
[ 51%] Built target benchsimple
Scanning dependencies of target slg
[ 52%] Building CXX object samples/smallluxgpu/CMakeFiles/slg.dir/displayfunc.cpp.o
In file included from /home/harald/src/luxrender/luxrays/samples/smallluxgpu/smalllux.h:43:0,
from /home/harald/src/luxrender/luxrays/samples/smallluxgpu/slgscene.h:29,
from /home/harald/src/luxrender/luxrays/samples/smallluxgpu/renderconfig.h:27,
from /home/harald/src/luxrender/luxrays/samples/smallluxgpu/displayfunc.cpp:40:
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h: In function ‘void luxrays::AtomicAdd(float*, float)’:
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h:46:32: error: ‘boost::interprocess::detail’ has not been declared
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h: In function ‘void luxrays::AtomicAdd(unsigned int*, unsigned int)’:
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h:60:23: error: ‘boost::interprocess::detail’ has not been declared
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h: In function ‘void luxrays::AtomicInc(unsigned int*)’:
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h:65:23: error: ‘boost::interprocess::detail’ has not been declared
make[2]: *** [samples/smallluxgpu/CMakeFiles/slg.dir/displayfunc.cpp.o] Error 1
make[1]: *** [samples/smallluxgpu/CMakeFiles/slg.dir/all] Error 2
make: *** [all] Error 2

which actually is a bit further. (I didn't notice that!) (The dwarwes «off we go»-song from Disneys «Snow white»...)
haraldthi
 
Posts: 6
Joined: Mon Jan 02, 2012 6:33 pm

Re: Walkthrough: Building Luxrays on Ubuntu

Postby Dade » Tue Mar 06, 2012 12:36 pm

haraldthi wrote:[ 52%] Building CXX object samples/smallluxgpu/CMakeFiles/slg.dir/displayfunc.cpp.o
In file included from /home/harald/src/luxrender/luxrays/samples/smallluxgpu/smalllux.h:43:0,
from /home/harald/src/luxrender/luxrays/samples/smallluxgpu/slgscene.h:29,
from /home/harald/src/luxrender/luxrays/samples/smallluxgpu/renderconfig.h:27,
from /home/harald/src/luxrender/luxrays/samples/smallluxgpu/displayfunc.cpp:40:
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h: In function ‘void luxrays::AtomicAdd(float*, float)’:
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h:46:32: error: ‘boost::interprocess::detail’ has not been declared
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h: In function ‘void luxrays::AtomicAdd(unsigned int*, unsigned int)’:
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h:60:23: error: ‘boost::interprocess::detail’ has not been declared
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h: In function ‘void luxrays::AtomicInc(unsigned int*)’:
/home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h:65:23: error: ‘boost::interprocess::detail’ has not been declared
make[2]: *** [samples/smallluxgpu/CMakeFiles/slg.dir/displayfunc.cpp.o] Error 1
make[1]: *** [samples/smallluxgpu/CMakeFiles/slg.dir/all] Error 2
make: *** [all] Error 2

which actually is a bit further. (I didn't notice that!) (The dwarwes «off we go»-song from Disneys «Snow white»...)


This is wired, atomic.hpp is included at the beginning of /home/harald/src/luxrender/luxrays/include/luxrays/utils/core/atomic.h and it includes (in my ubuntu boost 1.46.1) the definitions the compiler is complaining about.

Can you check if the file "boost/interprocess/detail/atomic.hpp" includes the definition, for instance, of boost::interprocess::detail::atomic_cas32() :?:
User avatar
Dade
Developer
 
Posts: 4800
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: Walkthrough: Building Luxrays on Ubuntu

Postby jeanphi » Tue Mar 06, 2012 12:45 pm

Hi,

When using Boost 1.48 or newer, boost::interprocess::detail has been renamed to boost::interprocess::ipcdetail, you need to change every occurence in the source and it then works flawlessly.

Jeanphi
jeanphi
Developer
 
Posts: 6580
Joined: Mon Jan 14, 2008 7:21 am

Re: Walkthrough: Building Luxrays on Ubuntu

Postby homer » Tue Mar 06, 2012 1:03 pm

Btw. Boost 1.47 is the last boost version with filesystem 2: http://www.boost.org/doc/libs/1_47_0/li ... /index.htm
So the latest boost for now is 1.47 until the filesystem code is updated to filesystem 3
User avatar
homer
 
Posts: 89
Joined: Wed Mar 26, 2008 11:28 pm
Location: Germany

Re: Walkthrough: Building Luxrays on Ubuntu

Postby haraldthi » Tue Mar 06, 2012 1:56 pm

jeanphi wrote:When using Boost 1.48 or newer, boost::interprocess::detail has been renamed to boost::interprocess::ipcdetail, you need to change every occurence in the source and it then works flawlessly.


Well, there's actually very few of those! Just the ones found in the include/luxrays/utils/core/atomic.h debug output.
With those changes, it compiled without complaint.
If it's really this simple to make it work for boost 1.48, may I suggest a check for boost version for each of these lines, so the right command is issued?

Here's the diff, anyway:

harald@jeb:~/src/luxrender/luxrays$ hg diff
diff -r 53af1dc7ae52 include/luxrays/utils/core/atomic.h
--- a/include/luxrays/utils/core/atomic.h Mon Mar 05 17:13:47 2012 +0100
+++ b/include/luxrays/utils/core/atomic.h Tue Mar 06 19:51:25 2012 +0100
@@ -43,7 +43,7 @@

oldVal.f = *val;
newVal.f = oldVal.f + delta;
- } while (boost::interprocess::detail::atomic_cas32(((boost::uint32_t *)val), newVal.i, oldVal.i) != oldVal.i);
+ } while (boost::interprocess::ipcdetail::atomic_cas32(((boost::uint32_t *)val), newVal.i, oldVal.i) != oldVal.i);
}

inline void AtomicAdd(unsigned int *val, const unsigned int delta) {
@@ -55,14 +55,14 @@
__asm__ __volatile__("pause\n");
#endif
newVal = *val + delta;
- } while (boost::interprocess::detail::atomic_cas32(((boost::uint32_t*)val), newVal, *val) != *val);
+ } while (boost::interprocess::ipcdetail::atomic_cas32(((boost::uint32_t*)val), newVal, *val) != *val);
#else
- boost::interprocess::detail::atomic_add32(((boost::uint32_t *)val), (boost::uint32_t)delta);
+ boost::interprocess::ipcdetail::atomic_add32(((boost::uint32_t *)val), (boost::uint32_t)delta);
#endif
}

inline void AtomicInc(unsigned int *val) {
- boost::interprocess::detail::atomic_inc32(((boost::uint32_t *)val));
+ boost::interprocess::ipcdetail::atomic_inc32(((boost::uint32_t *)val));
}

}

Thanks! Need luxblend25 too, at least, but this is forwards!
haraldthi
 
Posts: 6
Joined: Mon Jan 02, 2012 6:33 pm

Re: Walkthrough: Building Luxrays on Ubuntu

Postby Dade » Wed Mar 07, 2012 4:08 am

Does Boost have a VERSION preprocessor symbol ? Just to add a couple of #ifdef to fix the problem.
User avatar
Dade
Developer
 
Posts: 4800
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: Walkthrough: Building Luxrays on Ubuntu

Postby jeanphi » Wed Mar 07, 2012 5:24 am

Hi,

Look out in boost/version.hpp.

Jeanphi
jeanphi
Developer
 
Posts: 6580
Joined: Mon Jan 14, 2008 7:21 am

PreviousNext

Return to Compilation & Portability

Who is online

Users browsing this forum: Bing [Bot] and 0 guests