Fix FTBFS on power "not a constant expression"
authorDebian Games Team <pkg-games-devel@lists.alioth.debian.org>
Wed, 5 Mar 2025 08:22:26 +0000 (09:22 +0100)
committerJordi Mallach <jordi@debian.org>
Wed, 5 Mar 2025 08:22:26 +0000 (09:22 +0100)
There are some explanation upstream :
https://github.com/mamedev/mame/issues/3157

There are some explanation upstream :
https://github.com/mamedev/mame/issues/3157
and this probably due to the fact that IBM 128bit long double format
is not constant folded.
I slighlty rewrote ""_kHz_XTAL(long double clock) and ""_MHz_XTAL(long double clock)
the way ""_kHz_XTAL(unsigned long long clock) and ""_MHz_XTAL(unsigned long long clock)
which makes the compiler happy.
Also including an upstream change about rounding to get same results as on x86
: https://github.com/mamedev/mame/pull/5164
Author: Frédéric Bonnard <frediz@debian.org>

Gbp-Pq: Name fix-922619.patch

src/emu/xtal.h

index b58f00943b2b6742c71f44c83c5388b76dfbf772..328e267c4692f2f4475fc5d71eba1dcd8c175b39 100644 (file)
@@ -81,8 +81,8 @@ constexpr XTAL operator *(unsigned int mult, const XTAL &xtal) { return XTAL(xta
 constexpr XTAL operator *(double       mult, const XTAL &xtal) { return XTAL(xtal.base(), mult * xtal.dvalue()); }
 
 constexpr XTAL operator ""_Hz_XTAL(long double clock) { return XTAL(double(clock)); }
-constexpr XTAL operator ""_kHz_XTAL(long double clock) { return XTAL(double(clock * 1e3)); }
-constexpr XTAL operator ""_MHz_XTAL(long double clock) { return XTAL(double(clock * 1e6)); }
+constexpr XTAL operator ""_kHz_XTAL(long double clock) { return XTAL(double(clock) * 1e3); }
+constexpr XTAL operator ""_MHz_XTAL(long double clock) { return XTAL(double(clock) * 1e6); }
 
 constexpr XTAL operator ""_Hz_XTAL(unsigned long long clock) { return XTAL(double(clock)); }
 constexpr XTAL operator ""_kHz_XTAL(unsigned long long clock) { return XTAL(double(clock) * 1e3); }