mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 09:36:41 -04:00
graphics/rawtherapee: pin GCC version to 13.
Apparently GCC 14 has new libstdc++ bits spill over somewhere, and this would break rawtherapee's build at link time, salvadore@ wrote /usr/local/bin/ld: /tmp/ccgto6pJ.ltrans65.ltrans.o: in function `Spot::~Spot() [clone .cold]': <artificial>:(.text.unlikely+0x89d): undefined reference to `__cxa_call_terminate' /usr/local/bin/ld: /tmp/ccgto6pJ.ltrans76.ltrans.o: in function `(anonymous namespace)::dfInfo::updateBadPixelList(rtengine::RawImage const*) [clone ._omp_fn.0] [clone .cold]': <artificial>:(.text.unlikely+0x93): undefined reference to `__cxa_call_terminate' /usr/local/bin/ld: /tmp/ccgto6pJ.ltrans77.ltrans.o: in function `rtengine::ImProcFunctions::RGB_denoise(int, rtengine::Imagefloat*, rtengine::Imagefloat*, rtengine::Imagefloat*, float*, float*, float*, bool, rtengine::procparams::DirPyrDenoiseParams const&, double, rtengine::NoiseCurve const&, rtengine::NoiseCurve const&, float&, float&) [clone ._omp_fn.2] [clone .cold]': <artificial>:(.text.unlikely+0x1d9): undefined reference to `__cxa_call_terminate' /usr/local/bin/ld: /tmp/ccgto6pJ.ltrans81.ltrans.o: in function `rtengine::init(rtengine::Settings const*, Glib::ustring const&, Glib::ustring const&, bool) [clone ._omp_fn.0] [clone .lto_priv.0] [clone .cold]': <artificial>:(.text.unlikely+0x4be): undefined reference to `__cxa_call_terminate' /usr/local/bin/ld: /tmp/ccgto6pJ.ltrans84.ltrans.o: in function `rtengine::ImProcFunctions::ciecamloc_02float(rtengine::local_params&, int, rtengine::LabImage*, int, int, int, int, LUT<float> const&, bool, LUT<float> const&, bool, LUT<float> const&, bool, LUT<float> const&, bool, LUT<float> const&, bool, rtengine::LocCHCurve const&, rtengine::LocHHCurve const&, rtengine::LocLHCurve const&, bool, bool, bool, rtengine::LocwavCurve const&, bool, float&, float&, float&) [clone ._omp_fn.11] [clone .lto_priv.0] [clone .cold]': <artificial>:(.text.unlikely+0x5f): undefined reference to `__cxa_call_terminate' And this seems to be https://gcc.gnu.org/pipermail/libstdc++/2023-May/056011.html related to C++ standards compliance - however __cxa_call_terminate specifically is a libstdc++ export function, unavailable in libc++. Rawtherapee needs to link against libc++ because otherwise all C++ libraries it imports would also have to be compiled against libstdc++. Reported by: Lorenzo salvadore@ PR: 284487
This commit is contained in:
parent
6755cb1435
commit
7c091b1abc
1 changed files with 8 additions and 1 deletions
|
@ -113,7 +113,14 @@ OPENMP_LDFLAGS= -lm -lomp
|
|||
# up to twice as fast as clang-16.0 compiled code.
|
||||
# So we shall stick to a modern GCC for now.
|
||||
#
|
||||
USE_GCC= yes # default
|
||||
# However, libstdc++14 appears to have some parts spill over into
|
||||
# GCC14, and that breaks at link time with a linker error
|
||||
# `undefined reference to `__cxa_call_terminate'
|
||||
# that stems from our using the FreeBSD base system libc++
|
||||
# because otherwise all other C++ libraries would have to
|
||||
# be compiled with libstdc++ instead.
|
||||
# See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=284487
|
||||
USE_GCC= 13 # default as of 2025-01-31
|
||||
|
||||
.if (${OPSYS} == FreeBSD) && (${OSVERSION} >= 1500000)
|
||||
# don't waste everybody's time with Tier-2 and moving targets.
|
||||
|
|
Loading…
Add table
Reference in a new issue