diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-01-07 06:41:06 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-01-07 06:41:06 +0000 |
commit | d69399c7befdd98cda62d6a1788ae2aa7f104c5e (patch) | |
tree | eac7184f4cfe7d67580c1d0a0d9942a91e6cb4ee /dev-util/rgbds | |
parent | e4d9d6796d5018e338f0b27a3bc97716195bf0b8 (diff) |
gentoo auto-resync : 07:01:2025 - 06:41:06
Diffstat (limited to 'dev-util/rgbds')
-rw-r--r-- | dev-util/rgbds/Manifest | 7 | ||||
-rw-r--r-- | dev-util/rgbds/files/rgbds-0.7.0-fix-nan-tests.patch | 147 | ||||
-rw-r--r-- | dev-util/rgbds/rgbds-0.6.1.ebuild | 40 | ||||
-rw-r--r-- | dev-util/rgbds/rgbds-0.9.0.ebuild (renamed from dev-util/rgbds/rgbds-0.7.0-r1.ebuild) | 7 |
4 files changed, 3 insertions, 198 deletions
diff --git a/dev-util/rgbds/Manifest b/dev-util/rgbds/Manifest index 9585bba80bb4..7b02e156cc49 100644 --- a/dev-util/rgbds/Manifest +++ b/dev-util/rgbds/Manifest @@ -1,9 +1,6 @@ -AUX rgbds-0.7.0-fix-nan-tests.patch 5256 BLAKE2B 8a0f21f992ff526fd8abc1f34d80518217255375921ccc69672a57a2bb30681a94a5aa42d9a58c8bfe90eeeeadb3b70bbf97a15277c5e8e8a27be1b57ba34935 SHA512 6ad1db1c35f5952cbffe1e59551f6a58d6cbf0230e6501749cf36ffddb8b112f1abd02990876d116ac393dcad39d3ecdbb239e98b3c6b5357ff4bafac328ef24 -DIST rgbds-0.6.1.tar.gz 8041890 BLAKE2B cd5483e6fa5e2ca3bc9a6e3de44fdf7dc92289d558ac72d8922c0cf21b9dc576b878bfd7610cb41f791ad16cc415e446c925ee0dbc77ec4370d6ef4549935681 SHA512 b4a111e3d98a190d3c9b500dc59585fe68a8e6febc79b6716b406b96714e401bac427336388409ae456ee0f1e5a2c285bfe7b4bfa10e0d148ffc161adefe435b -DIST rgbds-0.7.0.tar.gz 8053662 BLAKE2B 07f6901eeaade45125acce5c33430bdefc5a4228d2fe952d55ca254c0fc17dc5248262ecc7df5e9dd0a73aab29a39a2b38988a7ae93ad739609397a286e96aa9 SHA512 82d799f9639cb3a4c110f84f5184f46a371e66428e7d3b4f3f0229473d472dea1b381268df92736f2d1d4f5e8e2c83b61888c3ab4055768f9472b834f66f2f68 DIST rgbds-0.8.0.tar.gz 8052350 BLAKE2B 46edb43a530169d03e026070b61272e95357213747296658e4ceb821f8e420979ceffcbc07b41b6778187a1f6a614d3587416d5ad3596f19bacc6c9067051837 SHA512 1c36e0fc7ecfd930c9cbc9f9772d2c7268148e2d456c56c92265ba45b9108c531fc412669d980f6c621b4d89d367458f01a2e0cf20443f13b83f841585f3edac -EBUILD rgbds-0.6.1.ebuild 816 BLAKE2B 7992f7590f30bd809b3b5551b52ce2fe8f28e031d7a931373952717a6c20b8014e2f8a2d3b66ae9aa8e87e1ba5bb84c85063cf1ab7e4be569a395f72b88b71db SHA512 f7305129d91c25e6fc1d704e2a1bd147201a711225817293007f238943ef30eb4e033a5d4f41a962360b3b190ae11183d944fe49009226cfd747cf3f593439f2 -EBUILD rgbds-0.7.0-r1.ebuild 1085 BLAKE2B 6df90750b7deb7e97466479365fc9262e5bcad793fc685e2185c4be8355e76aed64ec4ed73c0d8b5ca8e01b54a3a5d8693d8ec21188434d7351ef33cc655f796 SHA512 650b4d190b14a9f9a68de6d19828a89b2d5ba21a287c09f6b95c878ff4f4c3f0053a325e78b0adf54d7b4b200e34db762133b520a094d9ae5d6ebf57ecc93745 +DIST rgbds-0.9.0.tar.gz 8093242 BLAKE2B b6ee19b4e4ce0e4d77f3b3ec11115a389b8debd71477478dbef72065ae17caae10e53b49b45dbc822443392c27023948cc3033117f13a7c1340d8ca90f1ff6b5 SHA512 d86a478dfcfb007e095696c32a4fa098eb9818d3bdac90d7c61bbac8901346acb6f9371ee3285b2adcf71e3c199f731b7b6c60a99be06e64b463ea7aef0f4901 EBUILD rgbds-0.8.0.ebuild 997 BLAKE2B a00f08315ce37800a64e64ceb1fca7cdb00a10ad2f3799a577db5122940f598824df666836112bf6b11559b0129ad9494b901a12afc51494f6e849f270908d62 SHA512 eca845312232f4c3aafbefb161a30ae4b566ff0b91b6d577063777484ec73ebd9ad4d48c1fc880c4979228c4e63de50e8b46d147adef61df716b4215e3b3ab0f +EBUILD rgbds-0.9.0.ebuild 997 BLAKE2B a00f08315ce37800a64e64ceb1fca7cdb00a10ad2f3799a577db5122940f598824df666836112bf6b11559b0129ad9494b901a12afc51494f6e849f270908d62 SHA512 eca845312232f4c3aafbefb161a30ae4b566ff0b91b6d577063777484ec73ebd9ad4d48c1fc880c4979228c4e63de50e8b46d147adef61df716b4215e3b3ab0f EBUILD rgbds-9999.ebuild 997 BLAKE2B a00f08315ce37800a64e64ceb1fca7cdb00a10ad2f3799a577db5122940f598824df666836112bf6b11559b0129ad9494b901a12afc51494f6e849f270908d62 SHA512 eca845312232f4c3aafbefb161a30ae4b566ff0b91b6d577063777484ec73ebd9ad4d48c1fc880c4979228c4e63de50e8b46d147adef61df716b4215e3b3ab0f MISC metadata.xml 682 BLAKE2B cf9153f0ca5faaefa518fd7300d4107d3eb4770f8471ccbaf90bfb8ca6397c3387b970b4ed97a8c5ea78695f168be3265d6e3bf84fa67dcef4ba214cd7f7bd3e SHA512 b4810cc1b6c4b9b557a11e0b172520bf0d74fd2874c6557726e51a85e946ec9e60ba4952e2746f19de25f98b97918aab1fef7c7278956ab0d0f2f551d709e20f diff --git a/dev-util/rgbds/files/rgbds-0.7.0-fix-nan-tests.patch b/dev-util/rgbds/files/rgbds-0.7.0-fix-nan-tests.patch deleted file mode 100644 index 9cee354a810e..000000000000 --- a/dev-util/rgbds/files/rgbds-0.7.0-fix-nan-tests.patch +++ /dev/null @@ -1,147 +0,0 @@ -https://bugs.gentoo.org/928268 -https://github.com/gbdev/rgbds/issues/1387 -https://github.com/gbdev/rgbds/pull/1388 -https://github.com/gbdev/rgbds/commit/9ab3446d1a3d84d6b34062b8287be9169fbe663b - -From 1afbaa3cf2b667c33ae02e899ad7a833e3b71292 Mon Sep 17 00:00:00 2001 -From: Sylvie <35663410+Rangi42@users.noreply.github.com> -Date: Sun, 31 Mar 2024 12:53:20 -0400 -Subject: [PATCH] Fix two bugs with RGBASM fixed-point math (#1388) - -- Fixed-point formulas are implemented using IEEE-754 floating-point - internally, which could give infinity or NaN values whose conversion - to fixed-point integer was platform-dependent. -- Formatting fixed-point $8000_0000 (INT32_MIN, -2147483648) was - not putting the negative sign in front. ---- - src/asm/fixpoint.cpp | 10 +++++++++- - src/asm/format.cpp | 22 +++++++++++++--------- - test/asm/format-extremes.asm | 8 ++++++++ - test/asm/format-extremes.out | 4 ++++ - test/asm/math.asm | 8 ++++++-- - 5 files changed, 40 insertions(+), 12 deletions(-) - create mode 100644 test/asm/format-extremes.asm - create mode 100644 test/asm/format-extremes.out - -diff --git a/src/asm/fixpoint.cpp b/src/asm/fixpoint.cpp -index 97a091af..9334bbba 100644 ---- a/src/asm/fixpoint.cpp -+++ b/src/asm/fixpoint.cpp -@@ -15,7 +15,6 @@ - #endif - - #define fix2double(i, q) ((double)((i) / pow(2.0, q))) --#define double2fix(d, q) ((int32_t)round((d) * pow(2.0, q))) - - // 2*pi radians == 1 turn - #define turn2rad(f) ((f) * (M_PI * 2)) -@@ -33,6 +32,15 @@ double fix_PrecisionFactor(void) - return pow(2.0, fixPrecision); - } - -+static int32_t double2fix(double d, int32_t q) -+{ -+ if (isnan(d)) -+ return 0; -+ if (isinf(d)) -+ return d < 0 ? INT32_MIN : INT32_MAX; -+ return (int32_t)round(d * pow(2.0, q)); -+} -+ - int32_t fix_Sin(int32_t i, int32_t q) - { - return double2fix(sin(turn2rad(fix2double(i, q))), q); -diff --git a/src/asm/format.cpp b/src/asm/format.cpp -index 553e5c77..2b8b8a8a 100644 ---- a/src/asm/format.cpp -+++ b/src/asm/format.cpp -@@ -180,11 +180,10 @@ void fmt_PrintNumber(char *buf, size_t bufLen, struct FormatSpec const *fmt, uin - char sign = fmt->sign; // 0 or ' ' or '+' - - if (fmt->type == 'd' || fmt->type == 'f') { -- int32_t v = value; -- -- if (v < 0 && v != INT32_MIN) { -+ if (int32_t v = value; v < 0) { - sign = '-'; -- value = -v; -+ if (v != INT32_MIN) -+ value = -v; - } - } - -@@ -229,15 +228,20 @@ void fmt_PrintNumber(char *buf, size_t bufLen, struct FormatSpec const *fmt, uin - fracWidth = 255; - } - -- snprintf(valueBuf, sizeof(valueBuf), "%.*f", (int)fracWidth, -- value / fix_PrecisionFactor()); -+ double fval = fabs(value / fix_PrecisionFactor()); -+ snprintf(valueBuf, sizeof(valueBuf), "%.*f", (int)fracWidth, fval); -+ } else if (fmt->type == 'd') { -+ // Decimal numbers may be formatted with a '-' sign by `snprintf`, so `abs` prevents that, -+ // with a special case for `INT32_MIN` since `labs(INT32_MIN)` is UB. The sign will be -+ // printed later from `signChar`. -+ uint32_t uval = value != (uint32_t)INT32_MIN ? labs((int32_t)value) : value; -+ snprintf(valueBuf, sizeof(valueBuf), "%" PRIu32, uval); - } else { -- char const *spec = fmt->type == 'd' ? "%" PRId32 -- : fmt->type == 'u' ? "%" PRIu32 -+ char const *spec = fmt->type == 'u' ? "%" PRIu32 - : fmt->type == 'X' ? "%" PRIX32 - : fmt->type == 'x' ? "%" PRIx32 - : fmt->type == 'o' ? "%" PRIo32 -- : "%" PRId32; -+ : "%" PRIu32; - - snprintf(valueBuf, sizeof(valueBuf), spec, value); - } -diff --git a/test/asm/format-extremes.asm b/test/asm/format-extremes.asm -new file mode 100644 -index 00000000..19ddb677 ---- /dev/null -+++ b/test/asm/format-extremes.asm -@@ -0,0 +1,8 @@ -+MACRO test -+ def v = \1 -+ println "{#09x:v} = {#012o:v} = {#033b:v} = {u:v}U = {+d:v} = {+.16f:v}" -+ENDM -+ test $7fff_ffff ; INT32_MAX -+ test $8000_0000 ; INT32_MIN -+ test $0000_0000 ; UINT32_MIN -+ test $ffff_ffff ; UINT32_MAX -diff --git a/test/asm/format-extremes.out b/test/asm/format-extremes.out -new file mode 100644 -index 00000000..9e19b2f4 ---- /dev/null -+++ b/test/asm/format-extremes.out -@@ -0,0 +1,4 @@ -+$7fffffff = &17777777777 = %01111111111111111111111111111111 = 2147483647U = +2147483647 = +32767.9999847412109375 -+$80000000 = &20000000000 = %10000000000000000000000000000000 = 2147483648U = -2147483648 = -32768.0000000000000000 -+$00000000 = &00000000000 = %00000000000000000000000000000000 = 0U = +0 = +0.0000000000000000 -+$ffffffff = &37777777777 = %11111111111111111111111111111111 = 4294967295U = -1 = -0.0000152587890625 -diff --git a/test/asm/math.asm b/test/asm/math.asm -index b189fca8..9f87a11b 100644 ---- a/test/asm/math.asm -+++ b/test/asm/math.asm -@@ -19,14 +19,18 @@ ENDM - - assert DIV(5.0, 2.0) == 2.5 - assert DIV(-5.0, 2.0) == -2.5 -- assert DIV(-5.0, 0.0) == $8000_0000 -+ assert DIV(5.0, 0.0) == $7fff_ffff ; +inf => INT32_MAX -+ assert DIV(-5.0, 0.0) == $8000_0000 ; -inf => INT32_MIN -+ assert DIV(0.0, 0.0) == $0000_0000 ; nan => 0 - - assert MUL(10.0, 0.5) == 5.0 - assert MUL(10.0, 0.0) == 0.0 - - assert FMOD(5.0, 2.0) == 1.0 - assert FMOD(-5.0, 2.0) == -1.0 -- assert FMOD(-5.0, 0.0) == $8000_0000 -+ assert FMOD(5.0, 0.0) == 0 ; nan -+ assert FMOD(-5.0, 0.0) == 0 ; nan -+ assert FMOD(0.0, 0.0) == 0 ; nan - - assert POW(10.0, 2.0) == 100.0 - assert POW(100.0, 0.5) == 10.0 diff --git a/dev-util/rgbds/rgbds-0.6.1.ebuild b/dev-util/rgbds/rgbds-0.6.1.ebuild deleted file mode 100644 index 91276f0bb814..000000000000 --- a/dev-util/rgbds/rgbds-0.6.1.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2022-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic toolchain-funcs - -DESCRIPTION="Rednex Game Boy Development System" -HOMEPAGE="https://rgbds.gbdev.io/" -if [[ "${PV}" == *9999 ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/gbdev/${PN}.git" -else - SRC_URI="https://github.com/gbdev/${PN}/archive/v${PV}/${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86" -fi - -LICENSE="MIT" -SLOT="0" - -DEPEND="media-libs/libpng" -RDEPEND="${DEPEND}" -BDEPEND=" - sys-devel/bison - virtual/pkgconfig -" - -src_compile() { - append-flags -DNDEBUG - - emake Q= \ - CC="$(tc-getCC)" \ - CXX="$(tc-getCXX)" \ - PKG_CONFIG="$(tc-getPKG_CONFIG)" -} - -src_install() { - emake DESTDIR="${D}" PREFIX="${EPREFIX}"/usr Q= STRIP= install - dodoc README.rst -} diff --git a/dev-util/rgbds/rgbds-0.7.0-r1.ebuild b/dev-util/rgbds/rgbds-0.9.0.ebuild index 052429ca8c57..7f24c27d44dd 100644 --- a/dev-util/rgbds/rgbds-0.7.0-r1.ebuild +++ b/dev-util/rgbds/rgbds-0.9.0.ebuild @@ -25,11 +25,6 @@ BDEPEND=" virtual/pkgconfig " -PATCHES=( - # https://bugs.gentoo.org/928268 - "${FILESDIR}"/${P}-fix-nan-tests.patch -) - src_compile() { append-flags -DNDEBUG @@ -51,5 +46,5 @@ src_test() { src_install() { emake DESTDIR="${D}" PREFIX="${EPREFIX}"/usr Q= STRIP= install - dodoc README.rst + dodoc README.md } |