From 11cdc26103a32b297651dd5b98e0d626e09500da Mon Sep 17 00:00:00 2001 From: Debian Games Team Date: Wed, 5 Mar 2025 09:22:26 +0100 Subject: [PATCH] Fix FTBFS on power "not a constant expression" MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Gbp-Pq: Name fix-922619.patch --- src/emu/xtal.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/emu/xtal.h b/src/emu/xtal.h index b58f00943..328e267c4 100644 --- a/src/emu/xtal.h +++ b/src/emu/xtal.h @@ -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); } -- 2.30.2