summaryrefslogtreecommitdiffstats
path: root/lib/libc/arch (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Userland bits for m68k/ELF. Mostly addition of register prefixes to themiod2013-02-0278-610/+637
| | | | | assembler instructions, and cope with the few changes in return values location.
* Oops, due to the way return from system calls work, we can not use a delaymiod2013-01-242-6/+16
| | | | | | slot in the branch to cerror, for the delay slot instruction would also run as part of a successful return. Doh. Fortunately almost nothing in the tree uses brk() or sbrk() anymore... but binaries linked against libiberty.
* The kernel sources mention that the system call entry point is trap #450; themiod2013-01-239-19/+19
| | | | | fact that #128 and #129 may also be used for this purpose was never documented, so there is no reason to have libc use #128. Switch to #450 for consistency.
* Fix PIC_LOAD and PIC_STORE macros to really access the variable, instead ofmiod2013-01-201-5/+7
| | | | the GOT pointer. Oops.
* PIC-related code should follow the #ifdef __PIC__ line, not the #else line.miod2013-01-203-14/+14
| | | | Doh!
* Remove machine-dependent glue for strtorQ, since hppa64 quad-precisionmartynas2013-01-132-47/+2
| | | | support has been removed from our compiler a year ago.
* Add END() directives to the various functions.miod2013-01-1120-31/+142
| | | | | | Make the code PIC-aware when necessary (i.e. invoke other functions through the PLT, and access global data through the GOT). No change for non-PIC compilation.
* Add a bunch of macros to help writing PIC code for libc .S routines. Handlesmiod2013-01-111-10/+42
| | | | both -fpic and -fPIC.
* fix __cerror non-weak symbol namemiod2013-01-081-2/+2
|
* Switch m88k ports to ELF.miod2013-01-0528-319/+319
|
* Actually invoke the system call in libc's sigreturn() wrapper; went unnoticedmiod2012-12-261-4/+3
| | | | for 15 years or so (sigcode, of course, was correct).
* Make sure the stack is 16-byte aligned otherwise the use of certain SSEkettenis2012-12-221-1/+4
| | | | | | instructions will fail. ok guenther@
* Remove excessive sys/cdefs.h inclusionderaadt2012-12-0525-46/+29
| | | | ok guenther millert kettenis
* Add two missing quad-precision emulation functions: _Qp_cmp and _Qp_cmpe. Atkettenis2012-12-031-9/+12
| | | | least the former is emitted by modern versions of GCC.
* Adapt ieee.h, gdtoa and libc to the fact that we don't have 80-bitmartynas2012-09-159-239/+3
| | | | floats on m88k. Agreed by miod@.
* Add support for -fPICderaadt2012-09-045-8/+61
| | | | ok kettenis
* remove lint leftovers; ok guenther@okan2012-09-0416-41/+16
|
* these are no longer used; ok guentherderaadt2012-09-048-366/+0
|
* Make this __STDC__ aware.miod2012-09-011-1/+8
|
* Fix missing PIC -> __PIC__ conversions; ok pascalderaadt2012-08-224-10/+10
|
* Convert cpp | as rules in bsd.lib.mk and lib/libc/sys/Makefile.inc to pure ccpascal2012-08-2263-149/+149
| | | | | | | invocations. This allows us to use the compiler builtin define __PIC__ to check for PIC/PIEness rather than passing -DPIC. Simplifies PIE work a lot. ok matthew@, conceptually ok kurt@
* Fix almost ten-years old bug in siglongjmp(), which would not restore a signalmiod2012-08-123-87/+57
| | | | | | | | | | | | | mask of zero (because of flawed logic assuming finding zero in the sigjmp_buf signal mask means sigsetjmp was invoked with a zero `savemask' argument). While there, clean comments of all *{set,long}jmp routines, and shave a few instructions by using bcnd insead of cmp + bb to test for zero values. Passes the regress tests, and now devel/libsigsegv configure siglongjmp test will not spin (this test is however flawed as it expects a signal handler declared as running on the sigaltstack and `returning' through siglongjmp to be invoked on the signal stack the next time the signal is raised).
* adapt the NetBSD code to make sigpending work on shjsg2012-07-031-2/+6
| | | | ok miod@ kettenis@
* The kernel returns the pending set; this stub has to save it throughguenther2012-07-011-4/+8
| | | | | | the pointer ok miod@ kettenis@
* make this actually workkettenis2012-07-011-23/+21
| | | | ok miod@
* Do not use <machine/float.h>, that is an deformed BSD-ism.deraadt2012-06-259-18/+18
| | | | | It turns out <float.h> is the right file to pull in. ok millert
* __tfork() needs to set the stack address of the new thread in the kernel,guenther2012-06-2114-125/+72
| | | | | | | | | so that it can't get a signal while still running on the parent thread's stack. Also, pass in sizeof(struct __tfork) to provide forward compat when more members are added. This is an ABI change, so switch syscall numbers and bump lib majors this time. ok deraadt@ matthew@
* rely on the compiler giving us a built-in alloca. any new architecturederaadt2012-04-1911-219/+14
| | | | | or compiler we use will. ok millert
* alloca.c cannot be usedderaadt2012-04-1213-34/+12
|
* remove rfork(); ok guenther miodderaadt2012-04-1215-556/+0
|
* Mark outermost frame such that backtraces in thread terminate atkettenis2012-04-111-2/+3
| | | | | | __tfork_thread(). ok guenther@
* Provide __tfork_thread() for hppa64. This makes libc compile again.jsing2012-04-111-0/+57
| | | | ok miod@
* Move __tfork_thread() from rthreads (libpthread) to libc so thatguenther2012-03-2213-0/+921
| | | | | | it can be used for not-strictly-threading purposes ok matthew@ kurt@
* Remove assembly version of strlen from i386 and amd64, where it'smikeb2012-01-174-44/+6
| | | | | | | up to 3 times slower than the C code most of the time. This was brought up by DragonflyBSD guys initially. ok deraadt, guenther. miod will not miss it.
* Reimplement mutexes, condvars, and rwlocks to eliminate bugs,guenther2012-01-172-5/+5
| | | | | | | | | | | | | particularly the "consume the signal you just sent" hang, and putting the wait queues in userspace. Do cancellation handling in pthread_cond_*wait(), pthread_join(), and sem_wait(). Add __ prefix to thr{sleep,wakeup,exit,sigdivert}() syscalls; add 'abort" argument to thrsleep to close cancellation race; make thr{sleep,wakeup} return errno values via *retval to avoid touching userspace errno.
* sigstack() is long dead, and the compat sigaltstack syscall is gone too.guenther2011-11-225-10/+10
| | | | | | Correct the namespace protections for sigreturn(), sigwait(), and psignal() ok millert@
* Change to syscall is done, so delete an XXX commentguenther2011-10-111-5/+1
|
* Make this actually work.kettenis2011-09-191-4/+4
| | | | ok jsing@
* Use a long-displacement branch instruction to call __cerror, since thekettenis2011-09-191-2/+3
| | | | linker doesn't generate stubs yet.
* Clear the upper 32-bits of the system call address we load using ldil, sincekettenis2011-09-191-2/+4
| | | | | that instruction does sign extension. Look at %r1 to determine whether a system call was sucessful, since that is where the kernel puts the information.
* arithemtic -> arithmeticmiod2011-09-171-2/+2
|
* Switch sigreturn() to the normal syscall entry instead of int$80.guenther2011-09-052-26/+3
| | | | | | This was done for the sigreturn call in sigcode before 5.0. ok deraadt@ for post-5.0
* Bring libc and libm in line with the compiler now that we no longer have akettenis2011-08-198-191/+6
| | | | 128-bit long double. Diff committed on behalf of martynas@
* 64-bitification went a bit too far here; sigset_t is 32-bit so using 64-bitkettenis2011-08-163-11/+11
| | | | | | loads and stores may trigger an alignment trap. Also fix issues where the code was assuming arguments were passed both in registers on the stack. This isn't ithe case for hppa64.
* Revert (leaving the complex math part alone). Some stuff is dependingmartynas2011-07-0836-32/+1307
| | | | | on this historical behavior; so we're stuck in this stupid situation. No cookie for me.
* Kill weak `cerror' alias, it's colliding with the userland namespace. Noticedmiod2011-07-081-2/+1
| | | | by guenther@ months ago, had to wait for a libc major bump.
* Move fabs(3), frexp(3), and modf(3) to libm--nothing has been usingmartynas2011-07-0836-1307/+32
| | | | them in libc for a very long time. OK guenther@.
* Move arm to the 'MI' softfloat code instead of the arm version.drahn2011-07-0529-7171/+2
| | | | YES!! miod@
* Add stubs for signals and forks.pirofti2011-07-0521-120/+26
| | | | While at it clean-up a bit by removing unused files and adding cvs tags.
* Add ia64 libc support.pirofti2011-07-0429-0/+645
|