History log of /freebsd-current/lib/libc/string/Makefile.inc
Revision Date Author Comments
# dc36d6f9 23-Nov-2023 Warner Losh <imp@FreeBSD.org>

lib: Remove ancient SCCS tags.

Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by: Netflix


# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# 016e46fd 10-Jan-2023 Gleb Popov <arrowd@FreeBSD.org>

libc: Fix build with WITHOUT_MACHDEP_OPTIMIZATIONS=YES set.

Test Plan: `make buildword WITHOUT_MACHDEP_OPTIMIZATIONS=YES` on 14-CURRENT and 13-STABLE

Reviewed by: emaste

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

PR: 266900


# 05c9a015 24-Aug-2022 Aymeric Wibo <obiwac@gmail.com>

libc: Add strverscmp(3) and versionsort(3)

Add a strverscmp(3) function to libc, a GNU extension I implemented by
reading its glibc manual page. It orders strings following a much more
natural ordering (e.g. "ent1 < ent2 < ent10" as opposed to
"ent1 < ent10 < ent2" with strcmp(3)'s lexicographic ordering).

Also add versionsort(3) for use as scandir(3)'s compar argument.

Update manual page for scandir(3) and add one for strverscmp(3).

Reviewed by: pstef, gbe, kib
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D35807


# 8185be33 02-Aug-2021 Alex Richardson <arichardson@FreeBSD.org>

libc: Disable ASAN for certain string functions

They deliberately read out-of-bounds values to avoid byte-by-byte
loads and check multiple bytes at once. While this will work on x86,
it is flagged as an out-of-bounds read with ASAN, so we have to
disable instrumentation here. This also causes bounds errors for CHERI,
so in CheriBSD we use implementations that avoid OOB reads.

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


# ee37f64c 14-Jul-2021 Konstantin Belousov <kib@FreeBSD.org>

libc: add mempcpy(3) and wmempcpy(3)

Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D31180


# 675079b1 16-Dec-2020 Konstantin Belousov <kib@FreeBSD.org>

Implement strerror_l().

Only for the arches that provide user-mode TLS.

PR: 251651
Requested by: yuri
Discussed with: emaste, jilles, tijl
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D27495
MFC after: 2 weeks


# a4d179ee 15-Feb-2018 Cy Schubert <cy@FreeBSD.org>

Document memset_s(3). memset_s(3) is defined in
C11 standard (ISO/IEC 9899:2011) K.3.7.4.1 The memset_s function
(p: 621-622)

Fix memset(3) portion of the man page by replacing the first argument
(destination) "b" with "dest", which is more descriptive than "b".
This also makes it consistent with the term used in the memset_s()
portion of the man page.

See also http://en.cppreference.com/w/c/string/byte/memset.

Reviewed by: kib
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D13682


# 9851b340 29-Mar-2017 Konstantin Belousov <kib@FreeBSD.org>

Implement the memset_s(3) function as specified by the C11 ISO/IEC
9899:2011 Appendix K 3.7.4.1.

Other needed supporting types, defines and constraint_handler
infrastructure is added as specified in the C11 spec.

Submitted by: Tom Rix <trix@juniper.net>
Sponsored by: Juniper Networks
Discussed with: ed
MFC after: 3 weeks
Differential revision: https://reviews.freebsd.org/D9903
Differential revision: https://reviews.freebsd.org/D10161


# d0fd0203 19-Jan-2017 Enji Cooper <ngie@FreeBSD.org>

Replace dot-dot relative pathing with SRCTOP-relative paths where possible

This reduces build output, need for recalculating paths, and makes it clearer
which paths are relative to what areas in the source tree. The change in
performance over a locally mounted UFS filesystem was negligible in my testing,
but this may more positively impact other filesystems like NFS.

LIBC_SRCTOP was left alone so Juniper (and other users) can continue to
manipulate lib/libc/Makefile (and other Makefile.inc's under lib/libc) as
include Makefiles with custom options.

Discussed with: marcel, sjg
MFC after: 1 week
Reviewed by: emaste
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D9207


# 854023f0 14-Aug-2016 Xin LI <delphij@FreeBSD.org>

Add timingsafe_bcmp and timingsafe_memcmp.

Obtained from: OpenBSD
Reviewed by: trasz
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D7280


# d427f43c 16-Oct-2014 Xin LI <delphij@FreeBSD.org>

Remove duplicated code.

Suggested by: jmg


# af136020 06-Oct-2014 Xin LI <delphij@FreeBSD.org>

Add MLINK for explicit_bzero(3) and bump .Dd date.

MFC after: 2 weeks


# 78b59024 06-Oct-2014 Xin LI <delphij@FreeBSD.org>

Add explicit_bzero(3) and its kernel counterpart.

Obtained from: OpenBSD
MFC after: 2 weeks


# 5538d7a1 25-May-2014 Allan Jude <allanjude@FreeBSD.org>

Merge strcspn.3 into strspn.3 and clarify the explaination of what they do
Detach strcspn.3 from the build
Add strcspn.3 to MLINKS do it will be symlinked to strspn.3

Approved by: eadler (mentor), bcr (mentor)


# 8876613d 03-Mar-2014 Marcel Moolenaar <marcel@FreeBSD.org>

Replace use of ${.CURDIR} by ${LIBC_SRCTOP} and define ${LIBC_SRCTOP}
if not already defined. This allows building libc from outside of
lib/libc using a reach-over makefile.

A typical use-case is to build a standard ILP32 version and a COMPAT32
version in a single iteration by building the COMPAT32 version using a
reach-over makefile.

Obtained from: Juniper Networks, Inc.


# 0e7919f7 06-Mar-2013 Niclas Zeising <zeising@FreeBSD.org>

Create a symlink from strchrnul.3 to strchr.3.
This was forgotten in the initial commit of strchrnul()

Approved by: theraven


# d902844b 13-Feb-2013 Niclas Zeising <zeising@FreeBSD.org>

Add strchrnul(), a GNU function similar to strchr(), except that it returns
a pointer to the end of the string, rather than NULL, if the character was
not found.

Approved by: theraven


# 93af1bc4 21-Jun-2012 Isabell Long <issyl0@FreeBSD.org>

Add the functions documented in the man pages in commit 237393 to the
relevant Makefile.

Reminded by: gavin
Approved by: gabor (mentor)
MFC after: 5 days


# 46632c18 03-Jan-2012 Ed Schouten <ed@FreeBSD.org>

Merge index() and strchr() together.

As I looked through the C library, I noticed the FreeBSD MIPS port has a
hand-written version of index(). This is nice, if it weren't for the
fact that most applications call strchr() instead.

Also, on the other architectures index() and strchr() are identical,
meaning we have two identical pieces of code in the C library and
statically linked applications.

Solve this by naming the actual file strchr.[cS] and let it use
__strong_reference()/STRONG_ALIAS() to provide the index() routine. Do
the same for rindex()/strrchr().

This seems to make the C libraries and static binaries slightly smaller,
but this reduction in size seems negligible.


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# 2c0959ae 24-Aug-2010 Warner Losh <imp@FreeBSD.org>

Powerpc is special here. powerpc and powerpc64 use different ABIs, so
their implementations aren't in the same files. Introduce LIBC_ARCH
and use that in preference to MACHINE_CPUARCH. Tested by amd64 and
powerpc64 builds (thanks nathanw@)


# 25faff34 23-Aug-2010 Warner Losh <imp@FreeBSD.org>

MFtbemd:

Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# 09efd0ec 03-Mar-2009 David Schultz <das@FreeBSD.org>

Add wcpcpy(3) and wcpncpy(3).


# 69099ba2 27-Feb-2009 David Schultz <das@FreeBSD.org>

- Add getdelim(), getline(), stpncpy(), strnlen(), wcsnlen(),
wcscasecmp(), and wcsncasecmp().
- Make some previously non-standard extensions visible
if POSIX_VISIBLE >= 200809.
- Use restrict qualifiers in stpcpy().
- Declare off_t and size_t in stdio.h.
- Bump __FreeBSD_version in case the new symbols (particularly
getline()) cause issues with ports.

Reviewed by: standards@


# efad698c 09-Jan-2009 Ruslan Ermilov <ru@FreeBSD.org>

Sort MLINKS.


# f0eca40a 06-Dec-2008 Konstantin Belousov <kib@FreeBSD.org>

Import the strndup(3) function.
Copyright attribution is kept the same as in original NetBSD source.

Submitted by: Florian Smeets <flo kasimir com>
Obtained from: NetBSD
MFC after: 2 weeks


# 61970628 06-Dec-2008 Konstantin Belousov <kib@FreeBSD.org>

Order the str*.c files mostly alphabetical.

Submitted by: Florian Smeets <flo kasimir com>
MFC after: 2 weeks


# 4a723bd2 03-Nov-2008 Konstantin Belousov <kib@FreeBSD.org>

Add the ffsll and flsll functions. These are ffs and fls operating
on long long arguments.

Reviewed by: bde (previous version, that included asm implementation
for all ffs and fls functions on i386 and amd64)
MFC after: 2 weeks


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 82e45205 09-Apr-2008 Xin LI <delphij@FreeBSD.org>

Add memrchr(3).

Obtained from: OpenBSD


# 6fad3aaf 12-Mar-2006 Daniel Eischen <deischen@FreeBSD.org>

Add each directory's symbol map file to SYM_MAPS.


# 6050c8fe 25-Aug-2005 Andre Oppermann <andre@FreeBSD.org>

Add the function memmem(3) as found in glibc and others.
It is the binary equivalent to strstr(3).

void *memmem(const void *big, size_t big_len,
const void *little, size_t little_len);

Submitted by: Pascal Gloor <pascal.gloor at spale.com>
MFC after: 3 days


# d62e8d4c 12-Aug-2005 Tim J. Robbins <tjr@FreeBSD.org>

Add an implementation of the semi-standard wcsdup() function, as found
on Microsoft and GNU systems.


# f434fe12 13-Jan-2004 Dag-Erling Smørgrav <des@FreeBSD.org>

Add and document ffsl(), fls() and flsl().


# c9ae54ee 28-Jul-2003 Simon L. B. Nielsen <simon@FreeBSD.org>

* Merge index(3) and rindex(3) to index(3) since the two functions are
almost identical.
* Merge strchr(3) and strrchr(3) to strchr(3) since the two functions
are almost identical.
* Make the wording of index(3) and strchr(3) more similar.
* mdoc(7) cleanup.

Submitted by: SUZUKI Koichi <metal@gc5.so-net.ne.jp>, keramida, myself
PR: docs/32054
Reviewed by: ru
Approved by: ceri (mentor)


# c51d717f 18-Nov-2002 Ruslan Ermilov <ru@FreeBSD.org>

libc_r wasn't so tied to libc for 22 months.


# fd4f1dd9 03-Oct-2002 Tim J. Robbins <tjr@FreeBSD.org>

Add a placeholder implementation of wcscoll() and wcsxfrm() which gives
locale-sensitive collation only in single-byte locales, and just does
binary comparison for the others with extended character sets.


# 8269e8c8 03-Oct-2002 David E. O'Brien <obrien@FreeBSD.org>

Add stpcpy(3).


# 9ad39134 07-Sep-2002 Tim J. Robbins <tjr@FreeBSD.org>

Add an implementation of wcstok(), based on strtok_r().


# c8e80475 19-Aug-2002 Tim J. Robbins <tjr@FreeBSD.org>

Add a manual page for wcswidth().


# 353450fb 19-Aug-2002 Andrey A. Chernov <ache@FreeBSD.org>

Move just committed version of wcswidth.c here (from "locale"),
a bit optimized now.


# 4f7d6d65 27-Nov-2001 Wes Peters <wes@FreeBSD.org>

Must link strerror manpage to strerror_r.

Thanks for the review, Mike.

Submitted by: Mike Barcroft <mike@FreeBSD.org>


# 89503316 09-Oct-2001 Andrey A. Chernov <ache@FreeBSD.org>

Implement strcasestr() which many others (f.e. Linux) already have.


# 41036d78 08-Oct-2001 Mike Barcroft <mike@FreeBSD.org>

Add a new libc function, strnstr(3), which allows one to limit the
number of characters that are searched. This is especially useful
with file operations and non-NUL terminated strings.

Silence from: -audit, -hackers
MFC after: 5 days


# 545d3208 31-Jul-2001 Mark Peek <mp@FreeBSD.org>

Only pull in the MD files if they exist. This allows for progressive
implementation and compilation when bringing up a new architecture.


# c34d5912 10-Jul-2001 David E. O'Brien <obrien@FreeBSD.org>

style nits


# 01e281bd 15-May-2001 Takuya SHIOZAKI <tshiozak@FreeBSD.org>

adapt to FreeBSD.
- enable locale-insensitive functions of wchar.h:
wcscat.c wcschr.c wcscmp.c wcscpy.c wcscspn.c wcslcat.c wcslcpy.c
wcslen.c wcsncat.c wcsncmp.c wcsncpy.c wcspbrk.c wcsrchr.c wcsspn.c
wcsstr.c wmemchr.c wmemcmp.c wmemcpy.c wmemmove.c wmemset.c
XXX: wcswidth.c is not enabled yet.
- enable wmemchr(3) man page.
XXX: FreeBSD lacks .St -isoC99 and .St -isoC-amd1.


# 4a558355 27-Mar-2001 Ruslan Ermilov <ru@FreeBSD.org>

MAN[1-9] -> MAN.


# 7f3dea24 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# a41df9e3 09-Aug-1999 Warner Losh <imp@FreeBSD.org>

Import strl{cat,cpy} from OpenBSD.

Obtained from: OpenBSD


# a425c38d 19-May-1999 Bruce Evans <bde@FreeBSD.org>

Fixed disordering and duplication of MLINKS in previous commit to
libc/string/Makefile.inc. psignal.3 doesn't live in libc/string.


# 78121e79 17-May-1999 Peter Wemm <peter@FreeBSD.org>

Add a strsignal(3) (like strerror(3)) for libc compatability with other
systems. NetBSD, Linux, SVR4 etc all have it.


# 83068b62 19-Jan-1999 John Polstra <jdp@FreeBSD.org>

Install man page link for strtok_r.


# 0107877e 20-Feb-1998 John Birrell <jb@FreeBSD.org>

Change MACHINE references to MACHINE_ARCH.


# b966cc23 21-Oct-1997 Bruce Evans <bde@FreeBSD.org>

Sorted lists.


# ae80efa5 16-Oct-1997 Bruce Evans <bde@FreeBSD.org>

Handle machine-dependent (m-d) (string) sources more automatically.
The names of m-d variants are now added (manually) to MDSRCS instead
of to SRCS, and the names of all machine-independent (m-i) variants
that can reasonably be replaced by an m-d variant are now added
(manually) to MISRCS instead of to SRCS, so that a simple substitution
can be used to discard the unused m-i variants. MISRCS is potentially
all m-i sources, but the substitution is too simple to be fast, so
MISRCS should be kept reasonably small.

libc/Makefile.inc:
Do the substitution.

libc/i386/string/Makefile.inc:
Add to MDSRCS instead of to SRCS. Add the names of all sources in this
directory, but no others.

libc/string/Makefile.inc
Add to MISRCS instead of to SRCS. Add the names of all sources in this
directory. Don't use (broken) explicit rules for special cases.


# 2bc3b4d7 15-Oct-1997 Bruce Evans <bde@FreeBSD.org>

Removed the subdirectory paths from the definitions of MAN[1-9]. They
were a workaround for limitations in bsd.man.mk that were fixed about
2 years ago.


# 87003932 02-May-1997 John Birrell <jb@FreeBSD.org>

Changed all paths to be relative to src/lib instead of src/lib/libc
so that all these makefiles can be used to build libc_r too.

Added .if ${LIB} == "c" tests to restrict man page builds to libc
to avoid needlessly building them with libc_r too.

Split libc Makefile into Makefile and Makefile.inc to allow the
libc_r Makefile to include Makefile.inc too.


# 7e546392 22-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Revert $FreeBSD$ to $Id$


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 9fb93307 07-May-1996 Wolfram Schneider <wosch@FreeBSD.org>

``mv'' -> ``mv -f''
``rm'' -> ``rm -f''
so mv/rm may not ask for confirmation if you are not root


# bcff8e2a 11-Feb-1996 Mike Pritchard <mpp@FreeBSD.org>

Another round of man page cleanups.

Down to only about 100 items left to cleanup! :-)


# 553e72d9 06-Mar-1995 Bruce Evans <bde@FreeBSD.org>

Don't build swab.o here. It gets built in libc/i386/string. Previously
the copy built from here was overwritten by the other copy and the other
copy was put in library-building command lines twice. ld now objects to
duplicated modules.


# a4d5d0cb 16-Feb-1995 Andrey A. Chernov <ache@FreeBSD.org>

Add 8bit collate stuff
Submitted by: alex@elvisti.kiev.ua


# a040910f 13-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

Use latest Arthur Olson timezone code rather than that supplied with
4.4. The code is almost identical to the 4.4 versions, but this organization
should make it easier to merge new versions in the future.


# 2ceb2ce9 04-Aug-1994 Garrett Wollman <wollman@FreeBSD.org>

First crack at making libc work with the new make macros. It compiles on
my machine, and a simple static (genassym) and shared (sysctl) executable
both work. Still to be done: RPCand YP merge.


# 58f0484f 26-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

BSD 4.4 Lite Lib Sources