Home | History | Annotate | Download | only in include
History log of /src/lib/libc/include/extern.h
RevisionDateAuthorComments
 1.32  01-Oct-2024  christos just use off_t
 1.31  28-Sep-2024  christos need <sys/types.h> for __off_t in gnu11 mode.
 1.30  08-Jul-2024  christos PR/58391: Noriyuki Soda: re-adding syslog_ss() to syslog.h and syslog.3
 1.29  19-Jan-2024  christos more extern decls
 1.28  03-Jan-2024  christos tidy up some extern declarations
 1.27  04-Apr-2023  christos PR/57250: Martin Husemann: dtoa mishandles infinite doubles on 32bit big
endian machines. When long double support was added, the old code was kept
for the regular double code. This code was never used because WIDE_DOUBLE
was always defined in the Makefile. Remove that old code, and conditionalize
the WIDE_DOUBLE code based on if long doubles are different than doubles on
the specific platform.
 1.26  15-May-2020  joerg branches: 1.26.6;
Hook up proper fork lock handling for malloc:
- lock all relevant mutexes just before fork
- unlock all mutexes just after fork in the parent
- full reinit non-spinlocks in the child
This is not using the normal pthread_atfork interface to ensure order of
operation, malloc is used as implementation detail too often.
 1.25  12-Jan-2017  christos branches: 1.25.16;
put back strerror_ss, it will be used shortly.
 1.24  12-Jan-2017  christos Add strerror_ss_r to be used by syslog_ss
 1.23  19-Aug-2013  joerg branches: 1.23.8;
Add strerror_l.
 1.22  04-May-2013  christos move prototypes to stdio.h
 1.21  11-Oct-2012  christos take care of the signal safe syslog calls which are not exposed.
 1.20  12-Sep-2012  manu branches: 1.20.2;
setcontext() used to be incompatible with -lpthread since it affected
the TLS pointer, therefore wrecking the pthread environement.

Some ports had _UC_TLSBASE flag or equivalent (_UC_UNIQUE on alpha)
that controlled whether setcontext() would change the TLS pointer.
This change let libpthread override setcontext() with its own version
that unsets _UC_TLSBASE, enabling safe usage of setcontext() with
-lpthread.

We also have the following required changes here:
- rename alpha's _UC_UNIQUE into _UC_TLSBASE
- add _UC_TLSBASE definition in header file for all ports
(powerpc, sh3, sparc and sparc64 lack the implementation for now)
- introduce a libc stub that can be overriden for setcontext()
- modify MD libcs swapcontext() implementations so that they use the
setcontext() libc stub instead of doing a plain system call.

While we are there:
- document various MD _UC_* flags in header file
- add libc and libpthread tests for swapcontext() behavior
(hopefully helpful to spot MD problems introduced with this change)

Future work:
- Deciding whether kernel support or _UC_TLSBASE should be added for
powerpc, sh3, sparc and sparc64 is left to portmasters
sparc64

Approved by core@
 1.19  19-Sep-2011  joerg branches: 1.19.2;
Mark _resumecontext as dead. ANSIfy all declarations for it.
 1.18  17-Jul-2011  joerg Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.
 1.17  21-Oct-2009  snj Remove 3rd and 4th clauses in christos' license. OK christos.
 1.16  31-Oct-2008  christos branches: 1.16.2;
Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections
 1.15  04-Dec-2007  christos move decls for _malloc_{pre,post}fork() to extern.h
 1.14  22-Nov-2006  christos branches: 1.14.8;
Don't expose _ss functions for 4.0. Requested by core.
 1.13  17-May-2006  christos PR/24324: Arne H Juul: Re-implement seekdir/telldir using a pointer of
locations per directory instead of a global hash table to avoid memory
leak issues, and incorrect results.
 1.12  24-Feb-2006  drochner complete constification of the sysctl() user side
 1.11  16-Feb-2006  christos - s/notyet/WIDE_DOUBLE/
- Add a little more glue for WIDE_DOUBLE; not done yet.
- s/def FLOATING_POINT/ndef NO_FLOATING_POINT/ to reduce diffs with FreeBSD.
- fix memory leak where each double formatted leaked 24 by calling __freedtoa()
appropriately. the new gdtoa keeps a list of memory chunks allocated by
malloc(), and it must maintained properly by calling __freedtoa() on the
results of __dtoa() Hi Klaus!
- in vfwprintf() make cvt return char * and convert it using __mbsconv(),
instead of having it return wchar_t *.

This should fix the memory leaks people have been reporting (eg. in top etc.)
 1.10  24-Jan-2006  christos rename __func to _func_unlocked, and add their prototypes in extern.h
instead of exposing them in dirent.h. More locking consistency fixes.
 1.9  27-Sep-2003  matt Constify the _-sigaction_sigtramp tramp argument.
 1.8  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.7  09-Jul-2002  thorpej Add prototype for __sigaction_sigtramp(). This system call is used
only by libc internally, and thus does not need to be exported in
any other header file.
 1.6  26-Mar-1999  sommerfe branches: 1.6.12;
move __getcwd prototypes to libc-private header file.

XXX duplicate the prototype in getcwd regression test (which needs to
call the syscall directly for reasonably complete testing).
 1.5  14-Jan-1999  kleink * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
 1.4  15-Nov-1998  christos in the __str{error,signal} functions make the third argument size_t since
it is really a size. This does not affect the external interface, so there
should be no reason to bump the libc #
 1.3  26-Jul-1998  mycroft const poisoning.
 1.2  16-Oct-1997  christos Remove _tztab() declaration now that timezone() migrated to libcompat.
 1.1  13-Jul-1997  christos Add prototype declarations
 1.6.12.3  01-Aug-2002  nathanw Catch up to -current.
 1.6.12.2  11-Mar-2002  nathanw Add __setlogin() prototype.
 1.6.12.1  05-Mar-2001  nathanw User-level support for LWPs and scheduler activations.
SVR4-style ucontext code by Klaus Klein.
 1.14.8.1  09-Jan-2008  matt sync with HEAD
 1.16.2.2  31-Oct-2008  christos Import syslogd SoC project by Martin Schuette:
- new syslog protocol api syslogp(3) that supports structured data
and draft-rfc timestamps
- reliable tcp connections with queueing
- encrypted connections
 1.16.2.1  31-Oct-2008  christos file extern.h was added on branch christos-time_t on 2008-10-31 16:12:19 +0000
 1.19.2.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.19.2.1  30-Oct-2012  yamt sync with head
 1.20.2.3  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.20.2.2  23-Jun-2013  tls resync from head
 1.20.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.23.8.1  20-Mar-2017  pgoyette Sync with HEAD
 1.25.16.1  22-Aug-2024  martin Pull up following revision(s) (requested by riastradh in ticket #1865):

lib/libc/stdio/Makefile.inc: revision 1.48
tests/lib/libc/stdio/t_printf.c: revision 1.9
lib/libc/stdio/vfwprintf.c: revision 1.40
lib/libc/include/extern.h: revision 1.27
tests/lib/libc/stdio/t_printf.c: revision 1.10

PR/57250: Martin Husemann: dtoa mishandles infinite doubles on 32bit big
endian machines. When long double support was added, the old code was kept
for the regular double code. This code was never used because WIDE_DOUBLE
was always defined in the Makefile. Remove that old code, and conditionalize
the WIDE_DOUBLE code based on if long doubles are different than doubles on
the specific platform.

Add a test for PR/57250 from Havard Eidnes

Fix the test for "inf" output, also include newline in printf format...
 1.26.6.1  17-Apr-2023  martin Pull up following revision(s) (requested by he in ticket #137):

lib/libc/stdio/Makefile.inc: revision 1.48
lib/libc/stdio/vfwprintf.c: revision 1.40
lib/libc/include/extern.h: revision 1.27

PR/57250: Martin Husemann: dtoa mishandles infinite doubles on 32bit big
endian machines. When long double support was added, the old code was kept
for the regular double code. This code was never used because WIDE_DOUBLE
was always defined in the Makefile. Remove that old code, and conditionalize
the WIDE_DOUBLE code based on if long doubles are different than doubles on
the specific platform.

RSS XML Feed