History log of /openbsd-current/lib/libc/hidden/stdlib.h
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.20 01-Mar-2024 millert

Add mkdtemps(3), like mkdtemp(3) but with a suffix.
OK deraadt@ tb@


# 1.19 19-Jan-2024 millert

Make our mktemp(3) callback-driven and split into multiple files.
Previously, calling any of the mktemp(3) family would pull in
lstat(2), open(2) and mkdir(2). Now, only the necessary system
calls will be reachable from the binary. OK deraadt@ guenther@


Revision tags: OPENBSD_7_4_BASE
# 1.18 27-May-2023 otto

Remove malloc interposition, a workaround that was once needed for emacs
ok guenther@


# 1.17 18-May-2023 guenther

Add PROTO_NORMAL() declarations for the remaining syscalls, to avoid
future, inadvertant PLT entries. Move the __getcwd and __realpath
declarations to hidden/{stdlib,unistd}.h to consolidate and remove
duplication.

ok tb@ otto@ deraadt@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.16 10-May-2019 otto

Inroduce malloc_conceal() and calloc_conceal(). Similar to their
counterparts but return memory in pages marked MAP_CONCEAL and on
free() freezero() is actually called.


Revision tags: OPENBSD_6_5_BASE
# 1.15 21-Nov-2018 otto

Introducing malloc_usable_size() was a mistake. While some other
libs have it, it is a function that is considered harmful, so:

Delete malloc_usable_size(). It is a function that blurs the line
between malloc managed memory and application managed memory and
exposes some of the internal workings of malloc. If an application
relies on that, it is likely to break using another implementation
of malloc. If you want usable size x, just allocate x bytes. ok
deraadt@ and other devs


# 1.14 18-Nov-2018 otto

Implement malloc_usable_size(); ok millert@ deraadt@ and jmc@ for the man page


# 1.13 05-Nov-2018 otto

Implement C11's aligned_alloc(3). ok guenther@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.12 05-Sep-2017 schwarze

New POSIX xlocale implementation written from scratch.
Complete in the sense that all POSIX *locale(3) and *_l(3) functions
are included, but in OpenBSD, we of course only really care about
LC_CTYPE and we only support ASCII and UTF-8.

With important help from kettenis@, guenther@, and jca@.
Repeated testing in ports bulk builds by naddy@.
Additional testing by jca@, sebastia@, dcoppa@, and others.
OK kettenis@ dcoppa@, and guenther@ on an earlier version.
Riding guenther@'s libc/librthread major bump.


# 1.11 20-May-2017 millert

Use David Musser's introsort algorithm to fall back to heapsort(3)
when the recursion depth reaches 2*lg(n + 1). This avoids quicksort's
quadratic behavior for pathological input without appreciably
changing the average run time.


# 1.10 10-Apr-2017 otto

Introducing freezero(3) a version of free that guarantees the process
no longer has access to the content of a memmory object. It does
this by either clearing (if the object memory remains cached) or
by calling munmap(2). ok millert@, deraadt@, guenther@


Revision tags: OPENBSD_6_1_BASE
# 1.9 06-Mar-2017 otto

Introducing recallocarray(3), a blend of calloc(3) and reallocarray(3)
with the added feature that released memory is cleared. Much input from various
developers. ok deraadt@ tom@


# 1.8 14-Aug-2016 guenther

Reduce qabs() and qdiv() to aliases of llabs() and lldiv().
Merge the manual pages and call them deprecated there.

ok and manpage tweak jmc@, ok natano@


Revision tags: OPENBSD_6_0_BASE
# 1.7 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.6 10-Nov-2015 guenther

libc.so can't be unloaded, so move the hidden atexit() and pthread_atfork()
stubs for the executable from crtbegin.o into libc, which lets them be
excluded from static links that don't use them.
For this, drop the normal crt{begin,end}S.o from libc.so: the .init and .fini
sections for libc aren't called at the right times anyway, so it's good that
they're unused. libc.so just needs __guard_local and the .note.openbsd.ident
section, so add them to stack_protector.c for now (this will be improved)

"good time" deraadt@


# 1.5 25-Oct-2015 guenther

Hide __atexit and __atexit_register_cleanup()
Wrap __cxa_{atexit,finalize}() so the call from exit() goes direct
Switch regress/lib/libc/atexit/ to be built with -static so that it can
still access __atexit*

ok millert@ jca@


# 1.4 19-Sep-2015 guenther

Don't wrap initialized variables: binutils appears to be mishandling them
on arm and m88k

problems with optind observed by jsg@


# 1.3 13-Sep-2015 guenther

For now, permit overriding of the malloc family, to make emacs happy


# 1.2 13-Sep-2015 guenther

Overshot w/PROTO_DEPRECATED: seed48_deterministic() is used internally


# 1.1 13-Sep-2015 guenther

Wrap <stdlib.h> so that calls go direct and the symbols not in the
C standard are all weak.
Apply __{BEGIN,END}_HIDDEN_DECLS to gdtoa{,imp}.h, hiding the
arch-specific __strtorx, __ULtox_D2A, __strtorQ, __ULtoQ_D2A symbols.


# 1.19 19-Jan-2024 millert

Make our mktemp(3) callback-driven and split into multiple files.
Previously, calling any of the mktemp(3) family would pull in
lstat(2), open(2) and mkdir(2). Now, only the necessary system
calls will be reachable from the binary. OK deraadt@ guenther@


Revision tags: OPENBSD_7_4_BASE
# 1.18 27-May-2023 otto

Remove malloc interposition, a workaround that was once needed for emacs
ok guenther@


# 1.17 18-May-2023 guenther

Add PROTO_NORMAL() declarations for the remaining syscalls, to avoid
future, inadvertant PLT entries. Move the __getcwd and __realpath
declarations to hidden/{stdlib,unistd}.h to consolidate and remove
duplication.

ok tb@ otto@ deraadt@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.16 10-May-2019 otto

Inroduce malloc_conceal() and calloc_conceal(). Similar to their
counterparts but return memory in pages marked MAP_CONCEAL and on
free() freezero() is actually called.


Revision tags: OPENBSD_6_5_BASE
# 1.15 21-Nov-2018 otto

Introducing malloc_usable_size() was a mistake. While some other
libs have it, it is a function that is considered harmful, so:

Delete malloc_usable_size(). It is a function that blurs the line
between malloc managed memory and application managed memory and
exposes some of the internal workings of malloc. If an application
relies on that, it is likely to break using another implementation
of malloc. If you want usable size x, just allocate x bytes. ok
deraadt@ and other devs


# 1.14 18-Nov-2018 otto

Implement malloc_usable_size(); ok millert@ deraadt@ and jmc@ for the man page


# 1.13 05-Nov-2018 otto

Implement C11's aligned_alloc(3). ok guenther@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.12 05-Sep-2017 schwarze

New POSIX xlocale implementation written from scratch.
Complete in the sense that all POSIX *locale(3) and *_l(3) functions
are included, but in OpenBSD, we of course only really care about
LC_CTYPE and we only support ASCII and UTF-8.

With important help from kettenis@, guenther@, and jca@.
Repeated testing in ports bulk builds by naddy@.
Additional testing by jca@, sebastia@, dcoppa@, and others.
OK kettenis@ dcoppa@, and guenther@ on an earlier version.
Riding guenther@'s libc/librthread major bump.


# 1.11 20-May-2017 millert

Use David Musser's introsort algorithm to fall back to heapsort(3)
when the recursion depth reaches 2*lg(n + 1). This avoids quicksort's
quadratic behavior for pathological input without appreciably
changing the average run time.


# 1.10 10-Apr-2017 otto

Introducing freezero(3) a version of free that guarantees the process
no longer has access to the content of a memmory object. It does
this by either clearing (if the object memory remains cached) or
by calling munmap(2). ok millert@, deraadt@, guenther@


Revision tags: OPENBSD_6_1_BASE
# 1.9 06-Mar-2017 otto

Introducing recallocarray(3), a blend of calloc(3) and reallocarray(3)
with the added feature that released memory is cleared. Much input from various
developers. ok deraadt@ tom@


# 1.8 14-Aug-2016 guenther

Reduce qabs() and qdiv() to aliases of llabs() and lldiv().
Merge the manual pages and call them deprecated there.

ok and manpage tweak jmc@, ok natano@


Revision tags: OPENBSD_6_0_BASE
# 1.7 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.6 10-Nov-2015 guenther

libc.so can't be unloaded, so move the hidden atexit() and pthread_atfork()
stubs for the executable from crtbegin.o into libc, which lets them be
excluded from static links that don't use them.
For this, drop the normal crt{begin,end}S.o from libc.so: the .init and .fini
sections for libc aren't called at the right times anyway, so it's good that
they're unused. libc.so just needs __guard_local and the .note.openbsd.ident
section, so add them to stack_protector.c for now (this will be improved)

"good time" deraadt@


# 1.5 25-Oct-2015 guenther

Hide __atexit and __atexit_register_cleanup()
Wrap __cxa_{atexit,finalize}() so the call from exit() goes direct
Switch regress/lib/libc/atexit/ to be built with -static so that it can
still access __atexit*

ok millert@ jca@


# 1.4 19-Sep-2015 guenther

Don't wrap initialized variables: binutils appears to be mishandling them
on arm and m88k

problems with optind observed by jsg@


# 1.3 13-Sep-2015 guenther

For now, permit overriding of the malloc family, to make emacs happy


# 1.2 13-Sep-2015 guenther

Overshot w/PROTO_DEPRECATED: seed48_deterministic() is used internally


# 1.1 13-Sep-2015 guenther

Wrap <stdlib.h> so that calls go direct and the symbols not in the
C standard are all weak.
Apply __{BEGIN,END}_HIDDEN_DECLS to gdtoa{,imp}.h, hiding the
arch-specific __strtorx, __ULtox_D2A, __strtorQ, __ULtoQ_D2A symbols.


# 1.18 27-May-2023 otto

Remove malloc interposition, a workaround that was once needed for emacs
ok guenther@


# 1.17 18-May-2023 guenther

Add PROTO_NORMAL() declarations for the remaining syscalls, to avoid
future, inadvertant PLT entries. Move the __getcwd and __realpath
declarations to hidden/{stdlib,unistd}.h to consolidate and remove
duplication.

ok tb@ otto@ deraadt@


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.16 10-May-2019 otto

Inroduce malloc_conceal() and calloc_conceal(). Similar to their
counterparts but return memory in pages marked MAP_CONCEAL and on
free() freezero() is actually called.


Revision tags: OPENBSD_6_5_BASE
# 1.15 21-Nov-2018 otto

Introducing malloc_usable_size() was a mistake. While some other
libs have it, it is a function that is considered harmful, so:

Delete malloc_usable_size(). It is a function that blurs the line
between malloc managed memory and application managed memory and
exposes some of the internal workings of malloc. If an application
relies on that, it is likely to break using another implementation
of malloc. If you want usable size x, just allocate x bytes. ok
deraadt@ and other devs


# 1.14 18-Nov-2018 otto

Implement malloc_usable_size(); ok millert@ deraadt@ and jmc@ for the man page


# 1.13 05-Nov-2018 otto

Implement C11's aligned_alloc(3). ok guenther@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.12 05-Sep-2017 schwarze

New POSIX xlocale implementation written from scratch.
Complete in the sense that all POSIX *locale(3) and *_l(3) functions
are included, but in OpenBSD, we of course only really care about
LC_CTYPE and we only support ASCII and UTF-8.

With important help from kettenis@, guenther@, and jca@.
Repeated testing in ports bulk builds by naddy@.
Additional testing by jca@, sebastia@, dcoppa@, and others.
OK kettenis@ dcoppa@, and guenther@ on an earlier version.
Riding guenther@'s libc/librthread major bump.


# 1.11 20-May-2017 millert

Use David Musser's introsort algorithm to fall back to heapsort(3)
when the recursion depth reaches 2*lg(n + 1). This avoids quicksort's
quadratic behavior for pathological input without appreciably
changing the average run time.


# 1.10 10-Apr-2017 otto

Introducing freezero(3) a version of free that guarantees the process
no longer has access to the content of a memmory object. It does
this by either clearing (if the object memory remains cached) or
by calling munmap(2). ok millert@, deraadt@, guenther@


Revision tags: OPENBSD_6_1_BASE
# 1.9 06-Mar-2017 otto

Introducing recallocarray(3), a blend of calloc(3) and reallocarray(3)
with the added feature that released memory is cleared. Much input from various
developers. ok deraadt@ tom@


# 1.8 14-Aug-2016 guenther

Reduce qabs() and qdiv() to aliases of llabs() and lldiv().
Merge the manual pages and call them deprecated there.

ok and manpage tweak jmc@, ok natano@


Revision tags: OPENBSD_6_0_BASE
# 1.7 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.6 10-Nov-2015 guenther

libc.so can't be unloaded, so move the hidden atexit() and pthread_atfork()
stubs for the executable from crtbegin.o into libc, which lets them be
excluded from static links that don't use them.
For this, drop the normal crt{begin,end}S.o from libc.so: the .init and .fini
sections for libc aren't called at the right times anyway, so it's good that
they're unused. libc.so just needs __guard_local and the .note.openbsd.ident
section, so add them to stack_protector.c for now (this will be improved)

"good time" deraadt@


# 1.5 25-Oct-2015 guenther

Hide __atexit and __atexit_register_cleanup()
Wrap __cxa_{atexit,finalize}() so the call from exit() goes direct
Switch regress/lib/libc/atexit/ to be built with -static so that it can
still access __atexit*

ok millert@ jca@


# 1.4 19-Sep-2015 guenther

Don't wrap initialized variables: binutils appears to be mishandling them
on arm and m88k

problems with optind observed by jsg@


# 1.3 13-Sep-2015 guenther

For now, permit overriding of the malloc family, to make emacs happy


# 1.2 13-Sep-2015 guenther

Overshot w/PROTO_DEPRECATED: seed48_deterministic() is used internally


# 1.1 13-Sep-2015 guenther

Wrap <stdlib.h> so that calls go direct and the symbols not in the
C standard are all weak.
Apply __{BEGIN,END}_HIDDEN_DECLS to gdtoa{,imp}.h, hiding the
arch-specific __strtorx, __ULtox_D2A, __strtorQ, __ULtoQ_D2A symbols.


# 1.16 10-May-2019 otto

Inroduce malloc_conceal() and calloc_conceal(). Similar to their
counterparts but return memory in pages marked MAP_CONCEAL and on
free() freezero() is actually called.


Revision tags: OPENBSD_6_5_BASE
# 1.15 21-Nov-2018 otto

Introducing malloc_usable_size() was a mistake. While some other
libs have it, it is a function that is considered harmful, so:

Delete malloc_usable_size(). It is a function that blurs the line
between malloc managed memory and application managed memory and
exposes some of the internal workings of malloc. If an application
relies on that, it is likely to break using another implementation
of malloc. If you want usable size x, just allocate x bytes. ok
deraadt@ and other devs


# 1.14 18-Nov-2018 otto

Implement malloc_usable_size(); ok millert@ deraadt@ and jmc@ for the man page


# 1.13 05-Nov-2018 otto

Implement C11's aligned_alloc(3). ok guenther@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.12 05-Sep-2017 schwarze

New POSIX xlocale implementation written from scratch.
Complete in the sense that all POSIX *locale(3) and *_l(3) functions
are included, but in OpenBSD, we of course only really care about
LC_CTYPE and we only support ASCII and UTF-8.

With important help from kettenis@, guenther@, and jca@.
Repeated testing in ports bulk builds by naddy@.
Additional testing by jca@, sebastia@, dcoppa@, and others.
OK kettenis@ dcoppa@, and guenther@ on an earlier version.
Riding guenther@'s libc/librthread major bump.


# 1.11 20-May-2017 millert

Use David Musser's introsort algorithm to fall back to heapsort(3)
when the recursion depth reaches 2*lg(n + 1). This avoids quicksort's
quadratic behavior for pathological input without appreciably
changing the average run time.


# 1.10 10-Apr-2017 otto

Introducing freezero(3) a version of free that guarantees the process
no longer has access to the content of a memmory object. It does
this by either clearing (if the object memory remains cached) or
by calling munmap(2). ok millert@, deraadt@, guenther@


Revision tags: OPENBSD_6_1_BASE
# 1.9 06-Mar-2017 otto

Introducing recallocarray(3), a blend of calloc(3) and reallocarray(3)
with the added feature that released memory is cleared. Much input from various
developers. ok deraadt@ tom@


# 1.8 14-Aug-2016 guenther

Reduce qabs() and qdiv() to aliases of llabs() and lldiv().
Merge the manual pages and call them deprecated there.

ok and manpage tweak jmc@, ok natano@


Revision tags: OPENBSD_6_0_BASE
# 1.7 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.6 10-Nov-2015 guenther

libc.so can't be unloaded, so move the hidden atexit() and pthread_atfork()
stubs for the executable from crtbegin.o into libc, which lets them be
excluded from static links that don't use them.
For this, drop the normal crt{begin,end}S.o from libc.so: the .init and .fini
sections for libc aren't called at the right times anyway, so it's good that
they're unused. libc.so just needs __guard_local and the .note.openbsd.ident
section, so add them to stack_protector.c for now (this will be improved)

"good time" deraadt@


# 1.5 25-Oct-2015 guenther

Hide __atexit and __atexit_register_cleanup()
Wrap __cxa_{atexit,finalize}() so the call from exit() goes direct
Switch regress/lib/libc/atexit/ to be built with -static so that it can
still access __atexit*

ok millert@ jca@


# 1.4 19-Sep-2015 guenther

Don't wrap initialized variables: binutils appears to be mishandling them
on arm and m88k

problems with optind observed by jsg@


# 1.3 13-Sep-2015 guenther

For now, permit overriding of the malloc family, to make emacs happy


# 1.2 13-Sep-2015 guenther

Overshot w/PROTO_DEPRECATED: seed48_deterministic() is used internally


# 1.1 13-Sep-2015 guenther

Wrap <stdlib.h> so that calls go direct and the symbols not in the
C standard are all weak.
Apply __{BEGIN,END}_HIDDEN_DECLS to gdtoa{,imp}.h, hiding the
arch-specific __strtorx, __ULtox_D2A, __strtorQ, __ULtoQ_D2A symbols.


# 1.15 21-Nov-2018 otto

Introducing malloc_usable_size() was a mistake. While some other
libs have it, it is a function that is considered harmful, so:

Delete malloc_usable_size(). It is a function that blurs the line
between malloc managed memory and application managed memory and
exposes some of the internal workings of malloc. If an application
relies on that, it is likely to break using another implementation
of malloc. If you want usable size x, just allocate x bytes. ok
deraadt@ and other devs


# 1.14 18-Nov-2018 otto

Implement malloc_usable_size(); ok millert@ deraadt@ and jmc@ for the man page


# 1.13 05-Nov-2018 otto

Implement C11's aligned_alloc(3). ok guenther@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.12 05-Sep-2017 schwarze

New POSIX xlocale implementation written from scratch.
Complete in the sense that all POSIX *locale(3) and *_l(3) functions
are included, but in OpenBSD, we of course only really care about
LC_CTYPE and we only support ASCII and UTF-8.

With important help from kettenis@, guenther@, and jca@.
Repeated testing in ports bulk builds by naddy@.
Additional testing by jca@, sebastia@, dcoppa@, and others.
OK kettenis@ dcoppa@, and guenther@ on an earlier version.
Riding guenther@'s libc/librthread major bump.


# 1.11 20-May-2017 millert

Use David Musser's introsort algorithm to fall back to heapsort(3)
when the recursion depth reaches 2*lg(n + 1). This avoids quicksort's
quadratic behavior for pathological input without appreciably
changing the average run time.


# 1.10 10-Apr-2017 otto

Introducing freezero(3) a version of free that guarantees the process
no longer has access to the content of a memmory object. It does
this by either clearing (if the object memory remains cached) or
by calling munmap(2). ok millert@, deraadt@, guenther@


Revision tags: OPENBSD_6_1_BASE
# 1.9 06-Mar-2017 otto

Introducing recallocarray(3), a blend of calloc(3) and reallocarray(3)
with the added feature that released memory is cleared. Much input from various
developers. ok deraadt@ tom@


# 1.8 14-Aug-2016 guenther

Reduce qabs() and qdiv() to aliases of llabs() and lldiv().
Merge the manual pages and call them deprecated there.

ok and manpage tweak jmc@, ok natano@


Revision tags: OPENBSD_6_0_BASE
# 1.7 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.6 10-Nov-2015 guenther

libc.so can't be unloaded, so move the hidden atexit() and pthread_atfork()
stubs for the executable from crtbegin.o into libc, which lets them be
excluded from static links that don't use them.
For this, drop the normal crt{begin,end}S.o from libc.so: the .init and .fini
sections for libc aren't called at the right times anyway, so it's good that
they're unused. libc.so just needs __guard_local and the .note.openbsd.ident
section, so add them to stack_protector.c for now (this will be improved)

"good time" deraadt@


# 1.5 25-Oct-2015 guenther

Hide __atexit and __atexit_register_cleanup()
Wrap __cxa_{atexit,finalize}() so the call from exit() goes direct
Switch regress/lib/libc/atexit/ to be built with -static so that it can
still access __atexit*

ok millert@ jca@


# 1.4 19-Sep-2015 guenther

Don't wrap initialized variables: binutils appears to be mishandling them
on arm and m88k

problems with optind observed by jsg@


# 1.3 13-Sep-2015 guenther

For now, permit overriding of the malloc family, to make emacs happy


# 1.2 13-Sep-2015 guenther

Overshot w/PROTO_DEPRECATED: seed48_deterministic() is used internally


# 1.1 13-Sep-2015 guenther

Wrap <stdlib.h> so that calls go direct and the symbols not in the
C standard are all weak.
Apply __{BEGIN,END}_HIDDEN_DECLS to gdtoa{,imp}.h, hiding the
arch-specific __strtorx, __ULtox_D2A, __strtorQ, __ULtoQ_D2A symbols.


# 1.14 18-Nov-2018 otto

Implement malloc_usable_size(); ok millert@ deraadt@ and jmc@ for the man page


# 1.13 05-Nov-2018 otto

Implement C11's aligned_alloc(3). ok guenther@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.12 05-Sep-2017 schwarze

New POSIX xlocale implementation written from scratch.
Complete in the sense that all POSIX *locale(3) and *_l(3) functions
are included, but in OpenBSD, we of course only really care about
LC_CTYPE and we only support ASCII and UTF-8.

With important help from kettenis@, guenther@, and jca@.
Repeated testing in ports bulk builds by naddy@.
Additional testing by jca@, sebastia@, dcoppa@, and others.
OK kettenis@ dcoppa@, and guenther@ on an earlier version.
Riding guenther@'s libc/librthread major bump.


# 1.11 20-May-2017 millert

Use David Musser's introsort algorithm to fall back to heapsort(3)
when the recursion depth reaches 2*lg(n + 1). This avoids quicksort's
quadratic behavior for pathological input without appreciably
changing the average run time.


# 1.10 10-Apr-2017 otto

Introducing freezero(3) a version of free that guarantees the process
no longer has access to the content of a memmory object. It does
this by either clearing (if the object memory remains cached) or
by calling munmap(2). ok millert@, deraadt@, guenther@


Revision tags: OPENBSD_6_1_BASE
# 1.9 06-Mar-2017 otto

Introducing recallocarray(3), a blend of calloc(3) and reallocarray(3)
with the added feature that released memory is cleared. Much input from various
developers. ok deraadt@ tom@


# 1.8 14-Aug-2016 guenther

Reduce qabs() and qdiv() to aliases of llabs() and lldiv().
Merge the manual pages and call them deprecated there.

ok and manpage tweak jmc@, ok natano@


Revision tags: OPENBSD_6_0_BASE
# 1.7 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.6 10-Nov-2015 guenther

libc.so can't be unloaded, so move the hidden atexit() and pthread_atfork()
stubs for the executable from crtbegin.o into libc, which lets them be
excluded from static links that don't use them.
For this, drop the normal crt{begin,end}S.o from libc.so: the .init and .fini
sections for libc aren't called at the right times anyway, so it's good that
they're unused. libc.so just needs __guard_local and the .note.openbsd.ident
section, so add them to stack_protector.c for now (this will be improved)

"good time" deraadt@


# 1.5 25-Oct-2015 guenther

Hide __atexit and __atexit_register_cleanup()
Wrap __cxa_{atexit,finalize}() so the call from exit() goes direct
Switch regress/lib/libc/atexit/ to be built with -static so that it can
still access __atexit*

ok millert@ jca@


# 1.4 19-Sep-2015 guenther

Don't wrap initialized variables: binutils appears to be mishandling them
on arm and m88k

problems with optind observed by jsg@


# 1.3 13-Sep-2015 guenther

For now, permit overriding of the malloc family, to make emacs happy


# 1.2 13-Sep-2015 guenther

Overshot w/PROTO_DEPRECATED: seed48_deterministic() is used internally


# 1.1 13-Sep-2015 guenther

Wrap <stdlib.h> so that calls go direct and the symbols not in the
C standard are all weak.
Apply __{BEGIN,END}_HIDDEN_DECLS to gdtoa{,imp}.h, hiding the
arch-specific __strtorx, __ULtox_D2A, __strtorQ, __ULtoQ_D2A symbols.


# 1.13 05-Nov-2018 otto

Implement C11's aligned_alloc(3). ok guenther@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.12 05-Sep-2017 schwarze

New POSIX xlocale implementation written from scratch.
Complete in the sense that all POSIX *locale(3) and *_l(3) functions
are included, but in OpenBSD, we of course only really care about
LC_CTYPE and we only support ASCII and UTF-8.

With important help from kettenis@, guenther@, and jca@.
Repeated testing in ports bulk builds by naddy@.
Additional testing by jca@, sebastia@, dcoppa@, and others.
OK kettenis@ dcoppa@, and guenther@ on an earlier version.
Riding guenther@'s libc/librthread major bump.


# 1.11 20-May-2017 millert

Use David Musser's introsort algorithm to fall back to heapsort(3)
when the recursion depth reaches 2*lg(n + 1). This avoids quicksort's
quadratic behavior for pathological input without appreciably
changing the average run time.


# 1.10 10-Apr-2017 otto

Introducing freezero(3) a version of free that guarantees the process
no longer has access to the content of a memmory object. It does
this by either clearing (if the object memory remains cached) or
by calling munmap(2). ok millert@, deraadt@, guenther@


Revision tags: OPENBSD_6_1_BASE
# 1.9 06-Mar-2017 otto

Introducing recallocarray(3), a blend of calloc(3) and reallocarray(3)
with the added feature that released memory is cleared. Much input from various
developers. ok deraadt@ tom@


# 1.8 14-Aug-2016 guenther

Reduce qabs() and qdiv() to aliases of llabs() and lldiv().
Merge the manual pages and call them deprecated there.

ok and manpage tweak jmc@, ok natano@


Revision tags: OPENBSD_6_0_BASE
# 1.7 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.6 10-Nov-2015 guenther

libc.so can't be unloaded, so move the hidden atexit() and pthread_atfork()
stubs for the executable from crtbegin.o into libc, which lets them be
excluded from static links that don't use them.
For this, drop the normal crt{begin,end}S.o from libc.so: the .init and .fini
sections for libc aren't called at the right times anyway, so it's good that
they're unused. libc.so just needs __guard_local and the .note.openbsd.ident
section, so add them to stack_protector.c for now (this will be improved)

"good time" deraadt@


# 1.5 25-Oct-2015 guenther

Hide __atexit and __atexit_register_cleanup()
Wrap __cxa_{atexit,finalize}() so the call from exit() goes direct
Switch regress/lib/libc/atexit/ to be built with -static so that it can
still access __atexit*

ok millert@ jca@


# 1.4 19-Sep-2015 guenther

Don't wrap initialized variables: binutils appears to be mishandling them
on arm and m88k

problems with optind observed by jsg@


# 1.3 13-Sep-2015 guenther

For now, permit overriding of the malloc family, to make emacs happy


# 1.2 13-Sep-2015 guenther

Overshot w/PROTO_DEPRECATED: seed48_deterministic() is used internally


# 1.1 13-Sep-2015 guenther

Wrap <stdlib.h> so that calls go direct and the symbols not in the
C standard are all weak.
Apply __{BEGIN,END}_HIDDEN_DECLS to gdtoa{,imp}.h, hiding the
arch-specific __strtorx, __ULtox_D2A, __strtorQ, __ULtoQ_D2A symbols.


Revision tags: OPENBSD_6_2_BASE
# 1.12 05-Sep-2017 schwarze

New POSIX xlocale implementation written from scratch.
Complete in the sense that all POSIX *locale(3) and *_l(3) functions
are included, but in OpenBSD, we of course only really care about
LC_CTYPE and we only support ASCII and UTF-8.

With important help from kettenis@, guenther@, and jca@.
Repeated testing in ports bulk builds by naddy@.
Additional testing by jca@, sebastia@, dcoppa@, and others.
OK kettenis@ dcoppa@, and guenther@ on an earlier version.
Riding guenther@'s libc/librthread major bump.


# 1.11 20-May-2017 millert

Use David Musser's introsort algorithm to fall back to heapsort(3)
when the recursion depth reaches 2*lg(n + 1). This avoids quicksort's
quadratic behavior for pathological input without appreciably
changing the average run time.


# 1.10 10-Apr-2017 otto

Introducing freezero(3) a version of free that guarantees the process
no longer has access to the content of a memmory object. It does
this by either clearing (if the object memory remains cached) or
by calling munmap(2). ok millert@, deraadt@, guenther@


Revision tags: OPENBSD_6_1_BASE
# 1.9 06-Mar-2017 otto

Introducing recallocarray(3), a blend of calloc(3) and reallocarray(3)
with the added feature that released memory is cleared. Much input from various
developers. ok deraadt@ tom@


# 1.8 14-Aug-2016 guenther

Reduce qabs() and qdiv() to aliases of llabs() and lldiv().
Merge the manual pages and call them deprecated there.

ok and manpage tweak jmc@, ok natano@


Revision tags: OPENBSD_6_0_BASE
# 1.7 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.6 10-Nov-2015 guenther

libc.so can't be unloaded, so move the hidden atexit() and pthread_atfork()
stubs for the executable from crtbegin.o into libc, which lets them be
excluded from static links that don't use them.
For this, drop the normal crt{begin,end}S.o from libc.so: the .init and .fini
sections for libc aren't called at the right times anyway, so it's good that
they're unused. libc.so just needs __guard_local and the .note.openbsd.ident
section, so add them to stack_protector.c for now (this will be improved)

"good time" deraadt@


# 1.5 25-Oct-2015 guenther

Hide __atexit and __atexit_register_cleanup()
Wrap __cxa_{atexit,finalize}() so the call from exit() goes direct
Switch regress/lib/libc/atexit/ to be built with -static so that it can
still access __atexit*

ok millert@ jca@


# 1.4 19-Sep-2015 guenther

Don't wrap initialized variables: binutils appears to be mishandling them
on arm and m88k

problems with optind observed by jsg@


# 1.3 13-Sep-2015 guenther

For now, permit overriding of the malloc family, to make emacs happy


# 1.2 13-Sep-2015 guenther

Overshot w/PROTO_DEPRECATED: seed48_deterministic() is used internally


# 1.1 13-Sep-2015 guenther

Wrap <stdlib.h> so that calls go direct and the symbols not in the
C standard are all weak.
Apply __{BEGIN,END}_HIDDEN_DECLS to gdtoa{,imp}.h, hiding the
arch-specific __strtorx, __ULtox_D2A, __strtorQ, __ULtoQ_D2A symbols.