Re: linking error due to missing boost::assertion_failed_msg()
Am 08.09.2019 um 22:44 schrieb Patrick De Visschere : > > > >> On 8 Sep 2019, at 21:03, Stephan Witt wrote: >> >> Am 08.09.2019 um 20:47 schrieb pdv : >>> >>> On 08/09/2019 17:47, Kornel Benko wrote: Am Sonntag, 8. September 2019, 14:14:15 CEST schrieb Patrick De Visschere: > In the source files (ConverterCache.cpp, Application.cpp, FileName.cpp > and GuiClipboard.cpp) I don’t see macro’s which could optionally include > the relevant code which is probably in the boost::crc module. I suppose > boost::crc uses boost::array where the BOOST_ASSERT_MSG macro is > activated, triggering the error. > > LyX includes a 3thparty boost-version (1.68), but I don’t find any > references to it in my XCode project and I think I’m actually using my > macports boost (which is 1.71). > This might explain it: I’ve upgraded my macports boost and this breaks my > lyx-build. > > There isn't any, if you don't use GCC. See CMakeLists.txt:162 Kornel >>> >>> XCode uses clang and I believe that indeed the internal (3thparty) boost is >>> used. But this contains only the regex (and signals) source code, besides >>> (all) the headers. The code involved #includes and I >>> suppose this code is found in the system (macports) boost. >> >> I have it in lyx/3rdparty/boost/boost/crc.hpp … >> >> Stephan > > Me too. But XCode picks up the one in macports. > > And there is no source code (crc.cpp) or no lib to link with. I’m using a build script for cmake Xcode project generation. It contains: XCODE_SDK_PATH=${SDKROOT:-$(xcrun --show-sdk-path)} echo Using SDK ${XCODE_SDK_PATH} cmake … \ -DCMAKE_SYSTEM_PREFIX_PATH="/usr;${XCODE_SDK_PATH}/usr“ … Does it do the trick for you? Stephan
Re: linking error due to missing boost::assertion_failed_msg()
> On 8 Sep 2019, at 21:03, Stephan Witt wrote: > > Am 08.09.2019 um 20:47 schrieb pdv : >> >> On 08/09/2019 17:47, Kornel Benko wrote: >>> Am Sonntag, 8. September 2019, 14:14:15 CEST schrieb Patrick De Visschere: In the source files (ConverterCache.cpp, Application.cpp, FileName.cpp and GuiClipboard.cpp) I don’t see macro’s which could optionally include the relevant code which is probably in the boost::crc module. I suppose boost::crc uses boost::array where the BOOST_ASSERT_MSG macro is activated, triggering the error. LyX includes a 3thparty boost-version (1.68), but I don’t find any references to it in my XCode project and I think I’m actually using my macports boost (which is 1.71). This might explain it: I’ve upgraded my macports boost and this breaks my lyx-build. >>> There isn't any, if you don't use GCC. See CMakeLists.txt:162 >>> Kornel >> >> XCode uses clang and I believe that indeed the internal (3thparty) boost is >> used. But this contains only the regex (and signals) source code, besides >> (all) the headers. The code involved #includes and I suppose >> this code is found in the system (macports) boost. > > I have it in lyx/3rdparty/boost/boost/crc.hpp … > > Stephan Me too. But XCode picks up the one in macports. And there is no source code (crc.cpp) or no lib to link with. Patrick smime.p7s Description: S/MIME cryptographic signature
Re: linking error due to missing boost::assertion_failed_msg()
Le 08/09/2019 à 14:14, Patrick De Visschere a écrit : LyX includes a 3thparty boost-version (1.68), but I don’t find any references to it in my XCode project and I think I’m actually using my macports boost (which is 1.71). This might explain it: I’ve upgraded my macports boost and this breaks my lyx-build. I had started to update our boost to 1.70, but I gave up because of issues related to this and having other things to do with my time. I will have to try again. Patrick, you should be able to force LyX to use the included boost versions. JMarc
Re: linking error due to missing boost::assertion_failed_msg()
Am 08.09.2019 um 20:47 schrieb pdv : > > On 08/09/2019 17:47, Kornel Benko wrote: >> Am Sonntag, 8. September 2019, 14:14:15 CEST schrieb Patrick De Visschere: >>> In the source files (ConverterCache.cpp, Application.cpp, FileName.cpp and >>> GuiClipboard.cpp) I don’t see macro’s which could optionally include the >>> relevant code which is probably in the boost::crc module. I suppose >>> boost::crc uses boost::array where the BOOST_ASSERT_MSG macro is activated, >>> triggering the error. >>> >>> LyX includes a 3thparty boost-version (1.68), but I don’t find any >>> references to it in my XCode project and I think I’m actually using my >>> macports boost (which is 1.71). >>> This might explain it: I’ve upgraded my macports boost and this breaks my >>> lyx-build. >>> >>> >> There isn't any, if you don't use GCC. See CMakeLists.txt:162 >> Kornel > > XCode uses clang and I believe that indeed the internal (3thparty) boost is > used. But this contains only the regex (and signals) source code, besides > (all) the headers. The code involved #includes and I suppose > this code is found in the system (macports) boost. I have it in lyx/3rdparty/boost/boost/crc.hpp … Stephan
Re: linking error due to missing boost::assertion_failed_msg()
On 08/09/2019 17:47, Kornel Benko wrote: Am Sonntag, 8. September 2019, 14:14:15 CEST schrieb Patrick De Visschere: In the source files (ConverterCache.cpp, Application.cpp, FileName.cpp and GuiClipboard.cpp) I don’t see macro’s which could optionally include the relevant code which is probably in the boost::crc module. I suppose boost::crc uses boost::array where the BOOST_ASSERT_MSG macro is activated, triggering the error. LyX includes a 3thparty boost-version (1.68), but I don’t find any references to it in my XCode project and I think I’m actually using my macports boost (which is 1.71). This might explain it: I’ve upgraded my macports boost and this breaks my lyx-build. There isn't any, if you don't use GCC. See CMakeLists.txt:162 Kornel XCode uses clang and I believe that indeed the internal (3thparty) boost is used. But this contains only the regex (and signals) source code, besides (all) the headers. The code involved #includes and I suppose this code is found in the system (macports) boost. Patrick
Re: [LyX/master] Start reporting missing citations and broken references in LaTeX build.
On Fri, Jun 07, 2019 at 05:05:20PM +0200, Pavel Sanda wrote: > commit bf99ece7366ad479458b3cecb067341a3320286a > Author: Pavel Sanda > Date: Fri Jun 7 16:47:04 2019 +0200 > > Start reporting missing citations and broken references in LaTeX build. > > Now we report these in the same way as LaTeX errors (but let the user to > see the result anyway). It remains to be shown much is this disturbing > to users. Generally, ignoring these is not a good idea, because they are > harder to manually spot in longer documents. > > The details of reported error varies because log linebreaks at 90 > induced by pdflatex make log harder to parse. > The committed code is more robust than previous, in which some missing > cits/refs with long keys would go unnoticed. > > Tested on bibtex and natbib. > > https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg208912.html Thanks for your work on this, Pavel! A couple of comments: 1. Would it be more efficient to use "prefixIs()" instead of "contains()"? Are you concerned that for some older versions there is white space at the beginning of the line? Since this is a new feature, perhaps we could accept a 1% chance of risk that the more strict prefixIs() would not match certain versions of output for the sake of long-run efficiency? I don't actually know whether it is a 1% chance or a 50% chance, but perhaps someone else has an idea. Or perhaps the concern is related to the comments about the log breaking lines in arbitrary places? 2. I think we can extend this to work with biblatex. For example, currently if there is a citation of multiple keys, if one of the keys is undefined, there is no error. There is no instance of "There were undefined citations" in the log file. Instead, the following is in the .log file: Package biblatex Warning: The following entry could not be found (biblatex)in the database: (biblatex)abc123 (biblatex)Please verify the spelling and rerun (biblatex)LaTeX afterwards. The attached patch fixes this partly. It gives an error, but it does not specify the name of the missing key in the log file. If you think you can extend the patch to also report the missing key in the log file, please go ahead (I'm not interested in spending more time on this at the moment). Otherwise, should I at least commit this attached patch? I can change the prefixIs() to contains() if you prefer. Scott From ed60ad522f41e7d32697d2e67d5c1bf72f6f917d Mon Sep 17 00:00:00 2001 From: Scott Kostyshak Date: Sun, 8 Sep 2019 11:43:29 -0400 Subject: [PATCH] Catch undefined citations with Biblatex This catches situations when one key in a multi-key citation is not defined. --- src/LaTeX.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/LaTeX.cpp b/src/LaTeX.cpp index 4096ca9f63..5cb5df4c78 100644 --- a/src/LaTeX.cpp +++ b/src/LaTeX.cpp @@ -781,7 +781,8 @@ int LaTeX::scanLogFile(TeXErrors & terr) //TODO: TL 2020 engines will contain new commandline switch --cnf-line which we //can use to set max_print_line variable for appropriate length and detect all //errors correctly. - if (contains(token, "There were undefined citations.")) + if (contains(token, "There were undefined citations.") || + prefixIs(token, "Package biblatex Warning: The following entry could not be found")) retval |= UNDEF_CIT; if (prefixIs(token, "LaTeX Warning:") || -- 2.20.1 signature.asc Description: PGP signature
Re: linking error due to missing boost::assertion_failed_msg()
Am 08.09.2019 um 14:14 schrieb Patrick De Visschere : > > Yes, I have a few different settings (but I didn’t change them recently as > far as I know) and I’m using (gui) CMake 3.15.1 > and XCode = Version 10.3 (10G8) I’m using - cmake version 3.12.0 - Xcode 10.3, Build version 10G8 ATM, I’m unable to update my macports :( I’m forced to reinstall it because of incompatible macOS versions and I’m too lazy to start from scratch with it. Stephan > LYX_CPACK = ON : Use the CPack management (Implies LYX_INSTALL option) > LYX_LOCALVERSIONING = OFF : Add version info to created package name (only > used if LYX_CPACK option set) > LYX_INSTALL = ON : Build install projects/rules (implies a bunch of other > options) > LYX_NLS = ON : Enable Native Language Support (NLS) > LYX_REQUIRE_SPELLCHECK = OFF : Abort if no spellchecker available > LYX_ASPELL = ON : Require aspell > LYX_ENCHANT = OFF : Require Enchant > LYX_HUNSPELL = ON : Require Hunspell > LYX_RELEASE = OFF : Build release version, build debug when disabled > LYX_DEBUG = OFF : Enforce debug build > LYX_NO_OPTIMIZE = ON : Don't use any optimization/debug flags > LYX_PACKAGE_SUFFIX = ON : Use version suffix for packaging > LYX_SUFFIX_VALUE = : Use this string as suffix > LYX_PCH = OFF : Use precompiled headers > LYX_MERGE_FILES = OFF : Merge source files into one compilation unit > LYX_MERGE_REBUILD = OFF : Rebuild generated files from merged files build > LYX_QUIET = ON : Don't generate verbose makefiles > LYX_INSTALL_PREFIX = OFF : Install path for LyX > LYX_BUNDLE = ON : Build bundle (experimental) > LYX_ENABLE_URLTESTS = OFF : Enable for URL tests > LYX_ENABLE_EXPORT_TESTS = OFF : Enable for export tests > LYX_ENABLE_KEYTESTS = OFF : Enable for keytests > LYX_ASAN = OFF : Use address sanitizer > LYX_USE_FILEDIALOG = QT : Use native or QT file dialog (QT NATIVE) > LYX_USE_QT = QT5 : Use Qt version as frontend (AUTO QT4 QT5) > LYX_DISABLE_CALLSTACK_PRINTING = OFF : do not print a callstack when crashing > LYX_EXTERNAL_Z = ON : OFF := Build 3rdparty lib zlib > LYX_EXTERNAL_ICONV = ON : OFF := Build 3rdparty lib iconvlib > LYX_EXTERNAL_HUNSPELL = OFF : OFF := Build 3rdparty lib hunspelllib > LYX_EXTERNAL_MYTHES = OFF : OFF := Build 3rdparty lib mytheslib (AUTO OFF ON) > LYX_DMG = ON : Build as Mac bundle, needed for .dmg (experimental) > LYX_COCOA = ON : Use Cocoa on Mac > > In the source files (ConverterCache.cpp, Application.cpp, FileName.cpp and > GuiClipboard.cpp) I don’t see macro’s which could optionally include the > relevant code which is probably in the boost::crc module. I suppose > boost::crc uses boost::array where the BOOST_ASSERT_MSG macro is activated, > triggering the error. > > LyX includes a 3thparty boost-version (1.68), but I don’t find any references > to it in my XCode project and I think I’m actually using my macports boost > (which is 1.71). > This might explain it: I’ve upgraded my macports boost and this breaks my > lyx-build. > > > >> On 8 Sep 2019, at 10:14, Stephan Witt wrote: >> >> Am 08.09.2019 um 10:02 schrieb Patrick De Visschere : >>> >>> Sorry, mistyped the last “f”: it should have been 01ee3bf1e5, the master >>> branch on 5 sept. >> >> I see. Yes, this is HEAD for me too. This is what works for me. >> >> Perhaps you have different cmake flags? >> >> I have: >> -- LYX_CPACK = OFF : Use the CPack management >> (Implies LYX_INSTALL option) >> -- LYX_LOCALVERSIONING= ON: Add version info to created >> package name (only used if LYX_CPACK option set) >> -- LYX_INSTALL= OFF : Build install projects/rules >> (implies a bunch of other options) >> -- LYX_NLS= ON: Enable Native Language >> Support (NLS) >> -- LYX_REQUIRE_SPELLCHECK = OFF : Abort if no spellchecker >> available >> -- LYX_ASPELL = ON: Require aspell >> -- LYX_ENCHANT= OFF : Require Enchant >> -- LYX_HUNSPELL = ON: Require Hunspell >> -- LYX_RELEASE= OFF : Build release version, build >> debug when disabled >> -- LYX_DEBUG = ON: Enforce debug build >> -- LYX_NO_OPTIMIZE= OFF : Don't use any >> optimization/debug flags >> -- LYX_PACKAGE_SUFFIX = OFF : Use version suffix for >> packaging >> -- LYX_SUFFIX_VALUE = : Use this string as suffix >> -- LYX_PCH= OFF : Use precompiled headers >> -- LYX_MERGE_FILES= OFF : Merge source files into one >> compilation unit >> -- LYX_MERGE_REBUILD = OFF : Rebuild generated files from >> merged files build >> -- LYX_QUIET = OFF : Don't generate verbose >> makefiles >> -- LYX_INSTALL_PREFIX = OFF : Install path for LyX >> -- LYX_BUNDLE = OFF : Build
Re: linking error due to missing boost::assertion_failed_msg()
Am Sonntag, 8. September 2019, 14:14:15 CEST schrieb Patrick De Visschere: > In the source files (ConverterCache.cpp, Application.cpp, FileName.cpp and > GuiClipboard.cpp) I don’t see macro’s which could optionally include the > relevant code which is probably in the boost::crc module. I suppose > boost::crc uses boost::array where the BOOST_ASSERT_MSG macro is activated, > triggering the error. > > LyX includes a 3thparty boost-version (1.68), but I don’t find any references > to it in my XCode project and I think I’m actually using my macports boost > (which is 1.71). > This might explain it: I’ve upgraded my macports boost and this breaks my > lyx-build. > > There isn't any, if you don't use GCC. See CMakeLists.txt:162 Kornel signature.asc Description: This is a digitally signed message part.
Re: linking error due to missing boost::assertion_failed_msg()
Yes, I have a few different settings (but I didn’t change them recently as far as I know) and I’m using (gui) CMake 3.15.1 and XCode = Version 10.3 (10G8) LYX_CPACK = ON : Use the CPack management (Implies LYX_INSTALL option) LYX_LOCALVERSIONING = OFF : Add version info to created package name (only used if LYX_CPACK option set) LYX_INSTALL = ON : Build install projects/rules (implies a bunch of other options) LYX_NLS = ON : Enable Native Language Support (NLS) LYX_REQUIRE_SPELLCHECK = OFF : Abort if no spellchecker available LYX_ASPELL = ON : Require aspell LYX_ENCHANT = OFF : Require Enchant LYX_HUNSPELL = ON : Require Hunspell LYX_RELEASE = OFF : Build release version, build debug when disabled LYX_DEBUG = OFF : Enforce debug build LYX_NO_OPTIMIZE = ON : Don't use any optimization/debug flags LYX_PACKAGE_SUFFIX = ON : Use version suffix for packaging LYX_SUFFIX_VALUE = : Use this string as suffix LYX_PCH = OFF : Use precompiled headers LYX_MERGE_FILES = OFF : Merge source files into one compilation unit LYX_MERGE_REBUILD = OFF : Rebuild generated files from merged files build LYX_QUIET = ON : Don't generate verbose makefiles LYX_INSTALL_PREFIX = OFF : Install path for LyX LYX_BUNDLE = ON : Build bundle (experimental) LYX_ENABLE_URLTESTS = OFF : Enable for URL tests LYX_ENABLE_EXPORT_TESTS = OFF : Enable for export tests LYX_ENABLE_KEYTESTS = OFF : Enable for keytests LYX_ASAN = OFF : Use address sanitizer LYX_USE_FILEDIALOG = QT : Use native or QT file dialog (QT NATIVE) LYX_USE_QT = QT5 : Use Qt version as frontend (AUTO QT4 QT5) LYX_DISABLE_CALLSTACK_PRINTING = OFF : do not print a callstack when crashing LYX_EXTERNAL_Z = ON : OFF := Build 3rdparty lib zlib LYX_EXTERNAL_ICONV = ON : OFF := Build 3rdparty lib iconvlib LYX_EXTERNAL_HUNSPELL = OFF : OFF := Build 3rdparty lib hunspelllib LYX_EXTERNAL_MYTHES = OFF : OFF := Build 3rdparty lib mytheslib (AUTO OFF ON) LYX_DMG = ON : Build as Mac bundle, needed for .dmg (experimental) LYX_COCOA = ON : Use Cocoa on Mac In the source files (ConverterCache.cpp, Application.cpp, FileName.cpp and GuiClipboard.cpp) I don’t see macro’s which could optionally include the relevant code which is probably in the boost::crc module. I suppose boost::crc uses boost::array where the BOOST_ASSERT_MSG macro is activated, triggering the error. LyX includes a 3thparty boost-version (1.68), but I don’t find any references to it in my XCode project and I think I’m actually using my macports boost (which is 1.71). This might explain it: I’ve upgraded my macports boost and this breaks my lyx-build. > On 8 Sep 2019, at 10:14, Stephan Witt wrote: > > Am 08.09.2019 um 10:02 schrieb Patrick De Visschere : >> >> Sorry, mistyped the last “f”: it should have been 01ee3bf1e5, the master >> branch on 5 sept. > > I see. Yes, this is HEAD for me too. This is what works for me. > > Perhaps you have different cmake flags? > > I have: > -- LYX_CPACK = OFF : Use the CPack management > (Implies LYX_INSTALL option) > -- LYX_LOCALVERSIONING= ON: Add version info to created > package name (only used if LYX_CPACK option set) > -- LYX_INSTALL= OFF : Build install projects/rules > (implies a bunch of other options) > -- LYX_NLS= ON: Enable Native Language > Support (NLS) > -- LYX_REQUIRE_SPELLCHECK = OFF : Abort if no spellchecker > available > -- LYX_ASPELL = ON: Require aspell > -- LYX_ENCHANT= OFF : Require Enchant > -- LYX_HUNSPELL = ON: Require Hunspell > -- LYX_RELEASE= OFF : Build release version, build > debug when disabled > -- LYX_DEBUG = ON: Enforce debug build > -- LYX_NO_OPTIMIZE= OFF : Don't use any > optimization/debug flags > -- LYX_PACKAGE_SUFFIX = OFF : Use version suffix for > packaging > -- LYX_SUFFIX_VALUE = : Use this string as suffix > -- LYX_PCH= OFF : Use precompiled headers > -- LYX_MERGE_FILES= OFF : Merge source files into one > compilation unit > -- LYX_MERGE_REBUILD = OFF : Rebuild generated files from > merged files build > -- LYX_QUIET = OFF : Don't generate verbose > makefiles > -- LYX_INSTALL_PREFIX = OFF : Install path for LyX > -- LYX_BUNDLE = OFF : Build bundle (experimental) > -- LYX_ENABLE_URLTESTS= OFF : Enable for URL tests > -- LYX_ENABLE_EXPORT_TESTS= ON: Enable for export tests > -- LYX_ENABLE_KEYTESTS= OFF : Enable for keytests > -- LYX_ASAN = OFF : Use address sanitizer > -- LYX_USE_FILEDIALOG = QT: Use native or QT file dialog > (QT NATIVE) > -- LYX_USE_QT
Re: LinkBack support (on MacOS)
Am 25.09.2018 um 17:21 schrieb Stephan Witt : > > Am 25.09.2018 um 17:10 schrieb Jürgen Spitzmüller : >> >> Am Freitag, den 21.09.2018, 15:55 +0200 schrieb pdv: >>> I came across a deprecated call in the LinkBack code, and discovered >>> that LinkBack acctually doesn't work (anymore). >>> Apparently nobody uses this? >> >> Apparently. I only found this 8 year old bug related to LinkBack: >> https://www.lyx.org/trac/ticket/6961 >> >> >>> When the pasteboard contains linkback-data lyx saves the pdf-data + >>> linkback-data in a file with the .linkback extension and adds the >>> size >>> of the pdf-data as a uint32. >>> >>> When reading/rewriting back the size it's converted with >>> NSSwapBigLongToHost() and NSSwapHostLongToBig() calls. >>> >>> I suppose that the "Long" refers to 8 bytes. >>> >>> Replacing the calls by the similar "Int" calls solves the problem. >>> >>> LinkBack then works with LateXiT and with Omnigraffle. >>> >>> Enclosed is a patch for this and for replacing the deprecated call. >> >> Alas, I know nothing of this. Stephan? > > I’ll see if I can find the time. I’ve applied the patch and have no problem. I didn’t do the real test with linkback-data. I don’t have Omnigraffle an my system. The change from NSSwapBigLongToHost to NSSwapBigIntToHost is 100% correct. I’ll commit to master. Thank you Patrick for fixing this bug. Stephan
Re: linking error due to missing boost::assertion_failed_msg()
Am 08.09.2019 um 10:02 schrieb Patrick De Visschere : > > Sorry, mistyped the last “f”: it should have been 01ee3bf1e5, the master > branch on 5 sept. I see. Yes, this is HEAD for me too. This is what works for me. Perhaps you have different cmake flags? I have: -- LYX_CPACK = OFF : Use the CPack management (Implies LYX_INSTALL option) -- LYX_LOCALVERSIONING= ON: Add version info to created package name (only used if LYX_CPACK option set) -- LYX_INSTALL= OFF : Build install projects/rules (implies a bunch of other options) -- LYX_NLS= ON: Enable Native Language Support (NLS) -- LYX_REQUIRE_SPELLCHECK = OFF : Abort if no spellchecker available -- LYX_ASPELL = ON: Require aspell -- LYX_ENCHANT= OFF : Require Enchant -- LYX_HUNSPELL = ON: Require Hunspell -- LYX_RELEASE= OFF : Build release version, build debug when disabled -- LYX_DEBUG = ON: Enforce debug build -- LYX_NO_OPTIMIZE= OFF : Don't use any optimization/debug flags -- LYX_PACKAGE_SUFFIX = OFF : Use version suffix for packaging -- LYX_SUFFIX_VALUE = : Use this string as suffix -- LYX_PCH= OFF : Use precompiled headers -- LYX_MERGE_FILES= OFF : Merge source files into one compilation unit -- LYX_MERGE_REBUILD = OFF : Rebuild generated files from merged files build -- LYX_QUIET = OFF : Don't generate verbose makefiles -- LYX_INSTALL_PREFIX = OFF : Install path for LyX -- LYX_BUNDLE = OFF : Build bundle (experimental) -- LYX_ENABLE_URLTESTS= OFF : Enable for URL tests -- LYX_ENABLE_EXPORT_TESTS= ON: Enable for export tests -- LYX_ENABLE_KEYTESTS= OFF : Enable for keytests -- LYX_ASAN = OFF : Use address sanitizer -- LYX_USE_FILEDIALOG = QT: Use native or QT file dialog (QT NATIVE) -- LYX_USE_QT = QT5 : Use Qt version as frontend (AUTO QT4 QT5) -- LYX_DISABLE_CALLSTACK_PRINTING = OFF : do not print a callstack when crashing -- LYX_EXTERNAL_Z = ON: OFF := Build 3rdparty lib zlib -- LYX_EXTERNAL_ICONV = ON: OFF := Build 3rdparty lib iconvlib -- LYX_EXTERNAL_HUNSPELL = ON: OFF := Build 3rdparty lib hunspelllib -- LYX_EXTERNAL_MYTHES= OFF : OFF := Build 3rdparty lib mytheslib (AUTO OFF ON) -- LYX_DMG= OFF : Build as Mac bundle, needed for .dmg (experimental) -- LYX_COCOA = OFF : Use Cocoa on Mac Stephan > >> On 8 Sep 2019, at 09:34, Stephan Witt wrote: >> >> Am 07.09.2019 um 10:14 schrieb pdv : >>> >>> LyX fails to build on macos (Mojave, CMake, XCode) with the latest commit >>> (01ee3bf1f5) with message: >>> >>> Undefined symbols for architecture x86_64: >>> "boost::assertion_failed_msg(char const*, char const*, char const*, char >>> const*, long)", referenced from: >>> boost::array::operator[](unsigned long) in >>> ConverterCache.o >>> boost::array::operator[](unsigned long) in >>> libfrontend_qt.a(GuiApplication.o) >>> boost::array::operator[](unsigned long) in >>> libsupport.a(FileName.o) >>> boost::array::operator[](unsigned long) in >>> libfrontend_qt.a(GuiClipboard.o) >>> >>> From the boost docs >>> (https://www.boost.org/doc/libs/1_68_0/libs/assert/doc/html/assert.html) >>> it's clear that boost::assertion_failed_msg() must be defined, ... >>> >>> If the macro BOOST_ENABLE_ASSERT_HANDLER is defined when >>> is included, BOOST_ASSERT_MSG(expr,msg) expands to >>> >>> (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed_msg(#expr, >>> msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) >>> This is true regardless of whether NDEBUG is defined. >>> >>> boost::assertion_failed_msg is declared in as >>> >>> namespace boost >>> { >>> void assertion_failed_msg(char const * expr, char const * msg, >>> char const * function, char const * file, long line); >>> } >>> but it is never defined. The user is expected to supply an appropriate >>> definition. >>> >>> ... which is not the case now, and BOOST_ASSERT_MSG is defined in >>> boost::array.hpp. >>> >>> I've defined the additional function assertion_failed_msg()in boost.cpp >>> (patch attached) and this resolves the problem. >>> >>> Two more remarks: >>> >>> 1) I don't understand why this problem surfaces now and not earlier; >>> >>> 2) There are additional definitions of assertion_failed() in >>> client/boost.cpp and in tex2lyx/boost.cpp; >> >> I cannot find the commit 01ee3bf1f5. Is it a local one in
Re: linking error due to missing boost::assertion_failed_msg()
Sorry, mistyped the last “f”: it should have been 01ee3bf1e5, the master branch on 5 sept. > On 8 Sep 2019, at 09:34, Stephan Witt wrote: > > Am 07.09.2019 um 10:14 schrieb pdv : >> >> LyX fails to build on macos (Mojave, CMake, XCode) with the latest commit >> (01ee3bf1f5) with message: >> >> Undefined symbols for architecture x86_64: >> "boost::assertion_failed_msg(char const*, char const*, char const*, char >> const*, long)", referenced from: >> boost::array::operator[](unsigned long) in >> ConverterCache.o >> boost::array::operator[](unsigned long) in >> libfrontend_qt.a(GuiApplication.o) >> boost::array::operator[](unsigned long) in >> libsupport.a(FileName.o) >> boost::array::operator[](unsigned long) in >> libfrontend_qt.a(GuiClipboard.o) >> >> From the boost docs >> (https://www.boost.org/doc/libs/1_68_0/libs/assert/doc/html/assert.html) >> it's clear that boost::assertion_failed_msg() must be defined, ... >> >> If the macro BOOST_ENABLE_ASSERT_HANDLER is defined when >> is included, BOOST_ASSERT_MSG(expr,msg) expands to >> >> (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed_msg(#expr, >> msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) >> This is true regardless of whether NDEBUG is defined. >> >> boost::assertion_failed_msg is declared in as >> >> namespace boost >> { >> void assertion_failed_msg(char const * expr, char const * msg, >> char const * function, char const * file, long line); >> } >> but it is never defined. The user is expected to supply an appropriate >> definition. >> >> ... which is not the case now, and BOOST_ASSERT_MSG is defined in >> boost::array.hpp. >> >> I've defined the additional function assertion_failed_msg()in boost.cpp >> (patch attached) and this resolves the problem. >> >> Two more remarks: >> >> 1) I don't understand why this problem surfaces now and not earlier; >> >> 2) There are additional definitions of assertion_failed() in >> client/boost.cpp and in tex2lyx/boost.cpp; > > I cannot find the commit 01ee3bf1f5. Is it a local one in your git checkout? > > I don’t have this problem with neither with automake nor with cmake. > > Stephan Patrick De Visschere 051/46 70 25 Pensionaatstraat 25 8755 Ruiselede smime.p7s Description: S/MIME cryptographic signature
Re: linking error due to missing boost::assertion_failed_msg()
Am 07.09.2019 um 10:14 schrieb pdv : > > LyX fails to build on macos (Mojave, CMake, XCode) with the latest commit > (01ee3bf1f5) with message: > > Undefined symbols for architecture x86_64: > "boost::assertion_failed_msg(char const*, char const*, char const*, char > const*, long)", referenced from: > boost::array::operator[](unsigned long) in > ConverterCache.o > boost::array::operator[](unsigned long) in > libfrontend_qt.a(GuiApplication.o) > boost::array::operator[](unsigned long) in > libsupport.a(FileName.o) > boost::array::operator[](unsigned long) in > libfrontend_qt.a(GuiClipboard.o) > > From the boost docs > (https://www.boost.org/doc/libs/1_68_0/libs/assert/doc/html/assert.html) it's > clear that boost::assertion_failed_msg() must be defined, ... > > If the macro BOOST_ENABLE_ASSERT_HANDLER is defined when > is included, BOOST_ASSERT_MSG(expr,msg) expands to > > (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed_msg(#expr, >msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) > This is true regardless of whether NDEBUG is defined. > > boost::assertion_failed_msg is declared in as > > namespace boost > { >void assertion_failed_msg(char const * expr, char const * msg, >char const * function, char const * file, long line); > } > but it is never defined. The user is expected to supply an appropriate > definition. > > ... which is not the case now, and BOOST_ASSERT_MSG is defined in > boost::array.hpp. > > I've defined the additional function assertion_failed_msg()in boost.cpp > (patch attached) and this resolves the problem. > > Two more remarks: > > 1) I don't understand why this problem surfaces now and not earlier; > > 2) There are additional definitions of assertion_failed() in client/boost.cpp > and in tex2lyx/boost.cpp; I cannot find the commit 01ee3bf1f5. Is it a local one in your git checkout? I don’t have this problem with neither with automake nor with cmake. Stephan