Compilation error make_binary_object

Bug #237321 reported by Andrei B
6
Affects Status Importance Assigned to Milestone
EncFS
New
Undecided
Unassigned

Bug Description

/bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../intl -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -D__STDC_FORMAT_MACROS -DRLOG_COMPONENT="encfs" -I/usr/include/boost-1_35 -DLOCALEDIR=\"/usr/share/locale\" -W -Wall -Wpointer-arith -Wwrite-strings -g -O2 -pthread -MT FileUtils.lo -MD -MP -MF .deps/FileUtils.Tpo -c -o FileUtils.lo FileUtils.cpp
 g++ -DHAVE_CONFIG_H -I. -I.. -I../intl -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -D__STDC_FORMAT_MACROS -DRLOG_COMPONENT=encfs -I/usr/include/boost-1_35 -DLOCALEDIR=\"/usr/share/locale\" -W -Wall -Wpointer-arith -Wwrite-strings -g -O2 -pthread -MT FileUtils.lo -MD -MP -MF .deps/FileUtils.Tpo -c FileUtils.cpp -fPIC -DPIC -o .libs/FileUtils.o
FileUtils.cpp: In function 'void boost::serialization::load(Archive&, EncFSConfig&, unsigned int)':
FileUtils.cpp:164: error: there are no arguments to 'make_binary_object' that depend on a template parameter, so a declaration of 'make_binary_object' must be available
FileUtils.cpp:164: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
FileUtils.cpp: In function 'void boost::serialization::save(Archive&, const EncFSConfig&, unsigned int) [with Archive = boost::archive::xml_oarchive]':

Revision history for this message
Andrei B (andrei-srr) wrote :

Fixed with including serialization/binary_object.hpp, but :

/bin/sh ../libtool --tag=CXX --mode=link g++ -DRLOG_COMPONENT="encfs" -I/usr/include/boost-1_35 -DLOCALEDIR=\"/usr/share/locale\" -W -Wall -Wpointer-arith -Wwrite-strings -g -O2 -pthread -o encfs encfs.o openssl.o main.o libencfs.la -lrlog -lssl -lcrypto -ldl -lfuse -lboost_serialization-gcc41-mt-1_35
g++ -DRLOG_COMPONENT=encfs -I/usr/include/boost-1_35 -DLOCALEDIR=\"/usr/share/locale\" -W -Wall -Wpointer-arith -Wwrite-strings -g -O2 -pthread -o .libs/encfs encfs.o openssl.o main.o ./.libs/libencfs.so /usr/lib/librlog.so -lssl -lcrypto -ldl /usr/lib/libfuse.so -lboost_serialization-gcc41-mt-1_35
./.libs/libencfs.so: undefined reference to `boost::system::get_posix_category()'
./.libs/libencfs.so: undefined reference to `boost::system::get_system_category()'
collect2: ld returned 1 exit status

Revision history for this message
Andrei B (andrei-srr) wrote :

Some more warnings :
configure: WARNING: BOOST_CPPFLAGS -I/usr/include/boost-1_35
...
config.status: WARNING: po/Makefile.in.in seems to ignore the --datarootdir setting

Revision history for this message
Andrei B (andrei-srr) wrote :

Tried trunk :

make -f Makefile.dist
aclocal
/usr/share/aclocal/nspr.m4:8: warning: underquoted definition of AM_PATH_NSPR
  run info '(automake)Extending aclocal'
  or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
/usr/share/aclocal/imlib.m4:9: warning: underquoted definition of AM_PATH_IMLIB
/usr/share/aclocal/imlib.m4:167: warning: underquoted definition of AM_PATH_GDK_IMLIB
/usr/share/aclocal/audiofile.m4:12: warning: underquoted definition of AM_PATH_AUDIOFILE
/usr/share/aclocal/aalib.m4:12: warning: underquoted definition of AM_PATH_AALIB
autoheader
automake
configure.ac: required file `./install-sh' not found
configure.ac: required file `./missing' not found
encfs/Makefile.am: required file `./depcomp' not found
configure.ac:25: required file `./config.guess' not found
configure.ac:25: required file `./config.sub' not found
make: *** [all] Error 1

Revision history for this message
Valient Gough (vgough) wrote :

Try "autoreconf -if" when building the SVN trunk, then run the configure script.

Revision history for this message
Michal Hrusecky (miska-atrey) wrote :

Same happened to me with current trunk. Tried "autoreconf -if", then configure. make fails with:

libtool: link: g++ -DRLOG_COMPONENT=encfs -I/usr/include -DLOCALEDIR=\"/usr/local/share/locale\" -W -Wall -Wpointer-arith -Wwrite-strings -g -O2 -pthread -o .libs/encfs encfs.o main.o ./.libs/libencfs.so /usr/lib64/librlog.so -lssl -lcrypto /usr/lib64/libfuse.so -lrt -ldl -lboost_serialization-mt-s -lboost_filesystem-mt-s -pthread
./.libs/libencfs.so: undefined reference to `boost::system::get_posix_category()'
./.libs/libencfs.so: undefined reference to `boost::system::get_system_category()'
collect2: ld returned 1 exit status

I have boost library versio 1.35

Revision history for this message
Michal Hrusecky (miska-atrey) wrote :

I found, where the problem was. configure found, that my boost-filesystem library is libboost_filesystem-mt-s which is in my case .a library only and it needed .so. So I run configure --with-boost-filesystem=boost_filesystem-mt (I've got libboost_filesystem-mt as .so and .a) and it works now.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.