Date: Fri, 04 Mar 2016 11:50:20 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-ports-bugs@FreeBSD.org Subject: [Bug 207697] editors/libreoffice4: fix build with boost 1.60 Message-ID: <bug-207697-13@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D207697 Bug ID: 207697 Summary: editors/libreoffice4: fix build with boost 1.60 Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Keywords: needs-qa, patch Severity: Affects Some People Priority: --- Component: Individual Port(s) Assignee: office@FreeBSD.org Reporter: truckman@FreeBSD.org Blocks: 199601 Assignee: office@FreeBSD.org Flags: maintainer-feedback?(office@FreeBSD.org) Created attachment 167709 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D167709&action= =3Dedit patch to unbreak editors/libreoffice4 when building with boost 1.60 The libreoffice4 build fails if the boost port is upgraded to version 1.60.= =20 The attached patch contains two sets of changes to fix this problem. The f= irst part is the upstream commit 45dfbdca6a9afba1a6aef21623ec025ded635a4d. The other part is a small fragment of the upstream commit e00a3a684e22f45f36b4002ce726cb2975cb36ae to add -DBOOST_ERROR_CODE_HEADER_O= NLY and -DBOOST_SYSTEM_NO_DEPRECATED to the compiler flags. The upstream commit 45dfbdca6a9afba1a6aef21623ec025ded635a4d works with both boost 1.60 as well as the current in-tree boost 1.55. Unfortunately the ot= her change is not compatible with boost 1.55 for unknown reasons. Without this second change, the build with boost 1.60 fails with this error: [build LNK] StaticLibrary/libwriterperfect_importtestbase.a /wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/workdir/Li= nkTarget/StaticLibrary/libpdfimport_s.a(pdfparse.o): In function `global constructors keyed to a': /wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/sdext/sour= ce/pdfimport/pdfparse/pdfparse.cxx:(.text+0x34c): undefined reference to `boost::system::generic_category()' /wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/sdext/sour= ce/pdfimport/pdfparse/pdfparse.cxx:(.text+0x358): undefined reference to `boost::system::generic_category()' /wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/sdext/sour= ce/pdfimport/pdfparse/pdfparse.cxx:(.text+0x364): undefined reference to `boost::system::system_category()' c++: error: linker command failed with exit code 1 (use -v to see invocatio= n) /wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/solenv/gbu= ild/LinkTarget.mk:444: recipe for target '/wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/workdir/L= inkTarget/Executable/pdfunzip' failed gmake[2]: *** [/wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/workdir/L= inkTarget/Executable/pdfunzip] Error 1 With this second change, the build with boost 1.59 fails with this error: In file included from /wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/sc/qa/unit= /helper/qahelper.cxx:10: In file included from /wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/sc/qa/unit= /helper/qahelper.hxx:14: In file included from /wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/sc/qa/unit= /helper/debughelper.hxx:27: In file included from /usr/local/include/mdds/mixed_type_matrix.hpp:33: In file included from /usr/local/include/mdds/mixed_type_matrix_storage.hpp= :39: In file included from /usr/local/include/boost/pool/object_pool.hpp:18: In file included from /usr/local/include/boost/pool/poolfwd.hpp:24: In file included from /usr/local/include/boost/pool/detail/mutex.hpp:14: In file included from /usr/local/include/boost/thread/mutex.hpp:16: In file included from /usr/local/include/boost/thread/pthread/mutex.hpp:12: In file included from /usr/local/include/boost/thread/exceptions.hpp:22: In file included from /usr/local/include/boost/system/system_error.hpp:14: /usr/local/include/boost/system/error_code.hpp:516:13: fatal error: 'boost/../libs/system/src/error_code.cpp' file not found # include <boost/../libs/system/src/error_code.cpp> ^ The problem is that error_code.hpp contains: # ifdef BOOST_ERROR_CODE_HEADER_ONLY # include <boost/../libs/system/src/error_code.cpp> # endif and error_code.cpp is not installed. I think this was fixed in boost 1.56.= 0. For some unknown reason, editors/libreoffice which uses -DBOOST_ERROR_CODE_HEADER_ONLY and -DBOOST_SYSTEM_NO_DEPRECATED does not su= ffer this same fate. Unfortunately I also haven't been able to think of a clean way of detecting= the boost version and tweaking the use of these flags to DTRT. Referenced Bugs: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D199601 [Bug 199601] devel/boost-all: Upgrade to 1.58, 1.59, or 1.60 --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-207697-13>