← Back to team overview

hugin-devs team mailing list archive

[Bug 685904] Re: boost build issue with -Wl, --as-needed or binutils-gold

 

** Changed in: enblend
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Hugin
Developers, which is subscribed to Enblend.
https://bugs.launchpad.net/bugs/685904

Title:
  boost build issue with -Wl,--as-needed or binutils-gold

Status in Enblend:
  Fix Released

Bug description:
  Hello,

  programs including the boost_filesystem headers also should be linked
  against *both*  boost_filesystem headers and boost system, since
  boost_system functions are invoked directly via inline functions in
  the boost_filesystem headers. The autoconf setup of enblend-enfuse
  does not do this.

  enblend 4.0 will therefore fail to build from source if binutils-gold is used or LDFLAGS="-Wl,--as-needed" is set:
  ----------------------------------------------------------------
  i686-linux-gnu-g++   -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I../../include -DVIGRA_STATIC_LIB -pthread -I/usr/include/OpenEXR   -Wall -g -O2 -fopenmp   -Wl,-Bsymbolic-functions -o enblend enblend-enblend.o enblend-gpu.o enblend-error_message.o enblend-filenameparse.o enblend-filespec.o enblend-self_test.o enblend-tiff_message.o vigra_impex/libvigra_impex.a -lGLEW -lGLU -lGL  -lm -lglut -lGLU -lGL  -lm -lboost_filesystem  -pthread -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread   -lxmi -llcms -ltiff -lpng -ljpeg -lz 
  enblend-filenameparse.o: In function `__static_initialization_and_destruction_0':
  /usr/include/boost/system/error_code.hpp:208: undefined reference to `boost::system::get_system_category()'
  /usr/include/boost/system/error_code.hpp:209: undefined reference to `boost::system::get_generic_category()'
  /usr/include/boost/system/error_code.hpp:214: undefined reference to `boost::system::get_generic_category()'
  /usr/include/boost/system/error_code.hpp:215: undefined reference to `boost::system::get_generic_category()'
  /usr/include/boost/system/error_code.hpp:216: undefined reference to `boost::system::get_system_category()'
  collect2: ld returned 1 exit status
  make[5]: *** [enblend] Error 1
  -----------------------------------------------

  hg head behaves slightly differently, the autoconf test fails and the
  build falls back to Boost's generic filename parsing. The cmake setup
  already checks for both libraries afaict.

  FWIW Ubuntu linux has recently enabled LDFLAGS="-Wl,--as-needed" by
  default.

  Works-for-me patch attached.

To manage notifications about this bug go to:
https://bugs.launchpad.net/enblend/+bug/685904/+subscriptions