From nobody Mon Apr 6 06:54:50 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fq0SV4VPYz6Yscg for ; Mon, 06 Apr 2026 06:54:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fq0SV29Ksz3fs3 for ; Mon, 06 Apr 2026 06:54:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1775458490; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VtqtU4llYrpXkWKmsJ7568swAHgKfXB9K9lIeb0E8Bg=; b=XvlzsDGbR1pU3dpuFr+GViqIuv/WTXQQsgvJLu1NG4LRxKrIsN0Y6QTiEQ16QpEYdi28M3 S3WW50tYOyPP65qWQ/esZwp1mMvuTpTUHQydndthKLZ3aWl+8B3KghVShqq6HNLH8jq3m/ Jbv4E/UnTUwMPDWkcxyC5+WUK5q7jfJTI/cHdijkNAyGGfAlQ09wGaWvwyjy7Lw2bU0VDY 8iV9iRqS6xB/hJMr+S55fbC+tek0OUSqcJKHMShVtt3mwzHgIsNvw7VQOClURxS6PDxbMf wD1csPPKclaBKDKXXXpwoVQPP3NSf2whDMIUsGqaGiuigQAUSwLg/df9giPAbQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1775458490; a=rsa-sha256; cv=none; b=b980rGsuXbLxNmZSXHk1ufHO1BVC3qHC5M0DOzU8opBrex4cYq0VumV0eHmMMLA9O9p2yA 38JVXQwlGYxU8lVRKzaGu8WeM4FbC12pVAWMhtSIISTT8ZkF6YViui4ncnPI2u55grdPyW Oq2ZZzrjkT7IQDgr6YDdrOj73kHzlYTDqyuKFyi/RWuWWYKDVl66REKwJWaAw4kIArgJXK oUCVccXrWlNjZHZLmZhXe+ysl7rnurkwTnqIHSGgDb22Z3uYUAebZKHrL6xwMFraucwBw9 pcELIlyCN4iJ2bj2u4nucRaMV/0GvEeMQpgl2Ryncm8m9ecIjF1K6uUEpRiiog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1775458490; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VtqtU4llYrpXkWKmsJ7568swAHgKfXB9K9lIeb0E8Bg=; b=Un4bDd37o9vV/Jez0f+Fomapt2f1USqBYWGc0SvU0igXN2cx7ImTcMTsV05yUyA3DwBQE5 ATk/eQO63qRE3P6Ud1OtF936hnZrE6dr+eo8va8ElT83jJoJBkEU3kYJAgcwyL4W7MA+2p DU0nSb3ImrHohyjjRFQensftiS84x/4xARLcP624jZWMSkEqU9Ir1G9Gykb5OzwYATIZdY PRiIFPVQN/9qT13GE4C068Sl/UxQ/3LAyMRJwn5FdNsgRDgVoibups3Ntu1gOSO4YwcxcH HlqWxjorEQUJzxGv9PUs489s62rbVva62mi3TzoZeAqn/p7mZfddK/AFSuBT5g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fq0SV159qzjVt for ; Mon, 06 Apr 2026 06:54:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3421b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 06 Apr 2026 06:54:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 2d81a953ca54 - stable/15 - msun/powerpc: convert fenv functions to proper linkage List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 2d81a953ca54309235e136f5ea6766f08e48a6ca Auto-Submitted: auto-generated Date: Mon, 06 Apr 2026 06:54:50 +0000 Message-Id: <69d358ba.3421b.17d89d7a@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2d81a953ca54309235e136f5ea6766f08e48a6ca commit 2d81a953ca54309235e136f5ea6766f08e48a6ca Author: Konstantin Belousov AuthorDate: 2026-03-29 02:06:02 +0000 Commit: Konstantin Belousov CommitDate: 2026-04-05 07:47:10 +0000 msun/powerpc: convert fenv functions to proper linkage PR: 277958 (cherry picked from commit e4505a58a77f6f4f2df60d26ea99710af6c6b3cf) --- lib/msun/powerpc/fenv.c | 89 ++++++++++++++++++++++++++++++++++++++++--------- lib/msun/powerpc/fenv.h | 51 +++++++++++++++++++++------- 2 files changed, 112 insertions(+), 28 deletions(-) diff --git a/lib/msun/powerpc/fenv.c b/lib/msun/powerpc/fenv.c index b0f32c67b667..d13600ae8d6c 100644 --- a/lib/msun/powerpc/fenv.c +++ b/lib/msun/powerpc/fenv.c @@ -49,25 +49,10 @@ int return (__feclearexcept_int(excepts)); } -extern inline int fegetexceptflag(fexcept_t *__flagp, int __excepts); -extern inline int fesetexceptflag(const fexcept_t *__flagp, int __excepts); -#ifndef __SPE__ -extern inline int feraiseexcept(int __excepts); -#endif -extern inline int fetestexcept(int __excepts); -extern inline int fegetround(void); -extern inline int fesetround(int __round); -extern inline int fegetenv(fenv_t *__envp); -extern inline int feholdexcept(fenv_t *__envp); -extern inline int fesetenv(const fenv_t *__envp); -extern inline int feupdateenv(const fenv_t *__envp); -extern inline int feenableexcept(int __mask); -extern inline int fedisableexcept(int __mask); - #ifdef __SPE__ #define PMAX 0x7f7fffff #define PMIN 0x00800000 -int feraiseexcept(int __excepts) +int (feraiseexcept)(int __excepts) { uint32_t spefscr; @@ -87,3 +72,75 @@ int feraiseexcept(int __excepts) return (0); } #endif + +int +(fegetexceptflag)(fexcept_t *flagp, int excepts) +{ + return (__fegetexceptflag_int(flagp, excepts)); +} + +int +(fesetexceptflag)(const fexcept_t *flagp, int excepts) +{ + return (__fesetexceptflag_int(flagp, excepts)); +} + +int +(feraiseexcept)(int excepts) +{ + return (__feraiseexcept_int(excepts)); +} + +int +(fetestexcept)(int excepts) +{ + return (__fetestexcept_int(excepts)); +} + +int +(fegetround)(void) +{ + return (__fegetround_int()); +} + +int +(fesetround)(int round) +{ + return (__fesetround_int(round)); +} + +int +(fegetenv)(fenv_t *envp) +{ + return (__fegetenv_int(envp)); +} + +int +(feholdexcept)(fenv_t *envp) +{ + return (__feholdexcept_int(envp)); +} + +int +(fesetenv)(const fenv_t *envp) +{ + return (__fesetenv_int(envp)); +} + +int +(feupdateenv)(const fenv_t *envp) +{ + return (__feupdateenv_int(envp)); +} + +int +(feenableexcept)(int mask) +{ + return (__feenableexcept_int(mask)); +} + +int +(fedisableexcept)(int mask) +{ + return (__fedisableexcept_int(mask)); +} diff --git a/lib/msun/powerpc/fenv.h b/lib/msun/powerpc/fenv.h index 2af5cda5f9ea..21a99e0fbb5f 100644 --- a/lib/msun/powerpc/fenv.h +++ b/lib/msun/powerpc/fenv.h @@ -131,7 +131,28 @@ union __fpscr { }; int feclearexcept(int); +int fegetexceptflag(fexcept_t *, int); +int fesetexceptflag(const fexcept_t *, int); +int feraiseexcept(int); +int fetestexcept(int); +int fegetround(void); +int fesetround(int); +int fegetenv(fenv_t *); +int feholdexcept(fenv_t *); +int fesetenv(const fenv_t *); +int feupdateenv(const fenv_t *); + #define feclearexcept(a) __feclearexcept_int(a) +#define fegetexceptflag(e, a) __fegetexceptflag_int(e, a) +#define fesetexceptflag(e, a) __fesetexceptflag_int(e, a) +#define feraiseexcept(a) __feraiseexcept_int(a) +#define fetestexcept(a) __fetestexcept_int(a) +#define fegetround() __fegetround_int() +#define fesetround(a) __fesetround_int(a) +#define fegetenv(e) __fegetenv_int(e) +#define feholdexcept(e) __feholdexcept_int(e) +#define fesetenv(e) __fesetenv_int(e) +#define feupdateenv(e) __feupdateenv_int(e) __fenv_static inline int __feclearexcept_int(int __excepts) @@ -147,7 +168,7 @@ __feclearexcept_int(int __excepts) } __fenv_static inline int -fegetexceptflag(fexcept_t *__flagp, int __excepts) +__fegetexceptflag_int(fexcept_t *__flagp, int __excepts) { union __fpscr __r; @@ -157,7 +178,7 @@ fegetexceptflag(fexcept_t *__flagp, int __excepts) } __fenv_static inline int -fesetexceptflag(const fexcept_t *__flagp, int __excepts) +__fesetexceptflag_int(const fexcept_t *__flagp, int __excepts) { union __fpscr __r; @@ -174,7 +195,7 @@ fesetexceptflag(const fexcept_t *__flagp, int __excepts) extern int feraiseexcept(int __excepts); #else __fenv_static inline int -feraiseexcept(int __excepts) +__feraiseexcept_int(int __excepts) { union __fpscr __r; @@ -188,7 +209,7 @@ feraiseexcept(int __excepts) #endif __fenv_static inline int -fetestexcept(int __excepts) +__fetestexcept_int(int __excepts) { union __fpscr __r; @@ -197,7 +218,7 @@ fetestexcept(int __excepts) } __fenv_static inline int -fegetround(void) +__fegetround_int(void) { union __fpscr __r; @@ -206,7 +227,7 @@ fegetround(void) } __fenv_static inline int -fesetround(int __round) +__fesetround_int(int __round) { union __fpscr __r; @@ -220,7 +241,7 @@ fesetround(int __round) } __fenv_static inline int -fegetenv(fenv_t *__envp) +__fegetenv_int(fenv_t *__envp) { union __fpscr __r; @@ -230,7 +251,7 @@ fegetenv(fenv_t *__envp) } __fenv_static inline int -feholdexcept(fenv_t *__envp) +__feholdexcept_int(fenv_t *__envp) { union __fpscr __r; @@ -242,7 +263,7 @@ feholdexcept(fenv_t *__envp) } __fenv_static inline int -fesetenv(const fenv_t *__envp) +__fesetenv_int(const fenv_t *__envp) { union __fpscr __r; @@ -252,7 +273,7 @@ fesetenv(const fenv_t *__envp) } __fenv_static inline int -feupdateenv(const fenv_t *__envp) +__feupdateenv_int(const fenv_t *__envp) { union __fpscr __r; @@ -265,8 +286,14 @@ feupdateenv(const fenv_t *__envp) #if __BSD_VISIBLE +int feenableexcept(int); +int fedisableexcept(int); + +#define feenableexcept(a) __feenableexcept_int(a) +#define fedisableexcept(a) __fedisableexcept_int(a) + __fenv_static inline int -feenableexcept(int __mask) +__feenableexcept_int(int __mask) { union __fpscr __r; fenv_t __oldmask; @@ -279,7 +306,7 @@ feenableexcept(int __mask) } __fenv_static inline int -fedisableexcept(int __mask) +__fedisableexcept_int(int __mask) { union __fpscr __r; fenv_t __oldmask;