cmbi / mrs

Maarten's Retrieval Service
Boost Software License 1.0
0 stars 3 forks source link

mrs doesn't work with boost 1.55 #14

Closed cbaakman closed 10 years ago

cbaakman commented 10 years ago

We need to make mrs compile with boost version 1.55. Right now, mrs's minimal boost version is 1.48.

jonblack commented 10 years ago

This is probably due to incompatible changes made to boost filesystem. The docs for 1.55 note the following:

This is Version 3 of the Filesystem library. Version 2 is not longer supported. 1.49.0 was the last release of Boost to supply Version 2.

We also need to be aware of which other projects use boost because we need to update the jenkins machine.

cbaakman commented 10 years ago

Today, I've built both libzeep 3.0.2 and the latest mrs version from the development branch. (https://github.com/cmbi/mrs/commit/ac00414a603079a073ebb95818fee38e4619bee9), using boost-1.55.0's include files and linking against boost-1.55.0's shared objects.

Compiling was successful and the mrs binary runs without errors. output of ldd confirms that both libzeep and mrs use version 1.55.0 of boost.

ldd /usr/local/bin/mrs
    linux-vdso.so.1 =>  (0x00007fff6a3ff000)
    libboost_system.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_system.so.1.55.0 (0x00007f2164237000)
    libboost_thread.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_thread.so.1.55.0 (0x00007f216401f000)
    libboost_filesystem.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_filesystem.so.1.55.0 (0x00007f2163e08000)
    libboost_regex.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_regex.so.1.55.0 (0x00007f2163afd000)
    libboost_math_c99.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_math_c99.so.1.55.0 (0x00007f21638ed000)
    libboost_math_c99f.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_math_c99f.so.1.55.0 (0x00007f21636df000)
    libboost_program_options.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_program_options.so.1.55.0 (0x00007f216346b000)
    libboost_date_time.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_date_time.so.1.55.0 (0x00007f216325a000)
    libboost_iostreams.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_iostreams.so.1.55.0 (0x00007f2163041000)
    libboost_timer.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_timer.so.1.55.0 (0x00007f2162e3d000)
    libboost_random.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_random.so.1.55.0 (0x00007f2162c3b000)
    libboost_chrono.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_chrono.so.1.55.0 (0x00007f2162a33000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2162791000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2162575000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f216236c000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2162155000)
    libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f2161f45000)
    libzeep.so.3.0 => /usr/local/lib/libzeep.so.3.0 (0x00007f2161b7c000)
    liblog4cpp.so.5 => /usr/lib/liblog4cpp.so.5 (0x00007f2161939000)
    libperl.so.5.14 => /usr/lib/libperl.so.5.14 (0x00007f21615b8000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f21613b3000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2161028000)
    libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f2160df1000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f2160bda000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f21608d3000)
    libicuuc.so.48 => /usr/lib/x86_64-linux-gnu/libicuuc.so.48 (0x00007f2160761000)
    libicui18n.so.48 => /usr/lib/x86_64-linux-gnu/libicui18n.so.48 (0x00007f2160593000)
    libicudata.so.48 => /usr/lib/x86_64-linux-gnu/libicudata.so.48 (0x00007f215f422000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f216443c000)
    libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f215f209000)
ldd /usr/local/lib/libzeep.so.3.0
    linux-vdso.so.1 =>  (0x00007fff1cbff000)
    libboost_system.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_system.so.1.55.0 (0x00007f243531b000)
    libboost_thread.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_thread.so.1.55.0 (0x00007f2435103000)
    libboost_filesystem.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_filesystem.so.1.55.0 (0x00007f2434eec000)
    libboost_regex.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_regex.so.1.55.0 (0x00007f2434be1000)
    libboost_math_c99.so.1.55.0 => /home/cbaakman/boost_1_55_0/stage/lib/libboost_math_c99.so.1.55.0 (0x00007f24349d1000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f24346a9000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f243448d000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f243420b000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f2433ff4000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2433c69000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f24358e8000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f2433a61000)
    libicuuc.so.48 => /usr/lib/x86_64-linux-gnu/libicuuc.so.48 (0x00007f24338ef000)
    libicui18n.so.48 => /usr/lib/x86_64-linux-gnu/libicui18n.so.48 (0x00007f2433721000)
    libicudata.so.48 => /usr/lib/x86_64-linux-gnu/libicudata.so.48 (0x00007f24325b0000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f24323ab000)

I think this solves the issue.

jonblack commented 10 years ago

The problem was caused by having the libraries link in the incorrect order (libzeep must come before boost). I solved this in commit 971fd144e9e84b5d528a47362cb5c55309a50731.