Skip site navigation (1)Skip section navigation (2)
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>