summaryrefslogtreecommitdiff
path: root/print/lyx
diff options
context:
space:
mode:
authorRaphael Kubo da Costa <rakuco@FreeBSD.org>2016-07-11 21:02:50 +0000
committerRaphael Kubo da Costa <rakuco@FreeBSD.org>2016-07-11 21:02:50 +0000
commit26dd086b808added6d6e7dec71433db4d20e26cc (patch)
tree73715ed8f61c8b6756a413325d7e14f1222b50f7 /print/lyx
parent- Update to 1.05.002 (diff)
Add patch to fix the build on FreeBSD 10.1.
LyX 2.2.0 had some code changes and is using std::bind() when C++11 support is available. The libc++ version on 10.0 and 10.1 does not work as expected, so force boost::bind() on those systems to avoid the following error: frontends/qt4/liblyxqt4.a(GuiWorkArea.o): In function `_ZN5boost6detail8function26void_function_obj_invoker0INSt3__16__bindIMN3lyx8frontend11GuiWorkAreaEFvvEJPS7_EEEvE6invokeERNS1_15function_bufferE': GuiWorkArea.cpp:(.text._ZN5boost6detail8function26void_function_obj_invoker0INSt3__16__bindIMN3lyx8frontend11GuiWorkAreaEFvvEJPS7_EEEvE6invokeERNS1_15function_bufferE[_ZN5boost6detail8function26void_function_obj_invoker0INSt3__16__bindIMN3lyx8frontend11GuiWorkAreaEFvvEJPS7_EEEvE6invokeERNS1_15function_bufferE]+0xa): undefined reference to `_ZNSt3__18__invokeIRMN3lyx8frontend11GuiWorkAreaEFvvERPS3_JEvEEDTcldsdeclsr3std3__1E7forwardIT0_Efp0_Efp_spclsr3std3__1E7forwardIT1_Efp1_EEEOT_OS9_DpOSA_' /usr/bin/ld: lyx: hidden symbol `_ZNSt3__18__invokeIRMN3lyx8frontend11GuiWorkAreaEFvvERPS3_JEvEEDTcldsdeclsr3std3__1E7forwardIT0_Efp0_Efp_spclsr3std3__1E7forwardIT1_Efp1_EEEOT_OS9_DpOSA_' isn't defined /usr/bin/ld: final link failed: Nonrepresentable section on output
Notes
Notes: svn path=/head/; revision=418407
Diffstat (limited to 'print/lyx')
-rw-r--r--print/lyx/Makefile8
-rw-r--r--print/lyx/files/extrapatch-src_frontends_qt4_GuiWorkArea.cpp28
2 files changed, 35 insertions, 1 deletions
diff --git a/print/lyx/Makefile b/print/lyx/Makefile
index ec3d21cb6660..6474b829bc0a 100644
--- a/print/lyx/Makefile
+++ b/print/lyx/Makefile
@@ -48,4 +48,10 @@ HUNSPELL_LIB_DEPENDS= libhunspell-1.3.so:textproc/hunspell
NLS_CONFIGURE_OFF= --disable-nls
NLS_USES= gettext
-.include <bsd.port.mk>
+.include <bsd.port.pre.mk>
+
+.if ${OPSYS} == FreeBSD && (${OSVERSION} >= 1000000 && ${OSVERSION} < 1002000)
+EXTRA_PATCHES= ${FILESDIR}/extrapatch-src_frontends_qt4_GuiWorkArea.cpp
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/print/lyx/files/extrapatch-src_frontends_qt4_GuiWorkArea.cpp b/print/lyx/files/extrapatch-src_frontends_qt4_GuiWorkArea.cpp
new file mode 100644
index 000000000000..fa35a656373a
--- /dev/null
+++ b/print/lyx/files/extrapatch-src_frontends_qt4_GuiWorkArea.cpp
@@ -0,0 +1,28 @@
+This patch is necessary for FreeBSD 10.0 and 10.1, whose libc++ does not work
+with boost and std::bind() and leads to the following failure:
+
+frontends/qt4/liblyxqt4.a(GuiWorkArea.o): In function `_ZN5boost6detail8function26void_function_obj_invoker0INSt3__16__bindIMN3lyx8frontend11GuiWorkAreaEFvvEJPS7_EEEvE6invokeERNS1_15function_bufferE':
+GuiWorkArea.cpp:(.text._ZN5boost6detail8function26void_function_obj_invoker0INSt3__16__bindIMN3lyx8frontend11GuiWorkAreaEFvvEJPS7_EEEvE6invokeERNS1_15function_bufferE[_ZN5boost6detail8function26void_function_obj_invoker0INSt3__16__bindIMN3lyx8frontend11GuiWorkAreaEFvvEJPS7_EEEvE6invokeERNS1_15function_bufferE]+0xa): undefined reference to `_ZNSt3__18__invokeIRMN3lyx8frontend11GuiWorkAreaEFvvERPS3_JEvEEDTcldsdeclsr3std3__1E7forwardIT0_Efp0_Efp_spclsr3std3__1E7forwardIT1_Efp1_EEEOT_OS9_DpOSA_'
+/usr/bin/ld: lyx: hidden symbol `_ZNSt3__18__invokeIRMN3lyx8frontend11GuiWorkAreaEFvvERPS3_JEvEEDTcldsdeclsr3std3__1E7forwardIT0_Efp0_Efp_spclsr3std3__1E7forwardIT1_Efp1_EEEOT_OS9_DpOSA_' isn't defined
+/usr/bin/ld: final link failed: Nonrepresentable section on output
+
+--- src/frontends/qt4/GuiWorkArea.cpp.orig 2016-05-23 23:47:31 UTC
++++ src/frontends/qt4/GuiWorkArea.cpp
+@@ -55,6 +55,8 @@
+ #include "frontends/FontMetrics.h"
+ #include "frontends/WorkAreaManager.h"
+
++#include <boost/bind.hpp>
++
+ #include <QContextMenuEvent>
+ #if (QT_VERSION < 0x050000)
+ #include <QInputContext>
+@@ -320,7 +322,7 @@ void GuiWorkArea::init()
+ d->setCursorShape(Qt::IBeamCursor);
+
+ d->synthetic_mouse_event_.timeout.timeout.connect(
+- bind(&GuiWorkArea::generateSyntheticMouseEvent,
++ boost::bind(&GuiWorkArea::generateSyntheticMouseEvent,
+ this));
+
+ // Initialize the vertical Scroll Bar