Home | History | Annotate | only in /src/lib/libc/arch/sparc
History log of /src/lib/libc/arch/sparc
RevisionDateAuthorComments
 1.4 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.3 10-Feb-1994  pk Insert some Position Independent Code.
 1.2 23-Jan-1994  deraadt ## and /**/
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.17 03-Sep-2023  mrg avoid array-bounds issues by using more complete types.

also, don't cast to a type that includes an extra, unused, member.

while here, replace the hard coded offsets in setjmp.S and some
asserts in longjmp.c with assym.h and shared structures for all
the movings parts, and asserts based upon those structures.

avoids GCC 12 warnings.
 1.16 31-Oct-2021  thorpej Tidy up how __sigaction14_sigtramp.c is added to SRCS.
 1.15 12-Jul-2014  nakayama Include sparc_v8 library into sparc64 32-bit compat libc library.
 1.14 12-Apr-2011  mrg branches: 1.14.10; 1.14.20;
rm -f ${.TARGET} before trying to > write to it; some how mine ended up
being mode 444 and the build failed.
 1.13 26-Oct-2008  mrg branches: 1.13.4;
define and use LIBCDIR in terms of .CURDIR. fixes compat/lib/libc build.
 1.12 17-Jun-2006  uwe G/c KMSRCS and KMINCLUDES now that we have common/lib/libc
 1.11 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.10 20-Apr-2005  jmc Don't use 'm4' here. Use $TOOL_M4 instead.
 1.9 12-Oct-2003  pk SIGINFO __sigaction & trampoline code.
 1.8 27-Oct-2002  chs remove setjmp/longjmp from libkern, they're not used.
 1.7 10-Jul-2002  thorpej Enable the libc-provided signal trampoline. The old __sigaction14
entry point has been replaced by the new __sigaction14() which is a
wrapper around the __sigaction_sigtramp system call (which is itself
not directly exposed outside of libc).

No shared library version change is necessary; no new symbols
are exposed outside of libc.
 1.6 09-Oct-1997  lukem branches: 1.6.14;
rcsid police
 1.5 18-Nov-1996  pk Remove reference to DEFS.h
 1.4 30-Jun-1994  deraadt set KMSRCS & friends
 1.3 08-Dec-1993  pk Fix location of sources -> arch/sparc
 1.2 04-Dec-1993  cgd update for .S and MACHINE_ARCH
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.6.14.2 11-Nov-2002  nathanw Catch up to -current
 1.6.14.1 01-Aug-2002  nathanw Catch up to -current.
 1.13.4.2 26-Oct-2008  mrg define and use LIBCDIR in terms of .CURDIR. fixes compat/lib/libc build.
 1.13.4.1 26-Oct-2008  mrg file Makefile.inc was added on branch christos-time_t on 2008-10-26 07:43:08 +0000
 1.14.20.1 10-Aug-2014  tls Rebase.
 1.14.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.19 12-Sep-2013  joerg Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.18 28-Mar-2011  martin branches: 1.18.4; 1.18.10;
ABI police: avoid cluttering global registers %g2 and %g7. Not quite there
yet for %g2, but the target is not very well defined. %g7 should be clean
now.
 1.17 08-Oct-2007  uwe In handwritten asm use -fPIC code instead of -fpic, our libc has grown
large enough for GOT to be larger than 8k.

While here kill redundant PIC ifdefs in setjmp.S - sparc "call"
instruction is piccy by itself.

Tested by martin@
 1.16 20-May-2005  uwe branches: 1.16.10;
Prettify. Avoid code duplication.
Same object code is generated.
 1.15 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.14 26-May-2002  wiz Revert previous: .S files are currently compiled with -traditional-cpp,
so __STDC__ is _not_ always defined.
 1.13 26-May-2002  wiz __STDC__ is always defined on NetBSD.
 1.12 14-Jan-2002  thorpej * Add WSYSCALL() to SYS.h, which creates a system call with an
internal name and a weak alias for the name.
* Add a WEAKASM syscall list, and process it.
* Make sysarch() have an internal name (_sysarch()).
 1.11 23-Jul-2001  christos Add a macro "CALL()" to call a function correctly in the pic and non pic
case. Write ERROR() in terms of call.
 1.10 26-Jun-2000  kleink branches: 1.10.2;
Add a _SYSCALL(entry,syscall) macro like the one found on other
architectures.
 1.9 31-Mar-1999  kleink branches: 1.9.10;
While in transition, conditionally rename _ASM_LABEL(cerror) and
_ASM_LABEL(curbrk) to _C_LABEL(__cerror) and _C_LABEL(__curbrk), respectively,
depending on the object format chosen, to avoid user namespace clashes.
 1.8 04-May-1997  kleink Fix typo in last commit.
 1.7 02-May-1997  kleink Consistency: distinguish between PSEUDO() and PSEUDO_NOERROR().
 1.6 09-Nov-1996  pk Flesh out the `noerror' syscall macros.
 1.5 24-Oct-1996  jtc fix typo
 1.4 19-Oct-1996  jtc Added new macros:
SYSCALL_NOERROR(x): Like SYSCALL except that "x" is a syscall
that can never fail.

RSYSCALL_NOERROR(x): Like RSYSCALL except that "x" is a syscall
that can never fail.

These macros simply call SYSCALL / RSYSCALL, and serve as placeholders
until an optimized implementation is done.
 1.3 10-Feb-1994  pk Insert some Position Independent Code.
 1.2 15-Jan-1994  pk Make it work with old-style (/usr/bin) cpp
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.9.10.1 25-Jul-2000  kleink Pull up rev. 1.10 (approved by thorpej):
Add a _SYSCALL(entry,syscall) macro.
 1.10.2.3 21-Jun-2002  nathanw Catch up to -current.
 1.10.2.2 28-Jan-2002  nathanw Catch up to -current.
 1.10.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.16.10.1 06-Nov-2007  matt sync with HEAD
 1.18.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.18.4.1 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.1 03-Sep-2023  mrg avoid array-bounds issues by using more complete types.

also, don't cast to a type that includes an extra, unused, member.

while here, replace the hard coded offsets in setjmp.S and some
asserts in longjmp.c with assym.h and shared structures for all
the movings parts, and asserts based upon those structures.

avoids GCC 12 warnings.
 1.1 15-Mar-2006  kleink Add strtof(3) and strtold(3); welcome libc 12.137.
 1.1 25-Jan-2006  kleink Add machine-dependent definitions for gdtoa.
 1.1 25-Jan-2006  kleink Add machine-dependent definitions for gdtoa.
 1.24 03-Sep-2023  mrg avoid array-bounds issues by using more complete types.

also, don't cast to a type that includes an extra, unused, member.

while here, replace the hard coded offsets in setjmp.S and some
asserts in longjmp.c with assym.h and shared structures for all
the movings parts, and asserts based upon those structures.

avoids GCC 12 warnings.
 1.23 12-Jul-2014  nakayama Include sparc_v8 library into sparc64 32-bit compat libc library.
 1.22 06-Dec-2009  uebayasi branches: 1.22.12; 1.22.22;
Rename ${SRCS.{alpha,arm,...}.gen} to ${LSRCS.{alpha,arm,...}.gen} because
they ended up in ${LSRCS}, not ${SRCS}. ${SRCS.*} namespace will be used
for more useful things. No functional changes intended.
 1.21 03-Jul-2006  drochner build frexp_ieee754 and ldexp_ieee754 in the "compat" subtree
(There is an assembler version of modf which needs to be checked.)
 1.20 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.19 15-Apr-2005  kleink Push back the descriptions of NaN formats, and descriptions of the
distinction between signalling NaNs and quiet NaNs back into the
machine-dependent headers; treat the implementation of __nanf in the
same spirit.

IEEE 754 leaves the distinction between signalling NaNs and quiet NANs
to the implementation, and unlike our headers used to suggest they're
not identical in the interpretation of the fraction's MSb; in due
course, make those of hppa, mips, sh3, and sh5 reflect reality.
 1.18 22-Mar-2004  pk branches: 1.18.6;
Use setcontext() instead of sigreturn() to implement longjmp().
 1.17 04-Mar-2004  kleink * Turn isinf(3) and isnan(3) into C99-style macros.
* Make it possible for ports to override these (i.e., VAX).
* Remove isnanl(), which was internal to libc only.
 1.16 12-Feb-2004  kleink Forgot to build signbit() library parts in previous; noticed by mrg.
 1.15 15-Jan-2004  kleink Add C99 fpclassify(), isfinite(), isnormal(), and signbit() macros.
 1.14 25-Oct-2003  kleink Add __infinityf and __infinityl, float respectively long double analogs
of __infinity.
 1.13 24-Oct-2003  kleink * Since there is no single portable IEEE 754 format for a long double,
keep a common implementation of isinfl() and isnanl() to be used by
platforms where `long double' == `double'; move others into
machine-dependent code.
* In due course, consider __VFP_FP__ on arm.
 1.12 01-Aug-2003  lukem Rework how dependency generation is performed:

* DPSRCS contains extra dependencies, but is _NOT_ added to CLEANFILES.
This is a change of behaviour. If a Makefile wants the clean semantics
it must specifically append to CLEANFILES.
Resolves PR toolchain/5204.

* To recap: .d (depend) files are generated for all files in SRCS and DPSRCS
that have a suffix of: .c .m .s .S .C .cc .cpp .cxx

* If YHEADER is set, automatically add the .y->.h to DPSRCS & CLEANFILES

* Ensure that ${OBJS} ${POBJS} ${LOBJS} ${SOBJS} *.d depend upon ${DPSRCS}

* Deprecate the (short lived) DEPENDSRCS


Update the various Makefiles to these new semantics; generally either
adding to CLEANFILES (because DPSRCS doesn't do that anymore), or replacing
specific .o dependencies with DPSRCS entries.

Tested with "make -j 8 distribution" and "make distribution".
 1.11 17-May-2003  thorpej Build _isinfl() and _isnanl().
 1.10 12-May-2003  kleink Rename ieee754_function.c to function_ieee754.c, following the convention
used in exec_format.c, loadfile_format.c, subsys_machdep.c etc.
Per discussion with Christos.
 1.9 21-Jan-2003  kleink Add swapcontext() lint stub.
 1.8 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.7 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.6 23-Dec-1999  kleink branches: 1.6.6;
C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
 1.5 15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.4 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.3 10-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2 25-Feb-1995  cgd don't forget inifinity.c
 1.1 25-Feb-1995  cgd need these for new gen/Makefile
 1.6.6.3 23-Nov-2002  martin Add the new files to the Makefile (oops!), fix a small glitch in
makecontext and add _lwp.c (nearly verbatim copy or the sparc64 one).
 1.6.6.2 22-Mar-2002  nathanw Catch up to -current.
 1.6.6.1 08-Mar-2002  nathanw Catch up to -current.
 1.18.6.1 19-Apr-2005  tron Pull up revision 1.19 (requested by kleink in ticket #163):
Push back the descriptions of NaN formats, and descriptions of the
distinction between signalling NaNs and quiet NaNs back into the
machine-dependent headers; treat the implementation of __nanf in the
same spirit.
IEEE 754 leaves the distinction between signalling NaNs and quiet NANs
to the implementation, and unlike our headers used to suggest they're
not identical in the interpretation of the fraction's MSb; in due
course, make those of hppa, mips, sh3, and sh5 reflect reality.
 1.22.22.1 10-Aug-2014  tls Rebase.
 1.22.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.3 14-Sep-2005  martin Add missing <compat/include/setjmp.h>
 1.2 23-Mar-2004  pk The sc_g1, sc_o0 members in the jmp_buf aren't used.
 1.1 22-Mar-2004  pk Use setcontext() instead of sigreturn() to implement longjmp().
 1.5 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.4 23-Mar-2004  pk Since libpthread may want to interpose signal handling, we can't directly
invoke the sigprocmask syscall trap. So build a stack frame and call
the signal handling functions by name.
 1.3 22-Mar-2004  pk Use setcontext() instead of sigreturn() to implement longjmp().
 1.2 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.1 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.4 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.3 16-Oct-1998  christos Fix the non pic version too.
 1.2 16-Oct-1998  christos PR/6285: Tom Ivar Helbekkmo: sigsetjmp/siglongjmp broken after current signal
changes.
 1.1 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.10 24-Apr-2025  riastradh sparc _lwp_makecontext, makecontext: Sort includes.

No functional change intended.

Tidying up for:

PR kern/59327: user stack pointer is not aligned properly
 1.9 24-Apr-2025  martin include <sys/param.h> for STACK_ALIGNBYTES
 1.8 24-Apr-2025  riastradh sparc: Use STACK_ALIGNBYTES macro when aligning stack pointer.

Prompted by:

PR kern/59327: user stack pointer is not aligned properly
 1.7 21-Mar-2012  christos branches: 1.7.44;
void cast
 1.6 24-Feb-2011  joerg branches: 1.6.4;
Allow storing and receiving the LWP private pointer via ucontext_t
on all platforms except VAX and IA64. Add fast access via register for
AMD64, i386 and SH3 ports. Use this fast access in libpthread to replace
the stack based pthread_self(). Implement skeleton support for Alpha,
HPPA, PowerPC, SPARC and SPARC64, but leave it disabled.

Ports that support this feature provide __HAVE____LWP_GETPRIVATE_FAST in
machine/types.h and a corresponding __lwp_getprivate_fast in
machine/mcontext.h.

This material is based upon work partially supported by
The NetBSD Foundation under a contract with Joerg Sonnenberger.
 1.5 28-Apr-2008  martin branches: 1.5.8; 1.5.20;
Remove clause 3 and 4 from TNF licenses
 1.4 12-Jun-2005  lukem branches: 1.4.18;
Add missing __RCSID()
 1.3 07-Apr-2003  kleink Make sure we reference getcontext() by its internal name.
 1.2 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 23-Nov-2002  martin branches: 1.1.2;
file _lwp.c was initially added on branch nathanw_sa.
 1.1.2.4 16-Jan-2003  thorpej Add missing notice.
 1.1.2.3 18-Dec-2002  skrll Fix up after change to mcontext.h
 1.1.2.2 29-Nov-2002  uwe Clean up remaining sparc64'isms. Beautify it a bit.
XXX: keep the code that sets %i6 and %i7 in the window save area,
though I think it's not necessary.
 1.1.2.1 23-Nov-2002  martin Add the new files to the Makefile (oops!), fix a small glitch in
makecontext and add _lwp.c (nearly verbatim copy or the sparc64 one).
 1.4.18.1 18-May-2008  yamt sync with head.
 1.5.20.1 05-Mar-2011  bouyer Sync with HEAD
 1.5.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.5.8.1 28-Apr-2008  martin file _lwp.c was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.6.4.1 17-Apr-2012  yamt sync with head
 1.7.44.1 02-Aug-2025  perseant Sync with HEAD
 1.10 12-Jul-2014  nakayama Use save instruction to set up a local stack frame.

This fixes a segmentation fault caused by bash 4.3 on sparc64
kernels with 32-bit userland, bash uses _setjmp/_longjmp heavyly
via sigsetjmp/siglongjmp since 4.3.

For 32-bit compat library which is compiled with -mcpu=ultrasparc
option (and define __sparc_v9__), use a similar code to 64-bit
library.
 1.9 30-Apr-2011  martin branches: 1.9.6; 1.9.10; 1.9.12; 1.9.18; 1.9.20;
Save a few global registers during set/longjmp - at least the application
registers and the only currently used system register (%g7).
Sparc now passes the setjmp tests (and should be able to build perl again).
 1.8 28-Apr-2008  martin branches: 1.8.8;
Remove clause 3 and 4 from TNF licenses
 1.7 23-Mar-2004  pk branches: 1.7.30;
Fix comment: g6 => o1
 1.6 27-Jun-1999  pk A new implementation of _setjmp/_longjmp that uses the T_FLUSHWIN trap.
This means the stack frame and program counter can restored directly
from the jmp_buf, eliminating the need to backtrack through frames
which does not work in all cases.
 1.5 01-Jul-1998  tv Change immediate label references to _C_LABEL().
 1.4 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.3 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.2 06-Mar-1996  pk Avoid load/store doubles; jmp_buf is long aligned (Michael Eriksson; PR#2180)
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.7.30.1 18-May-2008  yamt sync with head.
 1.8.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.8.8.1 28-Apr-2008  martin file _setjmp.S was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.9.20.1 10-Aug-2014  tls Rebase.
 1.9.18.1 07-Aug-2014  msaitoh Pull up following revision(s) (requested by nakayama in ticket #1100):
lib/libc/arch/sparc/gen/_setjmp.S: revision 1.10
Use save instruction to set up a local stack frame.
This fixes a segmentation fault caused by bash 4.3 on sparc64
kernels with 32-bit userland, bash uses _setjmp/_longjmp heavyly
via sigsetjmp/siglongjmp since 4.3.
For 32-bit compat library which is compiled with -mcpu=ultrasparc
option (and define __sparc_v9__), use a similar code to 64-bit
library.
 1.9.12.1 07-Aug-2014  msaitoh Pull up following revision(s) (requested by nakayama in ticket #1100):
lib/libc/arch/sparc/gen/_setjmp.S: revision 1.10
Use save instruction to set up a local stack frame.
This fixes a segmentation fault caused by bash 4.3 on sparc64
kernels with 32-bit userland, bash uses _setjmp/_longjmp heavyly
via sigsetjmp/siglongjmp since 4.3.
For 32-bit compat library which is compiled with -mcpu=ultrasparc
option (and define __sparc_v9__), use a similar code to 64-bit
library.
 1.9.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.6.1 07-Aug-2014  msaitoh Use save instruction to set up a local stack frame.
This fixes a segmentation fault caused by bash 4.3 on sparc64
kernels with 32-bit userland, bash uses _setjmp/_longjmp heavyly
via sigsetjmp/siglongjmp since 4.3.
For 32-bit compat library which is compiled with -mcpu=ultrasparc
option (and define __sparc_v9__), use a similar code to 64-bit
library.
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.6 23-Mar-2011  martin Avoid using %g7
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 09-Oct-1997  lukem rcsid police
 1.3 18-Nov-1996  mrg update for removed DEFS.h.
 1.2 22-Apr-1995  pk Preserve the equality "x == y*(x/y)+(x%y)" for negative y; from Lon Willett.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5 07-Nov-2018  riastradh On ports without __HAVE_LONG_DOUBLE, make fabsl alias fabs.

For some reason, fabs lives in libc, not in libm, and our tests now
detect when fabs or fabsl is missing from libm. For those ports that
sometimes have long double and sometimes don't, make it conditional.

Still missing: fabs _and_ fabsl on ia64. Need help from an itanium
wizard! Other portmasters: Please take a look and see if I missed
any ports that might have long double where this alias will not work.
 1.4 07-Aug-2003  agc branches: 1.4.96; 1.4.98;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.4.98.1 10-Jun-2019  christos Sync with HEAD
 1.4.96.1 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.6 12-Sep-2013  joerg Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.5 07-Aug-2003  agc branches: 1.5.56; 1.5.62;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.3 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.2 14-Aug-1995  pk Make PIC-safe.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5.62.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.56.1 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.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.7 21-Mar-2012  christos c89 prototypes, unsigned int
 1.6 24-Dec-2005  perry branches: 1.6.44;
__asm__ -> __asm
 1.5 12-Jun-2005  lukem Add missing __RCSID()
 1.4 01-Nov-2003  nakayama Corrent map order to match sparc/ieeefp.h.
 1.3 09-Jan-1998  perry RCS Id Police.
 1.2 18-Jul-1997  thorpej Pull in __flt_rounds() prototype.
 1.1 10-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.6.44.1 17-Apr-2012  yamt sync with head
 1.6 21-Mar-2012  christos c89 prototypes, unsigned int
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 09-Jan-1998  perry branches: 1.2.12;
RCS Id Police.
 1.1 10-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.12.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.6 21-Mar-2012  christos c89 prototypes, unsigned int
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 09-Jan-1998  perry branches: 1.2.12;
RCS Id Police.
 1.1 10-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.12.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.6 21-Mar-2012  christos c89 prototypes, unsigned int
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 09-Jan-1998  perry branches: 1.2.12;
RCS Id Police.
 1.1 10-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.12.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.6 21-Mar-2012  christos c89 prototypes, unsigned int
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 09-Jan-1998  perry branches: 1.2.12;
RCS Id Police.
 1.1 10-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.12.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.8 02-Apr-2024  rillig sparc/fpsetround: fix the nearby signed integer overflow as well

Same as for sparc64 a few days ago.
 1.7 02-Apr-2024  christos fix lint
 1.6 21-Mar-2012  christos c89 prototypes, unsigned int
 1.5 24-Dec-2005  perry branches: 1.5.44;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 09-Jan-1998  perry branches: 1.2.12;
RCS Id Police.
 1.1 10-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.12.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.44.1 17-Apr-2012  yamt sync with head
 1.6 18-Oct-2013  mrg convert to full ANSI C.
 1.5 24-Dec-2005  perry branches: 1.5.44; 1.5.50;
__asm__ -> __asm
 1.4 12-Jun-2005  lukem Add missing __RCSID()
 1.3 13-Jan-2002  thorpej Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
 1.2 09-Jan-1998  perry branches: 1.2.12;
RCS Id Police.
 1.1 10-Apr-1995  jtc Added __flt_rounds, fp{get,set}{mask,round,sticky}.
 1.2.12.1 28-Jan-2002  nathanw Catch up to -current.
 1.5.50.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.44.1 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.5 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.4 29-Aug-1999  mycroft branches: 1.4.10;
Trivial KNF.
 1.3 10-Mar-1999  mycroft Just some minor cleanup.
 1.2 13-Jul-1997  christos Add missing math.h include
Fix RCSID's
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.4.10.1 08-Mar-2002  nathanw Catch up to -current.
 1.3 19-Jan-2003  kleink Move getcontext.S from gen to sys, where it belongs.
 1.2 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 21-Nov-2002  martin branches: 1.1.2;
file getcontext.S was initially added on branch nathanw_sa.
 1.1.2.2 29-Nov-2002  uwe Cosmetic: use "clr [...]" instead of "st %g0, [...]".
 1.1.2.1 21-Nov-2002  martin Add context handling functions from Klaus Klein.
 1.6 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.5 13-Sep-2000  msaitoh branches: 1.5.2;
check LIBC_SCCS
 1.4 14-Nov-1998  christos delint
 1.3 26-Jul-1998  mycroft const poisoning.
 1.2 13-Jul-1997  christos Fix RCSID's
 1.1 19-Oct-1993  deraadt First cut; not sure if it's right. Very like it is, because it's
the same as the m68k versions..
 1.5.2.1 08-Mar-2002  nathanw Catch up to -current.
 1.8 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.7 22-Jan-2000  mycroft branches: 1.7.6;
Delint.
 1.6 29-Aug-1999  mycroft Separate isnan() into a separate module, and make isinf()/isnan() use ieee.h.
 1.5 14-Nov-1998  christos delint
 1.4 13-Oct-1998  kleink Need internal names for isinf() and isnan().
 1.3 13-Jul-1997  christos Add missing math.h include.
Fix RCSID's
 1.2 05-Feb-1996  jtc Add explicit return type
 1.1 07-Oct-1993  cgd branches: 1.1.4;
make an arch directory in libc, and move all machine dirs into it
 1.1.4.1 18-Apr-1995  jtc namespace protect isnan() and isinf()
 1.7.6.1 08-Mar-2002  nathanw Catch up to -current.
 1.7 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.6 22-Jan-2000  mycroft branches: 1.6.6;
Delint.
 1.5 29-Aug-1999  mycroft Separate isnan() into a separate module, and make isinf()/isnan() use ieee.h.
 1.4 13-Oct-1998  kleink Need internal names for isinf() and isnan().
 1.3 13-Jul-1997  christos Add missing math.h include
Fix RCSID's
 1.2 05-Feb-1996  jtc Add explicit return type
 1.1 07-Oct-1993  cgd branches: 1.1.4;
make an arch directory in libc, and move all machine dirs into it
 1.1.4.1 18-Apr-1995  jtc namespace protect isnan() and isinf()
 1.6.6.1 08-Mar-2002  nathanw Catch up to -current.
 1.11 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.10 08-Nov-2001  tron Rename a parameter to fix build problem with new toolchain.
 1.9 30-Aug-1999  mycroft branches: 1.9.10;
Another microoptimization. Take advantage of the addition already having set
the flags for the <=0 comparison.
 1.8 30-Aug-1999  mycroft Reuse the trick of loading 0.0 (rather than 1.0) and then modifying the
exponent. It's a bit faster on some machines.
 1.7 30-Aug-1999  augustss Remove more unused mulexp variables.
 1.6 29-Aug-1999  mycroft ldexp(denormal, exp>1023) would generate the wrong result in all non-overflow
cases. Totally rework this code to fix this bug *and* make it faster.
 1.5 29-Aug-1999  mycroft Don't ever return -0.0.
 1.4 29-Aug-1999  mycroft Minor style change.
 1.3 10-Mar-1999  mycroft Just some minor cleanup.
 1.2 13-Jul-1997  christos Add missing math.h include
Fix RCSID's
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.9.10.2 08-Mar-2002  nathanw Catch up to -current.
 1.9.10.1 14-Nov-2001  nathanw Catch up to -current.
 1.6 24-Apr-2025  riastradh sparc, sparc64 longjmp: Use _UC_SIGMASK to restore signal mask.

This way, restoring the signal mask and restoring the stack pointer
happen atomically with respect to signal handler calls, whereas using
sigprocmask would restore the signal mask _before_ the stack pointer,
breaking sigaltstack.

The motivation for using sigprocmask first and then setcontext later,
rather than _UC_SIGMASK in setcontext, was to get SA-based libpthead
sigprocmask interposition. But that's long gone and unlikely to come
back.

PR lib/57946: longjmp fails to restore stack first before restoring
signal mask on most architectures
 1.5 20-Feb-2024  uwe branches: 1.5.2;
fix typo in comment
 1.4 03-Sep-2023  mrg avoid array-bounds issues by using more complete types.

also, don't cast to a type that includes an extra, unused, member.

while here, replace the hard coded offsets in setjmp.S and some
asserts in longjmp.c with assym.h and shared structures for all
the movings parts, and asserts based upon those structures.

avoids GCC 12 warnings.
 1.3 30-Apr-2011  martin Save a few global registers during set/longjmp - at least the application
registers and the only currently used system register (%g7).
Sparc now passes the setjmp tests (and should be able to build perl again).
 1.2 28-Apr-2008  martin branches: 1.2.8;
Remove clause 3 and 4 from TNF licenses
 1.1 15-Oct-2005  uwe branches: 1.1.18;
Switch sparc to the new compat code layout.
 1.1.18.1 18-May-2008  yamt sync with head.
 1.2.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2.8.1 28-Apr-2008  martin file longjmp.c was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.5.2.1 02-Aug-2025  perseant Sync with HEAD
 1.6 24-Apr-2025  riastradh sparc _lwp_makecontext, makecontext: Sort includes.

No functional change intended.

Tidying up for:

PR kern/59327: user stack pointer is not aligned properly
 1.5 24-Apr-2025  martin include <sys/param.h> for STACK_ALIGNBYTES
 1.4 24-Apr-2025  riastradh sparc: Use STACK_ALIGNBYTES macro when aligning stack pointer.

Prompted by:

PR kern/59327: user stack pointer is not aligned properly
 1.3 28-Apr-2008  martin branches: 1.3.8; 1.3.76;
Remove clause 3 and 4 from TNF licenses
 1.2 18-Jan-2003  thorpej branches: 1.2.30;
Merge the nathanw_sa branch.
 1.1 21-Nov-2002  martin branches: 1.1.2;
file makecontext.c was initially added on branch nathanw_sa.
 1.1.2.6 18-Dec-2002  skrll Fix up after change to mcontext.h
 1.1.2.5 29-Nov-2002  uwe Our libpthread implementation calls makecontext(3) with argc being
the real argc. Change this accordingly.
 1.1.2.4 27-Nov-2002  uwe Fix off-by-one in previous for arguments passed on the stack.
 1.1.2.3 27-Nov-2002  uwe Correctly pass arguments that don't fit into out registers.
Add comment from cu5 test about argc being one greater then
the number of arguments (per solaris version that we seems to support).
Passes cu5 now.
 1.1.2.2 23-Nov-2002  martin Add the new files to the Makefile (oops!), fix a small glitch in
makecontext and add _lwp.c (nearly verbatim copy or the sparc64 one).
 1.1.2.1 21-Nov-2002  martin Add context handling functions from Klaus Klein.
 1.2.30.1 18-May-2008  yamt sync with head.
 1.3.76.1 02-Aug-2025  perseant Sync with HEAD
 1.3.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3.8.1 28-Apr-2008  martin file makecontext.c was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.7 12-Sep-2013  joerg Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.6 07-Aug-2003  agc branches: 1.6.56; 1.6.62;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.5 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.4 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.3 10-Feb-1994  pk Insert some Position Independent Code.
 1.2 08-Dec-1993  pk Use %hi operator when fiddling a bit high...
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.6.62.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.56.1 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.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.4 22-Feb-2009  martin Make NAN a compile time constant (with help from the compiler). Suggested
by krister. Fixes PR 40695.
Make references to the old construct (which we can't remove for binary
compatibility reasons) emit a linker warning.
 1.3 15-Apr-2005  kleink branches: 1.3.2; 1.3.32;
Push back the descriptions of NaN formats, and descriptions of the
distinction between signalling NaNs and quiet NaNs back into the
machine-dependent headers; treat the implementation of __nanf in the
same spirit.

IEEE 754 leaves the distinction between signalling NaNs and quiet NANs
to the implementation, and unlike our headers used to suggest they're
not identical in the interpretation of the fraction's MSb; in due
course, make those of hppa, mips, sh3, and sh5 reflect reality.
 1.2 19-Feb-2002  simonb Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
 1.1 23-Dec-1999  kleink branches: 1.1.6;
C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
 1.1.6.1 08-Mar-2002  nathanw Catch up to -current.
 1.3.32.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.3.2.2 19-Apr-2005  tron Pull up revision 1.3 (requested by kleink in ticket #163):
Push back the descriptions of NaN formats, and descriptions of the
distinction between signalling NaNs and quiet NaNs back into the
machine-dependent headers; treat the implementation of __nanf in the
same spirit.
IEEE 754 leaves the distinction between signalling NaNs and quiet NANs
to the implementation, and unlike our headers used to suggest they're
not identical in the interpretation of the fraction's MSb; in due
course, make those of hppa, mips, sh3, and sh5 reflect reality.
 1.3.2.1 15-Apr-2005  tron file nanf.c was added on branch netbsd-3 on 2005-04-19 12:30:51 +0000
 1.5 19-Sep-2011  joerg Mark _resumecontext as dead. ANSIfy all declarations for it.
 1.4 28-Apr-2008  martin branches: 1.4.8;
Remove clause 3 and 4 from TNF licenses
 1.3 08-Dec-2006  martin branches: 1.3.10;
Sync all resumecontext.c versions with the changes originally made
by Matthias Drochner to i386 and alpha:

-check for a NULL uc_link before calling setcontext(2); do a real exit(3)
instead with exit handlers and all that
-If setcontext(2) returns (which it shouldn't), do an _exit(-1) rather
than relying on a sensible return value to use as exit code. Makes
it less likely that an ucontext corruption goes unnoticed.
 1.2 18-Jan-2003  thorpej branches: 1.2.16;
Merge the nathanw_sa branch.
 1.1 21-Nov-2002  martin branches: 1.1.2;
file resumecontext.c was initially added on branch nathanw_sa.
 1.1.2.1 21-Nov-2002  martin Add context handling functions from Klaus Klein.
 1.2.16.1 09-Dec-2006  bouyer Pull up following revision(s) (requested by martin in ticket #264):
lib/libc/arch/sh5/gen/resumecontext.c: revision 1.2
lib/libc/arch/sh3/gen/resumecontext.c: revision 1.3
lib/libc/arch/sparc/gen/resumecontext.c: revision 1.3
lib/libc/arch/powerpc/gen/resumecontext.c: revision 1.3
lib/libc/arch/arm/gen/resumecontext.c: revision 1.3
lib/libc/arch/mips/gen/resumecontext.c: revision 1.3
lib/libc/arch/vax/gen/resumecontext.c: revision 1.2
lib/libc/arch/powerpc64/gen/resumecontext.c: revision 1.2
lib/libc/arch/hppa/gen/resumecontext.c: revision 1.2
Sync all resumecontext.c versions with the changes originally made
by Matthias Drochner to i386 and alpha:
-check for a NULL uc_link before calling setcontext(2); do a real exit(3)
instead with exit handlers and all that
-If setcontext(2) returns (which it shouldn't), do an _exit(-1) rather
than relying on a sensible return value to use as exit code. Makes
it less likely that an ucontext corruption goes unnoticed.
 1.3.10.1 18-May-2008  yamt sync with head.
 1.4.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4.8.1 28-Apr-2008  martin file resumecontext.c was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.5 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.14 11-Oct-2023  skrll Consistently pass 0 as first and ignored argument to sigprocmask in the
setjmp implementations.

NFCI.
 1.13 03-Sep-2023  mrg avoid array-bounds issues by using more complete types.

also, don't cast to a type that includes an extra, unused, member.

while here, replace the hard coded offsets in setjmp.S and some
asserts in longjmp.c with assym.h and shared structures for all
the movings parts, and asserts based upon those structures.

avoids GCC 12 warnings.
 1.12 30-Apr-2011  martin Save a few global registers during set/longjmp - at least the application
registers and the only currently used system register (%g7).
Sparc now passes the setjmp tests (and should be able to build perl again).
 1.11 08-Oct-2007  uwe In handwritten asm use -fPIC code instead of -fpic, our libc has grown
large enough for GOT to be larger than 8k.

While here kill redundant PIC ifdefs in setjmp.S - sparc "call"
instruction is piccy by itself.

Tested by martin@
 1.10 28-Dec-2006  martin branches: 1.10.4;
Use CCFSZ instead of 96 for standard save operations.
 1.9 15-Oct-2005  uwe branches: 1.9.4;
Switch sparc to the new compat code layout.
 1.8 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.7 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.6 01-Jul-1998  tv Change immediate label references to _C_LABEL().
 1.5 04-Dec-1997  tv Quick fix to repair runtime link problem with libc - "SYS_sigaltstack
undefined". The sigaltstack structure layout didn't actually change on
the sparc, so just change the syscall name. A better fix would probably
be to replace the direct system call with a function call to the libc
sigaltstack().
 1.4 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.3 17-May-1994  deraadt sigaltstack
 1.2 08-Dec-1993  pk Use sigstack() in stead of sigaltstack() until we have a sigaltstack()
in the kernel.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.9.4.1 04-Jan-2007  bouyer Pull up following revision(s) (requested by martin in ticket #312):
lib/libc/arch/sparc/gen/setjmp.S: revision 1.10
lib/libc/arch/sparc/sys/__clone.S: revision 1.4
lib/libc/arch/sparc/sys/cerror.S: revision 1.9
Use CCFSZ instead of 96 for standard save operations.
 1.10.4.1 06-Nov-2007  matt sync with HEAD
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.7 12-Sep-2013  joerg Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.6 08-Oct-2007  uwe branches: 1.6.30; 1.6.36;
In handwritten asm use -fPIC code instead of -fpic, our libc has grown
large enough for GOT to be larger than 8k.

While here kill redundant PIC ifdefs in setjmp.S - sparc "call"
instruction is piccy by itself.

Tested by martin@
 1.5 15-Oct-2005  uwe branches: 1.5.10;
Switch sparc to the new compat code layout.
 1.4 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.3 01-Jul-1998  tv Change immediate label references to _C_LABEL().
 1.2 11-Mar-1995  pk Simplify.
 1.1 11-Jan-1995  pk Machine dependent sig{set,long}jmp().
 1.5.10.1 06-Nov-2007  matt sync with HEAD
 1.6.36.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.30.1 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.1 03-Sep-2023  mrg avoid array-bounds issues by using more complete types.

also, don't cast to a type that includes an extra, unused, member.

while here, replace the hard coded offsets in setjmp.S and some
asserts in longjmp.c with assym.h and shared structures for all
the movings parts, and asserts based upon those structures.

avoids GCC 12 warnings.
 1.5 12-Sep-2013  joerg Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.4 12-Sep-2012  manu branches: 1.4.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.3 28-Apr-2008  martin branches: 1.3.4; 1.3.8;
Remove clause 3 and 4 from TNF licenses
 1.2 18-Jan-2003  thorpej branches: 1.2.30;
Merge the nathanw_sa branch.
 1.1 21-Nov-2002  martin branches: 1.1.2;
file swapcontext.S was initially added on branch nathanw_sa.
 1.1.2.1 21-Nov-2002  martin Add context handling functions from Klaus Klein.
 1.2.30.1 18-May-2008  yamt sync with head.
 1.3.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.3.8.1 28-Apr-2008  martin file swapcontext.S was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.3.4.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.3.4.1 30-Oct-2012  yamt sync with head
 1.4.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.1 25-Feb-1995  cgd need these now, with new net Makefile.inc
 1.5 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5 11-Aug-2009  dsl Change NO_SRCS lines to specify .S in order to exclude the .c file from
SRCS but add it to LSRCS (sort of makes sense!).
 1.4 31-Jul-2009  dsl Add the 'abs', 'div' and 'erand48' sources to stdlib/Makefile.inc.
Change the arch files only include the .S files.
This adds imaxdiv() to some archs where it was missing.
 1.3 22-Mar-2006  drochner build erand48_ieee754.c on everything but vax
 1.2 06-Mar-2000  kleink Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.
 1.1 05-Nov-1997  cgd branches: 1.1.2;
A foolish consistency... gen, net, and string all get MD sources
specified by including a Makefile.inc from the appropriate MD directory.
stdlib doesn't do that, but there's no reason that it shouldn't (and
it'd be nice to eliminate the 'if's from the MI stdlib Makefile.inc).
 1.1.2.2 08-Nov-1997  veego pull up changes from the trunk (approved by perry) from cgd:
>A foolish consistency... gen, net, and string all get MD sources
>specified by including a Makefile.inc from the appropriate MD directory.
>stdlib doesn't do that, but there's no reason that it shouldn't (and
>it'd be nice to eliminate the 'if's from the MI stdlib Makefile.inc).
 1.1.2.1 05-Nov-1997  veego file Makefile.inc was added on branch netbsd-1-3 on 1997-11-08 21:56:44 +0000
 1.4 20-Jan-2000  kleink Nuke the assembly version, which has been unused for > 2 years and is actually
identical to GCC's output from processing abs.c.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.4 04-Aug-2008  matt branches: 1.4.6;
Add C99 functions imaxabs and imaxdiv.
 1.3 07-Aug-2003  agc branches: 1.3.32;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.2 29-May-2001  kleink Add missing internal names and weak aliases to assembly versions.
 1.1 06-Mar-2000  kleink branches: 1.1.6;
Add ISO C99 long long integer general utility interfaces; partially addresses
PR standards/9482.
 1.1.6.1 08-Oct-2001  nathanw Catch up to -current.
 1.3.32.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.4.6.2 04-Aug-2008  matt Add C99 functions imaxabs and imaxdiv.
 1.4.6.1 04-Aug-2008  matt file llabs.S was added on branch christos-time_t on 2008-08-04 21:29:29 +0000
 1.4 30-Jul-2009  dsl If SRCS contains any .S files then remove the corresponding .c file from
SRCS and add to LSRCS (for lint).
Change the 'string' Makefiles so that the arch/*/string/Makefile.inc
need only specify the .S files for that architecture and not the .c
files for all the files they don't override.
 1.3 18-Jul-2009  dsl Remove references to index.c and rindex.c (strchr.c and strrchr.c
now provide the definitions).
 1.2 23-Jun-2001  kleink Use a bzero-based assembly language implementation for memset();
inspired by the recent sparc64 change.
 1.1 20-Mar-1995  mycroft branches: 1.1.22;
Separate machine dependencies.
 1.1.22.1 08-Oct-2001  nathanw Catch up to -current.
 1.6 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 23-Jun-2001  kleink Use a bzero-based assembly language implementation for memset();
inspired by the recent sparc64 change.
 1.3 16-Jul-1997  christos branches: 1.3.14;
RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.3.14.1 08-Oct-2001  nathanw Catch up to -current.
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.12 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.11 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.10 13-May-2001  kleink Make this work for PIC (as opposed to pic) without taking chances of fitting
__ffstab into a GOT13 relocation; from Eduardo Horvath.
 1.9 06-Sep-1999  chs branches: 1.9.10;
use RODATA() instead of ENTRY() for __ffstab so that it works when profiling.
 1.8 01-Jul-1998  tv Change immediate label references to _C_LABEL().
 1.7 24-Feb-1998  pk Need to use PIC_PROLOGUE() since `__ffstab' is now a global.
 1.6 22-Feb-1998  mycroft Fix omission in last.
 1.5 22-Feb-1998  mycroft Expose ffstab as __ffstab.
 1.4 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.3 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.2 10-Feb-1994  pk Insert some Position Independent Code.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.9.10.1 08-Oct-2001  nathanw Catch up to -current.
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.1 23-Jun-2001  kleink branches: 1.1.2;
Use a bzero-based assembly language implementation for memset();
inspired by the recent sparc64 change.
 1.1.2.2 08-Oct-2001  nathanw Catch up to -current.
 1.1.2.1 23-Jun-2001  nathanw file memset.S was added on branch nathanw_sa on 2001-10-08 20:18:20 +0000
 1.5 20-Dec-2005  christos Use reach-over sources from common/lib/libc
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 02-Dec-1998  thorpej Warn about references to the compatibility vfork() (i.e. the vfork() with
the 4.4BSD non-shared-address-space semantics), and direct the user to
include <unistd.h> to generate the correct reference.

This warning isn't about an ABI compatibility issue, but the new vfork() is
considerably faster.
 1.2 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.6 28-Apr-2008  martin branches: 1.6.8;
Remove clause 3 and 4 from TNF licenses
 1.5 28-Dec-2006  martin branches: 1.5.10;
Provide a full frame stack space in the clone'd child.
 1.4 28-Dec-2006  martin Use CCFSZ instead of 96 for standard save operations.
 1.3 23-Jan-2004  martin branches: 1.3.16;
If the syscall fails, the carry bit will be set - not the zero bit.
 1.2 02-Jan-2004  martin Restore stack frames on error return.
 1.1 23-Jul-2001  christos branches: 1.1.2;
add an implementation of __clone(2)
 1.1.2.2 08-Oct-2001  nathanw Catch up to -current.
 1.1.2.1 23-Jul-2001  nathanw file __clone.S was added on branch nathanw_sa on 2001-10-08 20:18:21 +0000
 1.3.16.2 04-Jan-2007  bouyer Pull up following revision(s) (requested by martin in ticket #313):
lib/libc/arch/sparc/sys/__clone.S: revision 1.5
Provide a full frame stack space in the clone'd child.
 1.3.16.1 04-Jan-2007  bouyer Pull up following revision(s) (requested by martin in ticket #312):
lib/libc/arch/sparc/gen/setjmp.S: revision 1.10
lib/libc/arch/sparc/sys/__clone.S: revision 1.4
lib/libc/arch/sparc/sys/cerror.S: revision 1.9
Use CCFSZ instead of 96 for standard save operations.
 1.5.10.1 18-May-2008  yamt sync with head.
 1.6.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.6.8.1 28-Apr-2008  martin file __clone.S was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.2 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.1 25-Aug-1999  thorpej Add __msgctl13(), __semctl13(), and __shmctl13() (symbols are __RENAME()'d
in their respective header files). Add PSEUDO stubs for the old versions
of these system calls.

Note that __semctl13() doesn't require the extra stub that the old
semctl()/__semctl() did, as the SUSv2 version takes variable arguments,
and thus does not require the extra indirection.
 1.8 26-Oct-2021  christos Merge all MD __sigaction14_sigtramp.c copies into one:
- sparc and sparc64 were not using version 0 sigcontext when there were
no arguments in the signal version. This was probably a bug.
- vax is using +1 the version numbers of the other archs.
- Only hppa was defining __LIBC12_SOURCE__ so it was getting a working
sigcontext before. all the other ports that supported sigcontext had
the compat code disabled.
[pointed out by thorpej, thanks!]
If we want to remove sigcontext support from userland at least now there
is less work to do so.
 1.7 28-Apr-2008  martin branches: 1.7.8;
Remove clause 3 and 4 from TNF licenses
 1.6 19-Feb-2006  christos branches: 1.6.18;
make these consistent.
 1.5 12-Jun-2005  lukem Add missing __RCSID()
 1.4 23-Mar-2004  drochner save errno while trying to install a !SA_SIGINFO trampoline -- this
is expected to fail with !COMPAT_16 kernels, and we shouldn't
overwrite errno in this case
 1.3 12-Oct-2003  pk SIGINFO __sigaction & trampoline code.
 1.2 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 09-Jul-2002  thorpej branches: 1.1.2;
New __sigaction14() system call stub which registers the signal
trampoline, and the signal trampolines themselves.

NOTE: These are not yet enabled; they will be enabled after further
testing on more architectures.
 1.1.2.3 02-Oct-2002  thorpej libc:
Internally rename __sigaction14 to __libc_sigaction14. Provide a
weak alias of __sigaction14 -> __libc_sigaction14.

libpthread:
Use __libc_sigaction14 to actually register the signal handler, rather
than using __sigaction_sigtramp() directly with a hard-coded trampoline
version. While we don't actually use the libc trampoline, we want to
avoid depending on any COMPAT_* kernel options down the road (this is
already the case for the VAX port).

Be explicit about which version of the signal interface we're interposing
(...14), and build pthread_sig.c with __LIBC12_SOURCE__ (required to get
the libc-internal interfaces).
 1.1.2.2 01-Aug-2002  nathanw Catch up to -current.
 1.1.2.1 09-Jul-2002  nathanw file __sigaction14_sigtramp.c was added on branch nathanw_sa on 2002-08-01 03:28:06 +0000
 1.6.18.1 18-May-2008  yamt sync with head.
 1.7.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.7.8.1 28-Apr-2008  martin file __sigaction14_sigtramp.c was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.4 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.3 26-Mar-2004  drochner fix references to the syscall formerly known as SYS___sigreturn14
 1.2 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.1 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.5 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.4 26-Mar-2004  drochner fix references to the syscall formerly known as SYS___sigreturn14
 1.3 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.2 11-Jul-2002  thorpej branches: 1.2.2;
Need <machine/psl.h> and <machine/signal.h>. Problem pointed out
by Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>.
 1.1 09-Jul-2002  thorpej New __sigaction14() system call stub which registers the signal
trampoline, and the signal trampolines themselves.

NOTE: These are not yet enabled; they will be enabled after further
testing on more architectures.
 1.2.2.2 01-Aug-2002  nathanw Catch up to -current.
 1.2.2.1 11-Jul-2002  nathanw file __sigtramp1.S was added on branch nathanw_sa on 2002-08-01 03:28:06 +0000
 1.2 28-Apr-2008  martin branches: 1.2.8;
Remove clause 3 and 4 from TNF licenses
 1.1 12-Oct-2003  pk branches: 1.1.30;
SIGINFO __sigaction & trampoline code.
 1.1.30.1 18-May-2008  yamt sync with head.
 1.2.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2.8.1 28-Apr-2008  martin file __sigtramp2.S was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.2 28-Apr-2008  martin branches: 1.2.8;
Remove clause 3 and 4 from TNF licenses
 1.1 13-Dec-2000  pk branches: 1.1.34;
Add required __syscall.S stub.
 1.1.34.1 18-May-2008  yamt sync with head.
 1.2.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2.8.1 28-Apr-2008  martin file __syscall.S was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.2 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.1 04-Jan-1998  thorpej Add syscall stubs for __vfork14(). These are basically copies of Ovfork.S
with the syscall numbers changed.

Since 4.4BSD vfork(2) did not share address space, Ovfork.S could be changed
to be identical to fork.S (modulo syscall numbers). __vfork14.S, however,
needs to remain separate since with a shared address space, the stub needs to
pre-decrement the stack and do an indirect jump to the return address, so that
the shared stackframe is still there when the parent returns. (Obviously,
this does not apply to systems which to not build stackframes on leaf calls.)
 1.16 12-Sep-2013  joerg Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.15 06-Nov-2008  nakayama branches: 1.15.2; 1.15.10; 1.15.16;
Redo rev.1.13. We must refer to CURBRK via GOT in case of PIC.
 1.14 10-Mar-2008  he branches: 1.14.8;
As mrg@ informs me, delay slots are indented 1 and not 2 spaces.
 1.13 10-Mar-2008  he Fix the problem that CURBRK can't be referenced directly via R_SPARC_GOT13
here anymore (apparently libc grew too big). Use sethi and %hi/%lo instead.
 1.12 08-Oct-2007  uwe branches: 1.12.4;
In handwritten asm use -fPIC code instead of -fpic, our libc has grown
large enough for GOT to be larger than 8k.

While here kill redundant PIC ifdefs in setjmp.S - sparc "call"
instruction is piccy by itself.

Tested by martin@
 1.11 26-Dec-2003  martin branches: 1.11.22;
Use an unsigned comparison against minbrk.
From OpenBSD, changed by Miod Vallat.
 1.10 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.9 26-Jun-2000  kleink Thinko in previous: we do always use an internal name.
 1.8 23-Jun-2000  kleink Add internal names for brk() and sbrk().
 1.7 03-Jun-1999  kleink branches: 1.7.8;
Shameless hack to reference end if using a.out and _end if using ELF.
 1.6 31-Mar-1999  kleink While in transition, conditionally rename _ASM_LABEL(cerror) and
_ASM_LABEL(curbrk) to _C_LABEL(__cerror) and _C_LABEL(__curbrk), respectively,
depending on the object format chosen, to avoid user namespace clashes.
 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 01-Jul-1998  tv Change immediate label references to _C_LABEL().
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 10-Feb-1994  pk Insert some Position Independent Code.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.7.8.1 22-Aug-2000  kleink Pull up revs. 1.8-1.9 (approved by thorpej):
Add internal names for brk(), sbrk() and fork().
 1.11.22.2 23-Mar-2008  matt sync with HEAD
 1.11.22.1 06-Nov-2007  matt sync with HEAD
 1.12.4.1 24-Mar-2008  keiichi sync with head.
 1.14.8.1 07-Nov-2008  snj Pull up following revision(s) (requested by nakayama in ticket #23):
lib/libc/arch/sparc/sys/brk.S: revision 1.15
Redo rev.1.13. We must refer to CURBRK via GOT in case of PIC.
 1.15.16.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.15.10.1 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.15.2.2 06-Nov-2008  nakayama Redo rev.1.13. We must refer to CURBRK via GOT in case of PIC.
 1.15.2.1 06-Nov-2008  nakayama file brk.S was added on branch christos-time_t on 2008-11-06 13:42:56 +0000
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.11 12-Sep-2013  joerg Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.10 08-Oct-2007  uwe branches: 1.10.30; 1.10.36;
In handwritten asm use -fPIC code instead of -fpic, our libc has grown
large enough for GOT to be larger than 8k.

While here kill redundant PIC ifdefs in setjmp.S - sparc "call"
instruction is piccy by itself.

Tested by martin@
 1.9 28-Dec-2006  martin branches: 1.9.4;
Use CCFSZ instead of 96 for standard save operations.
 1.8 07-Aug-2003  agc branches: 1.8.16;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.7 31-Mar-1999  kleink While in transition, conditionally rename _ASM_LABEL(cerror) and
_ASM_LABEL(curbrk) to _C_LABEL(__cerror) and _C_LABEL(__curbrk), respectively,
depending on the object format chosen, to avoid user namespace clashes.
 1.6 01-Jul-1998  tv Change immediate label references to _C_LABEL().
 1.5 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.4 16-Nov-1996  pk Remove DEFS.h, which has been just a placeholder for a long time.
 1.3 16-Nov-1996  pk Do the `_REENTRANT' song-and-dance.
 1.2 10-Feb-1994  pk Insert some Position Independent Code.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.8.16.1 04-Jan-2007  bouyer Pull up following revision(s) (requested by martin in ticket #312):
lib/libc/arch/sparc/gen/setjmp.S: revision 1.10
lib/libc/arch/sparc/sys/__clone.S: revision 1.4
lib/libc/arch/sparc/sys/cerror.S: revision 1.9
Use CCFSZ instead of 96 for standard save operations.
 1.9.4.1 06-Nov-2007  matt sync with HEAD
 1.10.36.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.30.1 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.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.4 07-Feb-2017  kamil Mark exect(3) obsolete and bind it to plain execve(2) on all platforms

The original exect(2) from BSD4.2 was enabling bit for tracing
(single-step mode) and calling execve(2). The purpose of it was to generate
a signal for a tracer once the application will change its image to a new
program.

This approach no longer works as:
- exect(2) traces (single-steps) libc and it requires hundreds or
thousands steps before entering a new image
- it's vax and x86 specific code
- this functionality has been moved to the kernel - once a process is
traced it will generate SIGTRAP with si_code TRAP_EXEC and route it to
its debugger
- the side effects and unportability make this interface unusable
- there are no known users of this interface
- it apparently never worked better since day0 of NetBSD ("day0 bug")

Users are requested to move to other execve(2) variants. Calling current
execve(2) as it is the most similar behavior to this one from BSD4.2.

Discussed several times on mailing lists and in PR/51700.

Add warning to exect(3) telling about marking this function obsolete.

This function is prepared to be removed in next libc major bump.

Sponsored by <The NetBSD Foundation>
 1.3 07-Aug-2003  agc branches: 1.3.80; 1.3.84;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.2 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.3.84.1 21-Apr-2017  bouyer Sync with HEAD
 1.3.80.1 20-Mar-2017  pgoyette Sync with HEAD
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 13-Feb-2003  nathanw Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).
 1.3 26-Jun-2000  kleink Need an internal name for fork().
 1.2 16-Jul-1997  christos branches: 1.2.12;
RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2.12.1 22-Aug-2000  kleink Pull up rev. 1.3 (approved by thorpej):
Add internal names for brk(), sbrk() and fork().
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 28-Apr-2008  martin branches: 1.2.8;
Remove clause 3 and 4 from TNF licenses
 1.1 19-Jan-2003  kleink branches: 1.1.30;
Move getcontext.S from gen to sys, where it belongs.
 1.1.30.1 18-May-2008  yamt sync with head.
 1.2.8.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2.8.1 28-Apr-2008  martin file getcontext.S was added on branch christos-time_t on 2008-04-28 20:22:58 +0000
 1.2 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.1 25-Aug-1999  thorpej Add __msgctl13(), __semctl13(), and __shmctl13() (symbols are __RENAME()'d
in their respective header files). Add PSEUDO stubs for the old versions
of these system calls.

Note that __semctl13() doesn't require the extra stub that the old
semctl()/__semctl() did, as the SUSv2 version takes variable arguments,
and thus does not require the extra indirection.
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 28-Sep-2000  kleink Need an internal name for pipe(2).
 1.2 16-Jul-1997  christos branches: 1.2.12;
RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2.12.1 29-Sep-2000  kleink Pull up rev. 1.3 (approved by thorpej):
Add internal name for pipe().
 1.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.9 12-Sep-2013  joerg Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.8 08-Oct-2007  uwe branches: 1.8.30; 1.8.36;
In handwritten asm use -fPIC code instead of -fpic, our libc has grown
large enough for GOT to be larger than 8k.

While here kill redundant PIC ifdefs in setjmp.S - sparc "call"
instruction is piccy by itself.

Tested by martin@
 1.7 08-Jan-2006  martin branches: 1.7.10;
Cosmetics (pointed out by uwe): use trivial restore, not the explicit
version.
 1.6 08-Jan-2006  martin Use __errno in the _REENTRANT case (pointed out by Valeriy E. Ushakov).
While there, indent some delay slot instructions.
 1.5 07-Aug-2003  agc branches: 1.5.6; 1.5.10;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 01-Jul-1998  tv Change immediate label references to _C_LABEL().
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 10-Feb-1994  pk Insert some Position Independent Code.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5.10.2 11-Jan-2006  tron Pull up following revision(s) (requested by martin in ticket #1109):
lib/libc/arch/sparc/sys/ptrace.S: revision 1.7
Cosmetics (pointed out by uwe): use trivial restore, not the explicit
version.
 1.5.10.1 11-Jan-2006  tron Pull up following revision(s) (requested by martin in ticket #1109):
lib/libc/arch/sparc/sys/ptrace.S: revision 1.6
Use __errno in the _REENTRANT case (pointed out by Valeriy E. Ushakov).
While there, indent some delay slot instructions.
 1.5.6.2 11-Jan-2006  tron Pull up following revision(s) (requested by martin in ticket #1109):
lib/libc/arch/sparc/sys/ptrace.S: revision 1.7
Cosmetics (pointed out by uwe): use trivial restore, not the explicit
version.
 1.5.6.1 11-Jan-2006  tron Pull up following revision(s) (requested by martin in ticket #1109):
lib/libc/arch/sparc/sys/ptrace.S: revision 1.6
Use __errno in the _REENTRANT case (pointed out by Valeriy E. Ushakov).
While there, indent some delay slot instructions.
 1.7.10.1 06-Nov-2007  matt sync with HEAD
 1.8.36.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.30.1 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.2 04-Dec-1993  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 11-Nov-1996  mycroft Treat reboot() like a normal system call. From PR 2458.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.11 12-Sep-2013  joerg Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.10 08-Oct-2007  uwe branches: 1.10.30; 1.10.36;
In handwritten asm use -fPIC code instead of -fpic, our libc has grown
large enough for GOT to be larger than 8k.

While here kill redundant PIC ifdefs in setjmp.S - sparc "call"
instruction is piccy by itself.

Tested by martin@
 1.9 07-Aug-2003  agc branches: 1.9.22;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.8 26-Jun-2000  kleink Thinko in previous: we do always use an internal name.
 1.7 23-Jun-2000  kleink Add internal names for brk() and sbrk().
 1.6 03-Jun-1999  kleink branches: 1.6.8;
Shameless hack to reference end if using a.out and _end if using ELF.
 1.5 31-Mar-1999  kleink While in transition, conditionally rename _ASM_LABEL(cerror) and
_ASM_LABEL(curbrk) to _C_LABEL(__cerror) and _C_LABEL(__curbrk), respectively,
depending on the object format chosen, to avoid user namespace clashes.
 1.4 01-Jul-1998  tv Change immediate label references to _C_LABEL().
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 10-Feb-1994  pk Insert some Position Independent Code.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.6.8.1 22-Aug-2000  kleink Pull up revs. 1.7-1.8 (approved by thorpej):
Add internal names for brk(), sbrk() and fork().
 1.9.22.1 06-Nov-2007  matt sync with HEAD
 1.10.36.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.30.1 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.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.6 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.5 01-Jul-1998  tv branches: 1.5.12;
Change immediate label references to _C_LABEL().
 1.4 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.3 10-Feb-1994  pk Insert some Position Independent Code.
 1.2 18-Dec-1993  jtc Fix bug #24 by renaming _logname_valid to __logname_valid.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5.12.1 25-Feb-2002  nathanw Move setlogin() stub to C code, and namespace-protect it.
 1.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.1 07-Jul-2000  itohy Add special treatment of shmat(2).
On m68k ELF calling standard (__SVR4_ABI__), if a function
returns a pointer, the return value should go to a0 as well as d0.
 1.2 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.1 25-Aug-1999  thorpej Add __msgctl13(), __semctl13(), and __shmctl13() (symbols are __RENAME()'d
in their respective header files). Add PSEUDO stubs for the old versions
of these system calls.

Note that __semctl13() doesn't require the extra stub that the old
semctl()/__semctl() did, as the SUSv2 version takes variable arguments,
and thus does not require the extra indirection.
 1.3 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.2 02-Dec-1998  thorpej Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
 1.1 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.6 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 02-Dec-1998  thorpej Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
 1.3 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.2 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.6 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 02-Dec-1998  thorpej Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
 1.3 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.2 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.7 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.6 26-Mar-2004  drochner the WARN_REFERENCES text "include <signal.h> for correct reference" is pointless
as <signal.h> won't help you, so remove it
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 02-Dec-1998  thorpej Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
 1.3 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.2 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.6 15-Oct-2005  uwe Switch sparc to the new compat code layout.
 1.5 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.4 02-Dec-1998  thorpej Warn about references to the compatibility() sigaction(), sigpending(),
sigprocmask(), sigreturn(), and sigsuspend(), and direct the user to
include <signal.h> to generate the correct reference.
 1.3 29-Sep-1998  christos Make the sparc work again; some work from jason, some from me.
 1.2 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.5 18-Apr-2020  thorpej Rename "syscall" to "_syscall" and provide "syscall" as a weak alias.
 1.4 07-Aug-2003  agc branches: 1.4.98;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 16-Jul-1997  christos RCSID fixes: Always use the NetBSD rcsid and the macro RCSID() defined in
<machine/asm.h>; Also syscalls should be protected using the SYSLIBC_SCCS
define not LIBC_SCCS
 1.2 18-Nov-1996  pk The code in here was just an expansion of RSYSCALL(syscall).
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it
 1.4.98.1 21-Apr-2020  martin Sync with HEAD
 1.2 01-Mar-1995  mycroft Clean up deleted files.
 1.1 07-Oct-1993  cgd make an arch directory in libc, and move all machine dirs into it

RSS XML Feed