The branch main has been updated by obiwac: URL: https://cgit.FreeBSD.org/src/commit/?id=98ffaae49fea5c478230ef68086bcea89a6f654b
commit 98ffaae49fea5c478230ef68086bcea89a6f654b Author: Aymeric Wibo <[email protected]> AuthorDate: 2026-02-19 03:02:19 +0000 Commit: Aymeric Wibo <[email protected]> CommitDate: 2026-02-21 23:22:05 +0000 libc: Roll {l,ll,imax}abs(3) manpages into just abs(3) No need to have 4 separate manpages for these functions. Use opportunity to change parameter names in the source from j -> i to reflect the name used in POSIX. (The ISO C standard uses j but i is a better name anyway.) Reviewed by: des, rpokala Approved by: rpokala Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D55361 --- lib/libc/stdlib/Makefile.inc | 5 ++- lib/libc/stdlib/abs.3 | 72 ++++++++++++++++++++++++++++++-------------- lib/libc/stdlib/abs.c | 4 +-- lib/libc/stdlib/imaxabs.3 | 60 ------------------------------------ lib/libc/stdlib/imaxabs.c | 4 +-- lib/libc/stdlib/labs.3 | 64 --------------------------------------- lib/libc/stdlib/labs.c | 4 +-- lib/libc/stdlib/llabs.3 | 60 ------------------------------------ lib/libc/stdlib/llabs.c | 4 +-- 9 files changed, 61 insertions(+), 216 deletions(-) diff --git a/lib/libc/stdlib/Makefile.inc b/lib/libc/stdlib/Makefile.inc index 3698377b9b27..2cdff5b934cb 100644 --- a/lib/libc/stdlib/Makefile.inc +++ b/lib/libc/stdlib/Makefile.inc @@ -91,7 +91,7 @@ SYM_MAPS+= ${LIBC_SRCTOP}/stdlib/Symbol.map MAN+= a64l.3 abort.3 abs.3 atexit.3 atof.3 \ atoi.3 atol.3 at_quick_exit.3 bsearch.3 \ div.3 exit.3 getenv.3 getopt.3 getopt_long.3 getsubopt.3 \ - hcreate.3 imaxabs.3 insque.3 labs.3 llabs.3 \ + hcreate.3 insque.3 \ lsearch.3 memalignment.3 memory.3 ptsname.3 qsort.3 \ quick_exit.3 \ radixsort.3 rand.3 random.3 reallocarray.3 reallocf.3 realpath.3 \ @@ -101,6 +101,9 @@ MAN+= a64l.3 abort.3 abs.3 atexit.3 atof.3 \ MLINKS+=a64l.3 l64a.3 \ a64l.3 l64a_r.3 +MLINKS+=abs.3 labs.3 \ + abs.3 llabs.3 \ + abs.3 imaxabs.3 MLINKS+=atol.3 atoll.3 MLINKS+=div.3 ldiv.3 \ div.3 lldiv.3 \ diff --git a/lib/libc/stdlib/abs.3 b/lib/libc/stdlib/abs.3 index d47f83ea0f73..b5844761ef48 100644 --- a/lib/libc/stdlib/abs.3 +++ b/lib/libc/stdlib/abs.3 @@ -1,5 +1,6 @@ .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. +.\" Copyright (c) 2026 Aymeric Wibo <[email protected]> .\" .\" This code is derived from software contributed to Berkeley by .\" the American National Standards Committee X3, on Information @@ -29,49 +30,74 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 3, 2022 +.Dd February 19, 2026 .Dt ABS 3 .Os .Sh NAME -.Nm abs -.Nd integer absolute value function -.Sh LIBRARY -.Lb libc +.Nm abs , +.Nm labs , +.Nm llabs , +.Nm imaxabs +.Nd return absolute value for integer types .Sh SYNOPSIS +.Lb libc .In stdlib.h .Ft int -.Fn abs "int j" +.Fn abs "int i" +.Ft long +.Fn labs "long i" +.Ft long long +.Fn llabs "long long i" +.In inttypes.h +.Ft intmax_t +.Fn imaxabs "intmax_t i" .Sh DESCRIPTION The -.Fn abs -function -computes -the absolute value of the integer -.Fa j . +.Fn abs , +.Fn labs , +.Fn llabs , +and +.Fn imaxabs +functions compute the absolute value of +.Fa i . .Sh RETURN VALUES The -.Fn abs -function -returns -the absolute value. +.Fn abs , +.Fn labs , +.Fn llabs , +and +.Fn imaxabs +functions return the absolute value. .Sh SEE ALSO .Xr cabs 3 , .Xr fabs 3 , .Xr floor 3 , -.Xr hypot 3 , -.Xr imaxabs 3 , -.Xr labs 3 , -.Xr llabs 3 , -.Xr math 3 +.Xr hypot 3 .Sh STANDARDS The -.Fn abs -function conforms to -.St -isoC-99 . +.Fn abs , +.Fn labs , +.Fn llabs , +and +.Fn imaxabs +functions conform to +.St -isoC-2023 +and +.St -p1003.1-2024 . .Sh HISTORY The .Fn abs function first appeared in .At v6 . +The +.Fn labs +function first appeared in +.Bx 4.3 . +The +.Fn llabs +and +.Fn imaxabs +functions first appeared in +.Fx 5.0 . .Sh BUGS The absolute value of the most negative integer remains negative. diff --git a/lib/libc/stdlib/abs.c b/lib/libc/stdlib/abs.c index baed3795bf5e..3ebbff748897 100644 --- a/lib/libc/stdlib/abs.c +++ b/lib/libc/stdlib/abs.c @@ -32,7 +32,7 @@ #include <stdlib.h> int -abs(int j) +abs(int i) { - return(j < 0 ? -j : j); + return(i < 0 ? -i : i); } diff --git a/lib/libc/stdlib/imaxabs.3 b/lib/libc/stdlib/imaxabs.3 deleted file mode 100644 index fa68216facc1..000000000000 --- a/lib/libc/stdlib/imaxabs.3 +++ /dev/null @@ -1,60 +0,0 @@ -.\" Copyright (c) 2001 Mike Barcroft <[email protected]> -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd November 14, 2001 -.Dt IMAXABS 3 -.Os -.Sh NAME -.Nm imaxabs -.Nd returns absolute value -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In inttypes.h -.Ft intmax_t -.Fn imaxabs "intmax_t j" -.Sh DESCRIPTION -The -.Fn imaxabs -function returns the absolute value of -.Fa j . -.Sh SEE ALSO -.Xr abs 3 , -.Xr fabs 3 , -.Xr hypot 3 , -.Xr labs 3 , -.Xr llabs 3 , -.Xr math 3 -.Sh STANDARDS -The -.Fn imaxabs -function conforms to -.St -isoC-99 . -.Sh HISTORY -The -.Fn imaxabs -function first appeared in -.Fx 5.0 . -.Sh BUGS -The absolute value of the most negative integer remains negative. diff --git a/lib/libc/stdlib/imaxabs.c b/lib/libc/stdlib/imaxabs.c index 08a27ac98da7..e0fd9448f0b2 100644 --- a/lib/libc/stdlib/imaxabs.c +++ b/lib/libc/stdlib/imaxabs.c @@ -29,7 +29,7 @@ #include <inttypes.h> intmax_t -imaxabs(intmax_t j) +imaxabs(intmax_t i) { - return (j < 0 ? -j : j); + return (i < 0 ? -i : i); } diff --git a/lib/libc/stdlib/labs.3 b/lib/libc/stdlib/labs.3 deleted file mode 100644 index 97f527b7d941..000000000000 --- a/lib/libc/stdlib/labs.3 +++ /dev/null @@ -1,64 +0,0 @@ -.\" Copyright (c) 1990, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software contributed to Berkeley by -.\" the American National Standards Committee X3, on Information -.\" Processing Systems. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd November 14, 2001 -.Dt LABS 3 -.Os -.Sh NAME -.Nm labs -.Nd return the absolute value of a long integer -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In stdlib.h -.Ft long -.Fn labs "long j" -.Sh DESCRIPTION -The -.Fn labs -function -returns the absolute value of the long integer -.Fa j . -.Sh SEE ALSO -.Xr abs 3 , -.Xr cabs 3 , -.Xr floor 3 , -.Xr imaxabs 3 , -.Xr llabs 3 , -.Xr math 3 -.Sh STANDARDS -The -.Fn labs -function -conforms to -.St -isoC . -.Sh BUGS -The absolute value of the most negative integer remains negative. diff --git a/lib/libc/stdlib/labs.c b/lib/libc/stdlib/labs.c index 23696f1c0f0c..93102b3a2b91 100644 --- a/lib/libc/stdlib/labs.c +++ b/lib/libc/stdlib/labs.c @@ -32,7 +32,7 @@ #include <stdlib.h> long -labs(long j) +labs(long i) { - return(j < 0 ? -j : j); + return(i < 0 ? -i : i); } diff --git a/lib/libc/stdlib/llabs.3 b/lib/libc/stdlib/llabs.3 deleted file mode 100644 index 6a12fd539dc6..000000000000 --- a/lib/libc/stdlib/llabs.3 +++ /dev/null @@ -1,60 +0,0 @@ -.\" Copyright (c) 2001 Mike Barcroft <[email protected]> -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd November 14, 2001 -.Dt LLABS 3 -.Os -.Sh NAME -.Nm llabs -.Nd returns absolute value -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In stdlib.h -.Ft "long long" -.Fn llabs "long long j" -.Sh DESCRIPTION -The -.Fn llabs -function returns the absolute value of -.Fa j . -.Sh SEE ALSO -.Xr abs 3 , -.Xr fabs 3 , -.Xr hypot 3 , -.Xr imaxabs 3 , -.Xr labs 3 , -.Xr math 3 -.Sh STANDARDS -The -.Fn llabs -function conforms to -.St -isoC-99 . -.Sh HISTORY -The -.Fn llabs -function first appeared in -.Fx 5.0 . -.Sh BUGS -The absolute value of the most negative integer remains negative. diff --git a/lib/libc/stdlib/llabs.c b/lib/libc/stdlib/llabs.c index ac151e3a5036..ff56e526b8a9 100644 --- a/lib/libc/stdlib/llabs.c +++ b/lib/libc/stdlib/llabs.c @@ -29,7 +29,7 @@ #include <stdlib.h> long long -llabs(long long j) +llabs(long long i) { - return (j < 0 ? -j : j); + return (i < 0 ? -i : i); }
