<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libc/stdlib/Symbol.map, branch releng/14.4</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F14.4</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F14.4'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2023-12-13T22:08:13Z</updated>
<entry>
<title>libc: Remove empty comments in Symbol.map</title>
<updated>2023-12-13T22:08:13Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2023-11-15T17:51:03Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=695639d2f4e1d618ffa10cf44a91db6dddf0709f'/>
<id>urn:sha1:695639d2f4e1d618ffa10cf44a91db6dddf0709f</id>
<content type='text'>
These were left over from $FreeBSD$ removal.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D42612

(cherry picked from commit 1ca63a8219b88b752b064d19bd3428c61dbcf1f9)
</content>
</entry>
<entry>
<title>Remove $FreeBSD$: one-line .h pattern</title>
<updated>2023-08-16T17:54:23Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2023-08-16T17:54:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=42b388439bd3795e09258c57a74ce9eec3651c7b'/>
<id>urn:sha1:42b388439bd3795e09258c57a74ce9eec3651c7b</id>
<content type='text'>
Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/
</content>
</entry>
<entry>
<title>Revert "libc: Implement bsort(3) a bitonic type of sorting algorithm."</title>
<updated>2023-04-20T17:16:14Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2023-04-20T16:50:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=bb8e8e230d94c9522bd9ff95c13dc9f5b1592929'/>
<id>urn:sha1:bb8e8e230d94c9522bd9ff95c13dc9f5b1592929</id>
<content type='text'>
Some points for the future:
 - libc is not the right place for sorting algorithms.
   Probably libutil is better suited for this purpose or
   a dedicated libsort. Should move all sorting algorithms
   away from libc eventually.
 - CheriBSD uses capabilities for memory access, and could
   benefit from a standard memswap() function.
 - Do something about qsort() in FreeBSD's libc like:
   - Mark it deprecated on FreeBSD, as a first step,
     due to missing limits on CPU time.
   - Audit the use of qsort() in the FreeBSD base system
     and consider swapping to other existing sorting
     algorithms.

Discussed with:	brooks@

Differential Revision:	https://reviews.freebsd.org/D36493

This reverts commit a7469c9c0a504a5e6e9b89e148cd78df5e67ff7f.
This reverts commit 7d65a450cdcc7cc743f2ecd114ba3428a21c0033.
This reverts commit 8dcf3a82c54cb216df3213a013047907636a01da.
</content>
</entry>
<entry>
<title>libc: Implement bsort(3) a bitonic type of sorting algorithm.</title>
<updated>2023-04-19T12:04:22Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2022-09-08T10:16:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8dcf3a82c54cb216df3213a013047907636a01da'/>
<id>urn:sha1:8dcf3a82c54cb216df3213a013047907636a01da</id>
<content type='text'>
The bsort(3) algorithm works by swapping objects, similarly to qsort(3),
and does not require any significant amount of additional memory.

The bsort(3) algorithm doesn't suffer from the processing time issues
known the plague the qsort(3) family of algorithms, and is bounded by
a complexity of O(log2(N) * log2(N) * N), where N is the number of
elements in the sorting array. The additional complexity compared to
mergesort(3) is a fair tradeoff in situations where no memory may
be allocated.

The bsort(3) APIs are identical to those of qsort(3), allowing for
easy drop-in and testing.

The design of the bsort(3) algorithm allows for future parallell CPU
execution when sorting arrays. The current version of the bsort(3)
algorithm is single threaded. This is possible because fixed areas
of the sorting data is compared at a time, and can easily be divided
among different CPU's to sort large arrays faster.

Reviewed by:	gbe@, delphij@, pauamma_gundo.com (manpages)
Sponsored by:	NVIDIA Networking
Differential Revision:	https://reviews.freebsd.org/D36493
</content>
</entry>
<entry>
<title>Add GNU glibc compatible secure_getenv</title>
<updated>2023-03-14T04:19:24Z</updated>
<author>
<name>lucy</name>
<email>seafork@disroot.org</email>
</author>
<published>2023-03-13T22:01:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=adeca21464d25bc61f98968a5c1e76ab3c808ae4'/>
<id>urn:sha1:adeca21464d25bc61f98968a5c1e76ab3c808ae4</id>
<content type='text'>
Add mostly glibc and msl compatible secure_getenv. Return NULL if
issetugid() indicates the process is tainted, otherwise getenv(x).  The
rational behind this is the fact that many Linux applications use this
function instead of getenv() as it's widely consider a, "best
practice".

Reviewed by: imp, mjg (feedback)
Pull Request: https://github.com/freebsd/freebsd-src/pull/686
Signed-off-by: Lucy Marsh &lt;seafork@disroot.org&gt;
</content>
</entry>
<entry>
<title>xlocale: garbage collect references to strtoq_l/strtouq_l</title>
<updated>2023-03-02T20:53:29Z</updated>
<author>
<name>Val Packett</name>
<email>val@packett.cool</email>
</author>
<published>2023-02-06T19:43:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=939b24b0abbd703948981c9bcb07afd7b01ca3b1'/>
<id>urn:sha1:939b24b0abbd703948981c9bcb07afd7b01ca3b1</id>
<content type='text'>
These were explicitly never implemented (see
lib/libc/locale/DESIGN.xlocale), but were referenced in the
manpage and the symbol map.

Fixes:          3c87aa1d3dc ("Implement xlocale APIs from Darwin")
Reported by:    ld.lld 16 being --no-undefined-version by default
Reviewed by:    theraven, emaste
Sponsored by:   https://www.patreon.com/valpackett
Pull Request:	https://github.com/freebsd/freebsd-src/pull/679
Differential Revision: https://reviews.freebsd.org/D38408
</content>
</entry>
<entry>
<title>Alter the prototype of qsort_r(3) to match POSIX, which adopted the</title>
<updated>2022-09-30T22:26:30Z</updated>
<author>
<name>Ed Schouten</name>
<email>ed@FreeBSD.org</email>
</author>
<published>2022-09-30T22:26:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=af3c78886fd8d4ca5eebdbe581a459a6f6d29d6a'/>
<id>urn:sha1:af3c78886fd8d4ca5eebdbe581a459a6f6d29d6a</id>
<content type='text'>
glibc-based interface.

Unfortunately, the glibc maintainers, despite knowing the existence
of the FreeBSD qsort_r(3) interface in 2004 and refused to add the
same interface to glibc based on grounds of the lack of standardization
and portability concerns, has decided it was a good idea to introduce
their own qsort_r(3) interface in 2007 as a GNU extension with a
slightly different and incompatible interface.

With the adoption of their interface as POSIX standard, let's switch
to the same prototype, there is no need to remain incompatible.

C++ and C applications written for the historical FreeBSD interface
get source level compatibility when building in C++ mode, or when
building with a C compiler with C11 generics support, provided that
the caller passes a fifth parameter of qsort_r() that exactly matches
the historical FreeBSD comparator function pointer type and does not
redefine the historical qsort_r(3) prototype in their source code.

Symbol versioning is used to keep old binaries working.

MFC:			never
Relnotes:		yes
Reviewed by:		cem, imp, hps, pauamma
Differential revision:	https://reviews.freebsd.org/D17083
</content>
</entry>
<entry>
<title>libc: add clearenv function</title>
<updated>2021-11-07T15:20:15Z</updated>
<author>
<name>Mariusz Zaborski</name>
<email>oshogbo@FreeBSD.org</email>
</author>
<published>2021-11-07T15:15:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=597b02675751e48dd04777f1e91fee382bf3a966'/>
<id>urn:sha1:597b02675751e48dd04777f1e91fee382bf3a966</id>
<content type='text'>
The clearenv(3) function allows us to clear all environment
variable in one shot. This may be useful for security programs that
want to control the environment or what variables are passed to new
spawned programs.

Reviewed by:	scf, markj (secteam), 0mp (manpages)
Differential Revision:	https://reviews.freebsd.org/D28223
</content>
</entry>
<entry>
<title>Further refinements of ptsname_r(3) interface:</title>
<updated>2020-10-20T01:29:45Z</updated>
<author>
<name>Xin LI</name>
<email>delphij@FreeBSD.org</email>
</author>
<published>2020-10-20T01:29:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5011fb430a898f8ef4f53f4ae2034d029cd388c0'/>
<id>urn:sha1:5011fb430a898f8ef4f53f4ae2034d029cd388c0</id>
<content type='text'>
 - Hide ptsname_r under __BSD_VISIBLE for now as the specification
   is not finalized at this time.
 - Keep Symbol.map sorted.
 - Avoid the interposing of ptsname_r(3) from an user application
   from breaking ptsname(3) by making the implementation a static
   method and call the static function from ptsname(3) instead.

Reported by:	kib
Reviewed by:	kib, jilles
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D26845
</content>
</entry>
<entry>
<title>Implement ptsname_r.</title>
<updated>2020-10-17T04:14:38Z</updated>
<author>
<name>Xin LI</name>
<email>delphij@FreeBSD.org</email>
</author>
<published>2020-10-17T04:14:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3e7224dffe26948af09082309bbb6a6803e12049'/>
<id>urn:sha1:3e7224dffe26948af09082309bbb6a6803e12049</id>
<content type='text'>
MFC after:	2 weeks
PR:		250062
Reviewed by:	jilles, 0mp, Ray &lt;i maskray me&gt;
Differential Revision:	https://reviews.freebsd.org/D26647
</content>
</entry>
</feed>
