Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 04 Mar 2016 11:50:20 +0000
From:      bugzilla-noreply@freebsd.org
To:        office@FreeBSD.org
Subject:   maintainer-feedback requested: [Bug 207697] editors/libreoffice4: fix build with boost 1.60
Message-ID:  <bug-207697-25061-gyfYZhNMsQ@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-207697-25061@https.bugs.freebsd.org/bugzilla/>
References:  <bug-207697-25061@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
Don Lewis <truckman@FreeBSD.org> has reassigned Bugzilla Automation
<bugzilla@FreeBSD.org>'s request for maintainer-feedback to office@FreeBSD.=
org:
Bug 207697: editors/libreoffice4: fix build with boost 1.60
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D207697



--- Description ---
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=
nkTa
rget/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/p
dfimport/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/p
dfimport/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/p
dfimport/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=
inkT
arget/Executable/pdfunzip'
failed
gmake[2]: ***
[/wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/workdir/L=
inkT
arget/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=
/hel
per/qahelper.cxx:10:
In file included from
/wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/sc/qa/unit=
/hel
per/qahelper.hxx:14:
In file included from
/wrkdirs/usr/ports/editors/libreoffice4/work/libreoffice-4.3.7.2/sc/qa/unit=
/hel
per/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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-207697-25061-gyfYZhNMsQ>