NetBSD Problem Report #57881

From www@netbsd.org  Sat Jan 27 15:35:30 2024
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 324E91A9239
	for <gnats-bugs@gnats.NetBSD.org>; Sat, 27 Jan 2024 15:35:30 +0000 (UTC)
Message-Id: <20240127153430.8E6E11A923A@mollari.NetBSD.org>
Date: Sat, 27 Jan 2024 15:34:30 +0000 (UTC)
From: campbell+netbsd@mumble.net
Reply-To: campbell+netbsd@mumble.net
To: gnats-bugs@NetBSD.org
Subject: vax libm is missing various symbols
X-Send-Pr-Version: www-1.0

>Number:         57881
>Category:       port-vax
>Synopsis:       vax libm is missing various symbols
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-vax-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 27 15:40:01 +0000 2024
>Last-Modified:  Wed Oct 02 12:50:01 +0000 2024
>Originator:     Taylor R Campbell
>Release:        current, 10, ...
>Organization:
The NetLibm Foundation
>Environment:
vax
>Description:
vax libm is missing various symbols including llround and rintf.

I mechanically compared amd64 libm and vax libm.  The following symbols are in amd64 libm but not in vax libm (possibly missing, or possibly not applicable to vax -- I didn't put any further thought into this):

acoshf
acoshl
acosl
asinhf
asinhl
asinl
atan2l
atanhl
atanl
cabsf
coshl
cosl
dremf
erfcl
erfl
exp2l
expl
expm1l
fabsf
fabsl
fdim
fdimf
fdiml
feclearexcept
fedisableexcept
feenableexcept
fegetenv
fegetexcept
fegetexceptflag
fegetround
feholdexcept
feraiseexcept
fesetenv
fesetexceptflag
fesetround
fetestexcept
feupdateenv
fma
fmaf
fmal
fminl
frexp
frexpf
frexpl
gamma_r
gammaf
gammaf_r
ilogbl
isinff
j0f
j1f
jnf
lgamma_r
lgammaf
lgammaf_r
lgammal
llrintl
llround
llroundf
llroundl
log10l
log1pl
log2l
logl
lrintl
lroundl
matherr
modf
modff
nearbyint
nearbyintf
nearbyintl
nextafter
nextafterf
nextafterl
nexttoward
nexttowardf
nexttowardl
remainder
remainderf
remainderl
remquo
remquof
remquol
rintf
rintl
scalbf
scalbln
scalblnf
scalblnl
significand
significandf
sincosl
sinhl
sinl
tanhl
tanl
tgamma
tgammaf
tgammal
y0f
y1f
ynf

Also, the following symbols are in vax libm but not in amd64 libm (possibly only relevant on vax, or possibly extraneous internal symbols that shouldn't have been exposed):

d_cbrt
d_sqrt
dcbrt_
infnan
z_abs
>How-To-Repeat:
build mesa
>Fix:
Yes, please!

>Audit-Trail:
From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57881 CVS commit: src/tests/lib/libm
Date: Sun, 5 May 2024 14:29:38 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Sun May  5 14:29:38 UTC 2024

 Modified Files:
 	src/tests/lib/libm: t_next.c

 Log Message:
 tests/lib/libm/t_next: Disable this test on VAX.

 But leave a replacement xfail test that fails unconditionally, to
 leave a reminder in the tests of PR 57881: vax libm is missing
 various symbols.


 To generate a diff of this commit:
 cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libm/t_next.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57881 CVS commit: src/lib/libm/arch/vax
Date: Mon, 6 May 2024 15:33:04 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Mon May  6 15:33:04 UTC 2024

 Modified Files:
 	src/lib/libm/arch/vax: n_sincos.S n_tan.S

 Log Message:
 libm: Expose sinl, cosl, tanl on vax.

 While here, make sin, cos, and tan be weak aliases for internal
 symbols _sin, _cos, and _tan; likewise sinf, cosf, tanf.

 PR 57881


 To generate a diff of this commit:
 cvs rdiff -u -r1.9 -r1.10 src/lib/libm/arch/vax/n_sincos.S
 cvs rdiff -u -r1.7 -r1.8 src/lib/libm/arch/vax/n_tan.S

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57881 CVS commit: src/lib/libm/noieee_src
Date: Mon, 6 May 2024 15:52:53 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Mon May  6 15:52:53 UTC 2024

 Modified Files:
 	src/lib/libm/noieee_src: n_sincos1.c

 Log Message:
 libm: Expose sincosl on vax.

 PR 57881


 To generate a diff of this commit:
 cvs rdiff -u -r1.1 -r1.2 src/lib/libm/noieee_src/n_sincos1.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57881 CVS commit: src/lib/libm/arch/vax
Date: Tue, 7 May 2024 15:49:34 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Tue May  7 15:49:33 UTC 2024

 Modified Files:
 	src/lib/libm/arch/vax: n_atan2.S

 Log Message:
 libm/arch/vax: Expose atan2l.

 PR port-vax/57881: vax libm is missing various symbols


 To generate a diff of this commit:
 cvs rdiff -u -r1.10 -r1.11 src/lib/libm/arch/vax/n_atan2.S

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57881 CVS commit: src/lib/libm
Date: Wed, 8 May 2024 02:08:11 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Wed May  8 02:08:11 UTC 2024

 Modified Files:
 	src/lib/libm: m.vax.expsym
 	src/lib/libm/noieee_src: n_floor.c

 Log Message:
 libm: Add rintl, rintf to non-IEEE754 architectures.

 While here, delete #ifdef to handle ns32k -- I don't think that's
 gonna be relevant any time soon; in case you hadn't noticed, the
 world has moved on from ns32k to vax by now.

 PR 57881


 To generate a diff of this commit:
 cvs rdiff -u -r1.2 -r1.3 src/lib/libm/m.vax.expsym
 cvs rdiff -u -r1.8 -r1.9 src/lib/libm/noieee_src/n_floor.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57881 CVS commit: src/lib/libm/noieee_src
Date: Thu, 9 May 2024 12:18:48 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Thu May  9 12:18:48 UTC 2024

 Modified Files:
 	src/lib/libm/noieee_src: n_ilogb.c

 Log Message:
 libm: Define ilogbl as alias for ilogb on vax.

 PR 57881


 To generate a diff of this commit:
 cvs rdiff -u -r1.1 -r1.2 src/lib/libm/noieee_src/n_ilogb.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57881 CVS commit: src/lib/libm
Date: Sun, 9 Jun 2024 14:09:27 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Sun Jun  9 14:09:27 UTC 2024

 Modified Files:
 	src/lib/libm: m.vax.expsym
 	src/lib/libm/noieee_src: n_lgamma.c

 Log Message:
 libm: Define lgamma_r, lgammal, lgammal_r on non-IEEE754.

 Missing internal aliases _lgamma_r and _lgammal_r -- TBD.

 PR 57881


 To generate a diff of this commit:
 cvs rdiff -u -r1.5 -r1.6 src/lib/libm/m.vax.expsym
 cvs rdiff -u -r1.7 -r1.8 src/lib/libm/noieee_src/n_lgamma.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Rin Okuyama" <rin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57881 CVS commit: src/tests/lib/libm
Date: Fri, 20 Sep 2024 22:24:51 +0000

 Module Name:	src
 Committed By:	rin
 Date:		Fri Sep 20 22:24:51 UTC 2024

 Modified Files:
 	src/tests/lib/libm: t_remquo.c

 Log Message:
 t_remquo: Work around missing remquo(3) for vax

 Part of PR port-vax/57881


 To generate a diff of this commit:
 cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libm/t_remquo.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57881 CVS commit: [netbsd-10] src
Date: Wed, 2 Oct 2024 12:46:14 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Wed Oct  2 12:46:13 UTC 2024

 Modified Files:
 	src/distrib/sets/lists/debug [netbsd-10]: mi
 	src/distrib/sets/lists/tests [netbsd-10]: mi
 	src/lib/libm/src [netbsd-10]: s_remquo.c
 	src/tests/lib/libm [netbsd-10]: Makefile
 Added Files:
 	src/tests/lib/libm [netbsd-10]: t_remquo.c

 Log Message:
 Pull up following revision(s) (requested by gdt in ticket #912):

 	distrib/sets/lists/debug/mi: revision 1.449
 	lib/libm/src/s_remquo.c: revision 1.3
 	lib/libm/src/s_remquo.c: revision 1.4
 	distrib/sets/lists/tests/mi: revision 1.1339
 	tests/lib/libm/t_remquo.c: revision 1.1
 	tests/lib/libm/t_remquo.c: revision 1.2
 	tests/lib/libm/Makefile: revision 1.51

 tests: Add test for remquo

 This test currently fails, because remquo has bugs.  (A bugfix will be
 committed soon.)  Test vectors derived from results from code by
 Charles Karney in GeodesicLib/proj, and manually inspected.

 t_remquo: Work around missing remquo(3) for vax
 Part of PR port-vax/57881

 libm/remquo: Fix bug where wrong quotient was returned

 Fix taken from FreeBSD:
   https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=166463
   https://cgit.freebsd.org/src/commit/lib/msun/src/s_remquo.c?id=1cbd288942b08217e99bf889e0967895d53af00c

 FreeBSD commit message:
   Fix a bug in remquo{,f,l}, in which the quotient didn't always have the
   correct sign when the remainder was 0.
   Fix a separate bug in remquo alone, in which the remainder and
   quotient were both off by a bit in certain cases involving subnormal
   remainders.
   The bugs affected all platforms except amd64 and i386, on which the
   routines are implemented in assembly.

 (On NetBSD, this bug manifests on amd64.)

 libm/remquo: Fix bug where remquo returned wrong sign of quo
 ISO C requires that quo be congruent to the quotient mod 2^k and have
 a particular sign.  The current code can return 0 when it should be
 negative.
 Because the code chooses k=31 (for the requirement of congruence
 modulo 2^k), the only value available (in ILP32 or LP64) that is
 negative and congruent to 0 is 0x80000000.  In the specific case of
 wanting "-0", return 0x80000000.
 Resolves t_remquo test failure.


 To generate a diff of this commit:
 cvs rdiff -u -r1.394.2.9 -r1.394.2.10 src/distrib/sets/lists/debug/mi
 cvs rdiff -u -r1.1238.2.11 -r1.1238.2.12 src/distrib/sets/lists/tests/mi
 cvs rdiff -u -r1.1 -r1.1.56.1 src/lib/libm/src/s_remquo.c
 cvs rdiff -u -r1.48 -r1.48.2.1 src/tests/lib/libm/Makefile
 cvs rdiff -u -r0 -r1.2.2.2 src/tests/lib/libm/t_remquo.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2024 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.