Home | History | Annotate | only in /src/lib/libc/arch/arm/sys
History log of /src/lib/libc/arch/arm/sys
RevisionDateAuthorComments
 1.8 16-Oct-2005  christos move to the new compat layout.
 1.7 21-Aug-2004  rearnsha Use RET and RETc for returning.
 1.6 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.5 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.4 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.3 09-Jan-2001  bjh21 branches: 1.3.2;
Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.2 09-Jan-2001  bjh21 Add some explanatory comments.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.3.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.5 19-Aug-2013  matt Always compile as ARM even if -mthumb is given.
 1.4 17-Aug-2013  matt Enforce that this must be not compiled using Thumb1
 1.3 20-Nov-2012  matt Add $NetBSD$ tag. Use ip to save r1 instead of the stack.
 1.2 14-Feb-2012  matt branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8;
Add workaround for ARM cores that don't properly implement the MRC instruction
used for reading the thread pointer. This is the corresponding change which
was made to <arm/mcontext.h>
 1.1 18-Nov-2011  joerg Hook up TLS support on ARM. Tested by martin@, kernel support from matt@
 1.2.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.1 25-Feb-2013  tls resync with head
 1.2.6.1 20-Nov-2012  matt Don't push/pop r1 around SYSTRAP, save it in ip instead.
 1.2.4.4 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.4.3 16-Jan-2013  yamt sync with (a bit old) head
 1.2.4.2 17-Apr-2012  yamt sync with head
 1.2.4.1 14-Feb-2012  yamt file __aeabi_read_tp.S was added on branch yamt-pagecache on 2012-04-17 00:05:13 +0000
 1.2.2.1 24-Nov-2012  riz Pull up following revision(s) (requested by matt in ticket #701):
lib/libc/arch/arm/sys/__aeabi_read_tp.S: revision 1.3
Add $NetBSD$ tag. Use ip to save r1 instead of the stack.
 1.14 30-Jun-2021  skrll Do previous differtly by pushing two registers in the same way as the
_INVOKE_CERROR macro
 1.13 30-Jun-2021  skrll The _INVOKE_CERROR macro deals with thumb so simplify the code (at the
expense of a couple more instructions).
 1.12 30-Jun-2021  skrll Trailing whitespace
 1.11 30-Jun-2021  rin Fix previous. For Thumb-1:
- sp cannot be manipulated directly
- {add,sub}s should be used instead of {add,sub}
 1.10 29-Jun-2021  rin Align sp to 8-byte boundary as required by EABI.

IIUC, this change only affects libc compiled for ``Thumb-mode userland'',
which we've not officially supported yet.
 1.9 30-Nov-2013  joerg branches: 1.9.28;
Use PLT_SYM.
 1.8 03-Sep-2013  matt Use less got, add END(), make thumb tolerant.
 1.7 01-Aug-2013  matt CERROR is now hidden so no need to call it via the PLT
 1.6 24-Apr-2006  snj branches: 1.6.10; 1.6.44; 1.6.50;
It's "its."
 1.5 21-Aug-2004  rearnsha Use RETc for returning. When v4T or later use BX for calling the target.
 1.4 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.3 27-Aug-2002  mycroft Do the appropriate PIC magic for the jump to _exit().
 1.2 17-Aug-2002  thorpej Local label fixup.
 1.1 22-Jul-2001  chris branches: 1.1.2; 1.1.4;
Add __clone() for arm.
 1.1.4.1 27-Aug-2002  lukem Pull up revision 1.3 (requested by mycroft in ticket #737):
Do the appropriate PIC magic for the jump to _exit().
 1.1.2.4 17-Sep-2002  nathanw Catch up to -current.
 1.1.2.3 27-Aug-2002  nathanw Catch up to -current.
 1.1.2.2 08-Oct-2001  nathanw Catch up to -current.
 1.1.2.1 22-Jul-2001  nathanw file __clone.S was added on branch nathanw_sa on 2001-10-08 20:17:07 +0000
 1.6.50.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.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.6.10.1 28-Aug-2007  matt More thumb support
 1.9.28.1 08-Aug-2021  martin Pull up following revision(s) (requested by skrll in ticket #1329):

lib/libc/arch/arm/gen/swapcontext.S: revision 1.18
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divsi3.S: revision 1.3
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/aeabi_cfcmp.S: revision 1.3
lib/libc/arch/arm/sys/__clone.S: revision 1.10
lib/libc/arch/arm/sys/__clone.S: revision 1.11
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S: revision 1.2
lib/libc/arch/arm/sys/__clone.S: revision 1.12
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/modsi3.S: revision 1.3
lib/libc/arch/arm/sys/__clone.S: revision 1.13
lib/libc/arch/arm/sys/__clone.S: revision 1.14
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S: revision 1.2
sys/external/bsd/compiler_rt/dist/lib/builtins/arm/divmodsi4.S: revision 1.3
lib/libc/arch/arm/gen/swapcontext.S: revision 1.16
lib/libc/arch/arm/gen/swapcontext.S: revision 1.17

Align sp to 8-byte boundary as required by EABI.

This is especially important for non-leaf functions; GCC optimizes codes
based on assumption that sp is aligned properly.

Mostly fix broken earmv5 userland compiled by GCC10 due to alignment
faults in ld.elf_so, where {ld,st}rd are used for [sp, #8x].

No regression for ATF is observed for earmv[67]{,hf}{,eb}.

Align sp to 8-byte boundary as required by EABI.
IIUC, this change only affects libc compiled for ``Thumb-mode userland'',
which we've not officially supported yet.

Fix previous. For Thumb-1:
- sp cannot be manipulated directly
- {add,sub}s should be used instead of {add,sub}

Trailing whitespace

The _INVOKE_CERROR macro deals with thumb so simplify the code (at the
expense of a couple more instructions).

Do previous differently by pushing even number of registers and remove
strange r7 usage.

Do previous differtly by pushing two registers in the same way as the
_INVOKE_CERROR macro
 1.2 16-Oct-2005  christos move to the new compat layout.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 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 05-Oct-2003  matt Add SA_SIGINFO support for ARM.
 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:27:55 +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:56 +0000
 1.5 16-Oct-2005  christos move to the new compat 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 09-Jan-2001  bjh21 Replace boiler-plate code sequences with macro invocations from SYS.h.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.3 16-Oct-2005  christos move to the new compat layout.
 1.2 26-Mar-2004  drochner fix references to the syscall formerly known as SYS___sigreturn14
 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.2 01-Aug-2002  nathanw Catch up to -current.
 1.1.2.1 09-Jul-2002  nathanw file __sigtramp1.S was added on branch nathanw_sa on 2002-08-01 03:27:55 +0000
 1.5 27-Nov-2021  skrll Trailing whitespace
 1.4 23-Nov-2021  thorpej Decorate the ARM signal trampoline with the appropriate .cfi
directives to allow exception unwind / backtrace across a signal
handler.
 1.3 16-Aug-2013  matt Add END
 1.2 28-Apr-2008  martin branches: 1.2.4; 1.2.8; 1.2.28;
Remove clause 3 and 4 from TNF licenses
 1.1 05-Oct-2003  matt branches: 1.1.30;
Add SA_SIGINFO support for ARM.
 1.1.30.1 18-May-2008  yamt sync with head.
 1.2.28.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 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:56 +0000
 1.2.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.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 09-Jan-2001  bjh21 Replace boiler-plate code sequences with macro invocations from SYS.h.
 1.2 09-Jan-2001  bjh21 Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.10 03-Sep-2013  matt Use less got, add END(), make thumb tolerant.
 1.9 16-Aug-2013  matt Thumbify & optimize a little
 1.8 01-Aug-2013  matt CERROR is now hidden so no need to call it via the PLT
 1.7 21-Aug-2004  rearnsha branches: 1.7.16; 1.7.50; 1.7.56;
Use RET and RETc for returning.
 1.6 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.5 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.4 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.3 09-Jan-2001  bjh21 branches: 1.3.2;
Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.2 09-Jan-2001  bjh21 Add some explanatory comments.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.3.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.7.56.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.50.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.7.16.1 28-Aug-2007  matt More thumb support
 1.13 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.12 03-Sep-2013  matt Use less got, add END(), make thumb tolerant.
 1.11 01-Aug-2013  matt CERROR is now hidden so no need to call it via the PLT
 1.10 01-Aug-2013  matt Make __minbrk, __curbrk, and CERROR hidden and avoid using the GOT to access
them.
 1.9 13-May-2011  nonaka branches: 1.9.4; 1.9.10;
Use "_end" instead of "end" for consistency with other architectures.
 1.8 21-Aug-2004  rearnsha branches: 1.8.16;
Use RET and RETc for returning.
 1.7 26-Dec-2003  martin Use an unsigned comparison against minbrk.
From Steve Woodford, inspired by a similar change to other archs from
OpenBSD.
 1.6 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.5 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.4 17-Aug-2002  thorpej Local label fixup.
 1.3 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.2 09-Jan-2001  bjh21 branches: 1.2.2;
Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.2.2.2 27-Aug-2002  nathanw Catch up to -current.
 1.2.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.8.16.1 28-Aug-2007  matt More thumb support
 1.9.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.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.18 07-May-2025  uwe arm: asm.h - change GOT_INIT to take the normal asm label

Don't pass the label to use for the "current address" as the macro
parameter. It obscures its purpose and makes the use of local labels
extremely unobvious, so you are forced to invent a name that is mostly
useless otherwise:

GOT_INIT(r3, .Lgot.execsp_start, .Lpc.execsp_start)
GOT_INITSYM(.Lgot.execsp_start, .Lpc.execsp_start)
vs.
0: GOT_INIT(r3, .Lgot.execsp_start)
GOT_INITSYM(.Lgot.execsp_start, 0b)

Same object code is generated.
 1.17 07-May-2025  uwe arm: cerror.S - use GOT_SYM

Use GOT_SYM instead of open-coding it. It's defined in asm.h but
doesn't seem to be used anywhere, so perk it up.

While here, be consistent about declaring errno and use that as a
chance to provide a comment why #ifdef _REENTRANT is needed here.
 1.16 07-May-2025  uwe arm: cerror.S - factor out code to return -1

Do not repeat verbose ifdefed code that sets (long long){ r0, r1 } to
-1LL that indicates an error return from a syscall. Define it once as
a macro and use it. Fix the code to actually be compilable as thumb
("mov" vs "movs").

Modulo one fixed "mov" vs "movs" the same object code is generated for
all 8 permutations of (arm/thumb x non/reentrant x absolute/pic).
 1.15 06-May-2025  uwe arm/asm.h: revert PCREL_GET &c in previous (ok riastradh)

This change needs to be redone and re-verified. I have detailed some
issues in the PR, and it also turns out that some of the changes were
in the !_REENTRANT branch of #ifdef and thus not checked at all.
riastradh asked to back out the changes for now.

PR lib/59391: unnecessary __PIC__ conditionals clutter .S files
 1.14 03-May-2025  riastradh arm: Nix most __PIC__ conditionals in .S files.

New macros PCREL_GET(rN,label,pclabel) and PCREL_SYM(label,pclabel)
to enable this by the pattern:

ldr rN, label
#ifdef __PIC__
pclabel:
add rN, rN, pc
#endif
...
label:
#ifdef __PIC__
.word (label - (pclabel + 2*sizeof(instruction)))
#else
.word label
#endif

(sizeof(instruction) = 2 for thumb, 4 for non-thumb.)

No binary change in libc with MKPIE=no (i.e., testing both for
changes to the PIC build and changes to the non-PIC build).

In principle, assembly routines could improve instruction scheduling
by splitting up the ldr and add instructions. But in practice, the
maintenance and auditing burden likely makes this worthwhile by
improving legibility vs a tangle of in-line #ifdefs.

brk.S does things a little differently making it harder to unify.
Could redo it but I don't want to make changes without testing them
first.

PR lib/59391: unnecessary __PIC__ conditionals clutter .S files
 1.13 30-Nov-2013  joerg branches: 1.13.38;
Use PLT_SYM.
 1.12 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.11 04-Sep-2013  matt only emit cfi if __ARM_EABI__ && __UNWIND_TABLES__
 1.10 03-Sep-2013  matt Use less got, add END(), make thumb tolerant.
 1.9 01-Aug-2013  matt CERROR is now hidden so no need to call it via the PLT
 1.8 27-Feb-2012  joerg branches: 1.8.2;
Make __cerror protected to restore ABI leak in older libc versions,
where e.g. librt referenced the copy from libc. This still allows libc
to use PC-relative jumps.
 1.7 14-Jan-2011  matt branches: 1.7.6; 1.7.8;
Change __cerror to be marked hidden and change callers to avoid the PLT.
 1.6 21-Aug-2004  rearnsha branches: 1.6.16;
Use RET and RETc for returning.
 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 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.3 17-Aug-2002  thorpej Local label fixup.
 1.2 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2;
Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.1.2.2 27-Aug-2002  nathanw Catch up to -current.
 1.1.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.6.16.1 28-Aug-2007  matt More thumb support
 1.7.8.1 27-Feb-2012  riz Pull up following revision(s) (requested by joerg in ticket #57):
lib/libc/arch/arm/sys/cerror.S: revision 1.8
lib/libc/arch/vax/SYS.h: revision 1.12
lib/libc/arch/powerpc64/sys/cerror.S: revision 1.3
lib/libc/arch/powerpc64/sys/cerror.S: revision 1.4
lib/libc/arch/i386/sys/cerror.S: revision 1.16
lib/libc/arch/x86_64/sys/cerror.S: revision 1.5
lib/libc/arch/powerpc/sys/cerror.S: revision 1.10
lib/libc/arch/mips/sys/cerror.S: revision 1.17
lib/libc/arch/powerpc/sys/cerror.S: revision 1.9
Make __cerror protected to restore ABI leak in older libc versions,
where e.g. librt referenced the copy from libc. This still allows libc
to use PC-relative jumps.
PowerPC doesn't have CERROR since it never had a.out.
Use _C_LABEL(__cerror) instead.
 1.7.6.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.7.6.1 17-Apr-2012  yamt sync with head
 1.8.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.13.38.1 02-Aug-2025  perseant Sync with HEAD
 1.5 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.4 07-Aug-2003  agc branches: 1.4.80; 1.4.84;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.3 09-Jan-2001  bjh21 Replace boiler-plate code sequences with macro invocations from SYS.h.
 1.2 09-Jan-2001  bjh21 Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.4.84.1 21-Apr-2017  bouyer Sync with HEAD
 1.4.80.1 20-Mar-2017  pgoyette Sync with HEAD
 1.7 16-Aug-2013  matt thumbify and add END
 1.6 21-Aug-2004  rearnsha branches: 1.6.50; 1.6.56;
Use RET and RETc for returning.
 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 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.3 13-Feb-2003  nathanw Implement pthread_atfork() (in libc, because the required threadlib
stub behavior is exactly the same as the usual behavior).
 1.2 09-Jan-2001  bjh21 Add some explanatory comments.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.6.56.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.50.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.10 03-Sep-2013  matt Use less got, add END(), make thumb tolerant.
 1.9 01-Aug-2013  matt CERROR is now hidden so no need to call it via the PLT
 1.8 30-Apr-2013  skrll include assym.h
 1.7 30-Apr-2013  skrll Don't hardcode offset in assembler. This ensures the return value in the
context is the correct value (0) on earm*
 1.6 28-Apr-2008  martin branches: 1.6.4; 1.6.8; 1.6.28;
Remove clause 3 and 4 from TNF licenses
 1.5 30-Mar-2008  chris branches: 1.5.2;
Use SYSTRAP macro, rather than inlining the swi instruction.

This makes sure the SWI will be in the NetBSD assigned range of swi
numbers.
 1.4 21-Aug-2004  rearnsha branches: 1.4.16;
Use RET and RETc for returning.
 1.3 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.2 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.1 15-Nov-2001  thorpej branches: 1.1.2;
file getcontext.S was initially added on branch nathanw_sa.
 1.1.2.2 18-Nov-2001  thorpej Make this file work with ELF.
 1.1.2.1 15-Nov-2001  thorpej ARM-specific makecontext(), _resumecontext(), swapcontext(),
and getcontext(). From Klaus Kein <kleink@netbsd.org>.
 1.4.16.1 28-Aug-2007  matt More thumb support
 1.5.2.1 18-May-2008  yamt sync with head.
 1.6.28.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.28.1 23-Jun-2013  tls resync from 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 getcontext.S was added on branch christos-time_t on 2008-04-28 20:22:56 +0000
 1.6.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.2 16-Oct-2005  christos move to the new compat layout.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.8 16-Aug-2013  matt Use _INVOKE_CERROR
use stmia instead of two str
add END
 1.7 01-Aug-2013  matt CERROR is now hidden so no need to call it via the PLT
 1.6 21-Aug-2004  rearnsha branches: 1.6.16; 1.6.50; 1.6.56;
Use RET and RETc for returning.
 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 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.3 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.2 09-Jan-2001  bjh21 branches: 1.2.2;
Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.2.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.6.56.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.50.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.6.16.1 28-Aug-2007  matt More thumb support
 1.14 06-May-2025  uwe arm/asm.h: revert PCREL_GET &c in previous (ok riastradh)

This change needs to be redone and re-verified. I have detailed some
issues in the PR, and it also turns out that some of the changes were
in the !_REENTRANT branch of #ifdef and thus not checked at all.
riastradh asked to back out the changes for now.

PR lib/59391: unnecessary __PIC__ conditionals clutter .S files
 1.13 03-May-2025  riastradh arm: Nix most __PIC__ conditionals in .S files.

New macros PCREL_GET(rN,label,pclabel) and PCREL_SYM(label,pclabel)
to enable this by the pattern:

ldr rN, label
#ifdef __PIC__
pclabel:
add rN, rN, pc
#endif
...
label:
#ifdef __PIC__
.word (label - (pclabel + 2*sizeof(instruction)))
#else
.word label
#endif

(sizeof(instruction) = 2 for thumb, 4 for non-thumb.)

No binary change in libc with MKPIE=no (i.e., testing both for
changes to the PIC build and changes to the non-PIC build).

In principle, assembly routines could improve instruction scheduling
by splitting up the ldr and add instructions. But in practice, the
maintenance and auditing burden likely makes this worthwhile by
improving legibility vs a tangle of in-line #ifdefs.

brk.S does things a little differently making it harder to unify.
Could redo it but I don't want to make changes without testing them
first.

PR lib/59391: unnecessary __PIC__ conditionals clutter .S files
 1.12 30-Nov-2013  joerg branches: 1.12.38;
Use PLT_SYM.
 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 03-Sep-2013  matt Use less got, add END(), make thumb tolerant.
 1.9 01-Aug-2013  matt CERROR is now hidden so no need to call it via the PLT
 1.8 21-Aug-2004  rearnsha branches: 1.8.16; 1.8.50; 1.8.56;
Use RET and RETc for returning.
 1.7 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.6 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.5 17-Aug-2002  thorpej Local label fixup.
 1.4 13-Nov-2001  chris Update arm libc files for 8 byte aligned stack.
 1.3 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.2 09-Jan-2001  bjh21 branches: 1.2.2;
Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.2.2.3 27-Aug-2002  nathanw Catch up to -current.
 1.2.2.2 14-Nov-2001  nathanw Catch up to -current.
 1.2.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.8.56.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.8.50.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.8.16.1 28-Aug-2007  matt More thumb support
 1.12.38.1 02-Aug-2025  perseant Sync with HEAD
 1.14 06-May-2025  uwe arm/asm.h: revert PCREL_GET &c in previous (ok riastradh)

This change needs to be redone and re-verified. I have detailed some
issues in the PR, and it also turns out that some of the changes were
in the !_REENTRANT branch of #ifdef and thus not checked at all.
riastradh asked to back out the changes for now.

PR lib/59391: unnecessary __PIC__ conditionals clutter .S files
 1.13 03-May-2025  riastradh arm: Nix most __PIC__ conditionals in .S files.

New macros PCREL_GET(rN,label,pclabel) and PCREL_SYM(label,pclabel)
to enable this by the pattern:

ldr rN, label
#ifdef __PIC__
pclabel:
add rN, rN, pc
#endif
...
label:
#ifdef __PIC__
.word (label - (pclabel + 2*sizeof(instruction)))
#else
.word label
#endif

(sizeof(instruction) = 2 for thumb, 4 for non-thumb.)

No binary change in libc with MKPIE=no (i.e., testing both for
changes to the PIC build and changes to the non-PIC build).

In principle, assembly routines could improve instruction scheduling
by splitting up the ldr and add instructions. But in practice, the
maintenance and auditing burden likely makes this worthwhile by
improving legibility vs a tangle of in-line #ifdefs.

brk.S does things a little differently making it harder to unify.
Could redo it but I don't want to make changes without testing them
first.

PR lib/59391: unnecessary __PIC__ conditionals clutter .S files
 1.12 12-Sep-2013  joerg branches: 1.12.38;
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.11 03-Sep-2013  matt Use less got, add END(), make thumb tolerant.
 1.10 01-Aug-2013  matt Make __minbrk, __curbrk, and CERROR hidden and avoid using the GOT to access
them.
 1.9 13-May-2011  nonaka branches: 1.9.4; 1.9.10;
Use "_end" instead of "end" for consistency with other architectures.
 1.8 21-Aug-2004  rearnsha branches: 1.8.16;
Use RET and RETc for returning.
 1.7 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.6 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.5 17-Aug-2002  thorpej Local label fixup.
 1.4 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.3 05-May-2001  kleink Shameless hack to reference end when using a.out and _end when using ELF.
 1.2 09-Jan-2001  bjh21 branches: 1.2.2;
Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.2.2.2 27-Aug-2002  nathanw Catch up to -current.
 1.2.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.8.16.1 28-Aug-2007  matt More thumb support
 1.9.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.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.12.38.1 02-Aug-2025  perseant Sync with HEAD
 1.4 18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.3 17-Aug-2002  thorpej Local label fixup.
 1.2 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.1 29-Dec-2000  bjh21 branches: 1.1.2;
Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.1.2.2 25-Feb-2002  nathanw Move setlogin() stub to C code, and namespace-protect it.
 1.1.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.2 16-Oct-2005  christos move to the new compat layout.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.2 16-Oct-2005  christos move to the new compat layout.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.7 16-Oct-2005  christos move to the new compat layout.
 1.6 21-Aug-2004  rearnsha Use RET and RETc for returning.
 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 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.3 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.2 09-Jan-2001  bjh21 branches: 1.2.2;
Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.2.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.7 16-Oct-2005  christos move to the new compat layout.
 1.6 21-Aug-2004  rearnsha Use RET and RETc for returning.
 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 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.3 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.2 09-Jan-2001  bjh21 branches: 1.2.2;
Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.2.2.1 08-Oct-2001  nathanw Catch up to -current.
 1.4 16-Oct-2005  christos move to the new compat layout.
 1.3 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.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-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.8 16-Oct-2005  christos move to the new compat layout.
 1.7 21-Aug-2004  rearnsha Use RET and RETc for returning.
 1.6 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.5 05-Apr-2003  bjh21 Use the correct instruction for returning ffrom a function (MOV rather
than MOVS).
 1.4 05-Apr-2003  bjh21 NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
 1.3 16-Jul-2001  matt Changes needed for ARM ELF shared library support.
 1.2 09-Jan-2001  bjh21 branches: 1.2.2;
Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.2.2.1 08-Oct-2001  nathanw Catch up to -current.
 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 09-Jan-2001  bjh21 Replace boiler-plate code sequences with macro invocations from SYS.h.
 1.2 09-Jan-2001  bjh21 Use SYSTRAP() everywhere rather than coding SWI instructions directly.
 1.1 29-Dec-2000  bjh21 Create shared ARM source for libc, and move arm26 port over to using it.
The code is (almost) a direct copy of the current arm26 sources.
It's identical to the current arm32 sources, with the following exceptions:
- _C_LABEL is used on references to C labels from assembler.
- Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__.
- It uses SoftFloat 2a rather than SoftFloat 1a.

The first two of these should be inconsequential. I believe that SoftFloat 2a
should work on arm32 and be backward-compatible with existing code, but this
is not obviously true. For now, arm32 remains using its own bits of libc.
 1.4.98.1 21-Apr-2020  martin Sync with HEAD

RSS XML Feed