Opened 16 months ago

Last modified 3 months ago

#70871 assigned defect

mkvtoolnix-legacy @81.0: fatal error: no template named '_mp_size'

Reported by: sambthompson (Sam Thompson) Owned by: i0ntempest
Priority: Normal Milestone:
Component: ports Version: 2.10.1
Keywords: mojave Cc:
Port: mkvtoolnix-legacy

Description

mkvtoolnix-legacy @ 81.0_1 fails to build on MacOS Mojave 10.14.6:

https://build.macports.org/builders/ports-10.14_x86_64-builder/builds/215343/steps/install-port/logs/stdio

In file included from src/common/common.h:47:
/opt/local/libexec/boost/1.81/include/boost/multiprecision/gmp.hpp:382:11: fatal error: no template named '_mp_size'; did you mean 'mp11::mp_size'?

Appears to relate to this clang parsing bug: https://bugs.llvm.org/show_bug.cgi?id=43266 from 2019, which is present in clang 11, supplied with Xcode 11.3.1. It was reported against clang 8.0 but it's not clear from the clang report which other versions are affected; the Xcode 11.3.1 clang is from about the same time in 2019.

Anyway, overriding compiler with configure.compiler=macports-clang-17 allows successful build. In the portfile, compliler blacklist already includes clang < 1001. Maybe needs to be bumped to 1101, but I haven't tested all other clang versions.

Change History (1)

comment:1 Changed 3 months ago by FurloSK (Róbert Toth)

Just wanted to add that builds on macOS Mojave 10.14.6 still fail to build.

Checking build reports reveal that last successful build was on 2024-04-02 and successive one on 2024-04-16 already failed. Creating a local port override and reverting the mkvtoolnix Portfile to the version from 2024-04-03 solves the problem and successfully builds it.

Since the update on 2024-04-16 only added the requirement for boost.version 1.81, I suspect the problem is with this requirement. Building with older Portfile uses boost.version 1.76 and with it the build of mkvtoolnix secceeds.

Note: See TracTickets for help on using tickets.