summaryrefslogtreecommitdiffstats
path: root/lib/libc/arch/vax (follow)
Commit message (Collapse)AuthorAgeFilesLines
* We are done providing support for the vax.deraadt2016-03-0951-2599/+0
| | | | lots of agreement.
* Wrap the remaining math functions in libc: __fpclassify*(), __flt_rounds(),guenther2015-10-272-3/+7
| | | | | | and ldexp(). ok millert@
* Merge the sigaction() and sigprocmask() overloads/wrappers from libpthreadguenther2015-10-232-6/+8
| | | | | | | | | into libc, and move pthread_sigmask() as well (just a trivial wrapper). This provides consistent handling of SIGTHR between single- and multi-threaded programs and is a step in the merge of all the libpthread overloads, providing some ASM and Makefile bits that the other wrappers will need. ok deraadt@ millert@
* vax deserves gdtoa love too!guenther2015-09-141-1/+3
|
* Wrap <stdlib.h> so that calls go direct and the symbols not in theguenther2015-09-131-0/+1
| | | | | | C standard are all weak. Apply __{BEGIN,END}_HIDDEN_DECLS to gdtoa{,imp}.h, hiding the arch-specific __strtorx, __ULtox_D2A, __strtorQ, __ULtoQ_D2A symbols.
* Do provide hidden _libc_* aliases for sig{block,setmask} and use them inguenther2015-09-131-2/+2
| | | | | | | the ASM *setjmp implementations. Skip the PLT when calling them on amd64 (other archs to do this after testing) ok miod@
* Adds hidden _libc_FOO aliases for the system call stubs.guenther2015-09-1011-42/+66
| | | | | | | | | | Stop generating _brk and _sbrk symbols: they've already been hidden. Set the ELF symbol size on the syscall stubs. Give the __{min,cur}brk symbols a size and type, and hide more jump labels. alpha, arm, m88k, sh, sparc, and vax assistance miod@ hppa assistance kettenis@ ok deraadt@ miod@
* Add framework for resolving (pun intended) libc namespace issues, usingguenther2015-08-3111-12/+44
| | | | | | | | | | | | wrapper .h files and asm labels to let internal calls resolve directly and not be overridable or use the PLT. Then, apply that framework to most of the functions in stdio.h, string.h, err.h, and wchar.h. Delete the should-have-been-hidden-all-along _v?(err|warn)[cx]? symbols while here. tests clean on i386, amd64, sparc64, powerpc, and mips64 naming feedback from kettenis@ and millert@ ok kettenis@
* Hide many (194!) symbols that nothing should be using.guenther2015-08-263-47/+16
| | | | | | | Delete exect(2); it wasn't portable across archs and nothing used it. ports test build by naddy@ ok deraadt@ kettenis@
* Bring back `1:' label removed by mistake in 1.7. Complained loudly about by gasmiod2015-05-261-2/+2
| | | | 2.17, while 2.15 didn't care, which just caused a cold shiver accross my spine.
* Make index/rindex weak aliases of strchr/strrchr since they are notmillert2015-05-152-4/+4
| | | | | part of the ISO C standard and have also been dropped from POSIX. OK guenther@ kettenis@
* Put the right number of leading underscores in ___cerror and __cerror, formiod2015-05-121-2/+3
| | | | | the sake of libpthread. Probably missed during the a.out->ELF switch, I can't believe this went unnoticed for so long.
* Make pthread_atfork() track the DSO that called it like atexit() does,guenther2015-04-072-3/+5
| | | | | | | | | | unregistering callbacks if the DSO is unloaded. Move the callback handling from libpthread to libc, though libpthread still overrides the inner call to handle locking and thread-library reinitialization. Major version bump for both libc and libpthread. verification that this fixes various ports ajacoutot@ asm assistance miod@; ok millert@ deraadt@
* Simplify fork/vfork logic: the kernel has handled returning zero in the childguenther2015-03-312-15/+3
| | | | | | | for a long time, so there's no need to test the second return register here in the asm stub. ok and testing of many archs by krw@ miod@
* restructure libc/string + libc/arch/*/string coperation regardingderaadt2014-11-303-41/+14
| | | | | | | | | | | | | | | | (potentially) MD versions (function dependent, not filename dependent) split out memcpy/memmove/bcopy and strchr/index/strrchr/rindex Bring back amd64 .S versions And the final touch: switch all architectures temporarily to MI memcpy.c, which contains syslog + abort for overlapping copies. A nice harsh undefined behaviour. We will clean the entire userland of the remaining issues in this catagory, then switch to the optimised memcpy which skips the memmove check. I tried to cut this change into pieces, but testing each sub-step on every architecture is too time consuming and mindnumbing. ok miod
* XPG requires insque() and remque() to work with linear lists and not justguenther2014-08-152-80/+0
| | | | | | | | | circular lists. Amazingly, they managed to extend the requirements to no longer match the behavior of the VAX instructions they were modeled after, so the trivial VAX ASM versions have to go. Nice job breaking it, X/Open! Based on a diff from enh (at) google.com ok miod@
* Nuke the machinery to sync libkern with libc, it's not been used in themiod2014-06-091-4/+1
| | | | | | last 15 years and there is no point to use it in the future. From Jean-Philippe Ouellet
* Apply "unifdef -D__STDC__" to libc/arch/*/SYS.hmatthew2014-06-041-12/+1
| | | | | | | | A while back, pascal@ converted our system call stubs from using "cpp | as" to "cc -x assembler-with-cpp", so there's no need to stay compatible with ancient preprocessor semantics. ok miod
* VAX ELF userland bits. Consists mostly of register prefix additions.miod2013-07-0535-338/+354
|
* Switch libc and libm to use strong aliases rather than weak aliasesmartynas2013-03-289-79/+24
| | | | | | | | | | | where appropriate. Among other things makes the symbols consistent across all architectures (notably where ldbl mantissa is 53 bits). While at it, kill unused LINTLIBRARY/PROTOLIB1 cruft which was there to trick lint into recording the right prototypes for aliased functions. Most of the work done at the awesome n2k13 hackathon. Agreed by kettenis@, guenther@, matthew@.
* Remove excessive sys/cdefs.h inclusionderaadt2012-12-057-14/+11
| | | | ok guenther millert kettenis
* remove lint leftovers; ok guenther@okan2012-09-042-6/+2
|
* these are no longer used; ok guentherderaadt2012-09-041-37/+0
|
* __tfork() needs to set the stack address of the new thread in the kernel,guenther2012-06-211-9/+7
| | | | | | | | | 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-192-47/+3
| | | | | or compiler we use will. ok millert
* alloca.c cannot be usedderaadt2012-04-121-2/+1
|
* remove rfork(); ok guenther miodderaadt2012-04-121-37/+0
|
* Move __tfork_thread() from rthreads (libpthread) to libc so thatguenther2012-03-221-0/+69
| | | | | | it can be used for not-strictly-threading purposes ok matthew@ kurt@
* sigstack() is long dead, and the compat sigaltstack syscall is gone too.guenther2011-11-221-2/+2
| | | | | | Correct the namespace protections for sigreturn(), sigwait(), and psignal() ok millert@
* Revert (leaving the complex math part alone). Some stuff is dependingmartynas2011-07-084-2/+166
| | | | | on this historical behavior; so we're stuck in this stupid situation. No cookie for me.
* Move fabs(3), frexp(3), and modf(3) to libm--nothing has been usingmartynas2011-07-084-166/+2
| | | | them in libc for a very long time. OK guenther@.
* Trick lint into recording the right prototypes in the llib-lc.lnmartynas2011-07-027-29/+56
| | | | database on the vax, similarly like has been done in gen.
* - The 0x1p514 was wrong on VAX, but remove FP_SUBNORMAL, FP_INFINITE,martynas2011-06-082-20/+6
| | | | | | | | and FP_NAN cases altogether, since they are not supported, and fpclassify() will never return that. (Leftovers when this was cloned.) - Kill unused INFSTR, NANSTR, LDBL_ADJ. - Teach hdtoa() that rv_alloc can fail. - Move STRTOG_NoMemory above STRTOG_Infinite (fallthru).
* On the a.out architectures, WEAK_ALIAS does an implicit _C_LABEL()deraadt2011-04-091-2/+2
| | | | ok miod
* Move __cerror to ___cerror with a weak alias so that rthreads can override it.guenther2011-04-041-2/+4
| | | | | | On mips64, also correct the name called from plain cerror to __cerror. "looks correct" miod@
* more rcsid/sccs cleanupderaadt2009-10-286-32/+2
|
* teach gdtoa & its subroutines that malloc can fail; in which casemartynas2009-10-161-0/+4
| | | | | | ecvt, fcvt, gcvt, *printf, strtof, strtod, strtold act per ieee 1003.1. after these massive changes, remove unused files which would not work now. reported by Maksymilian Arciemowicz; ok theo
* remove from gen so that lint doesn't check gen if assembly versionsmartynas2009-04-211-3/+3
| | | | are available. spotted by theo
* __isinff and __isnanfmartynas2008-12-122-4/+4
|
* do the same as was done in mi version: do not include math.h, since isinf,martynas2008-12-122-4/+2
| | | | and isnan would expand to macros and compatibility aliases won't work
* no spaces allowed in the macro arguments. completely insanity!deraadt2008-12-102-4/+4
|
* use sys/cdefs.h; pointed out by theomartynas2008-12-107-14/+14
|
* ditto frexpl and ldexplmartynas2008-12-092-2/+10
|
* alias fabsl to fabs on these archsmartynas2008-12-091-1/+2
|
* - add long double signbitmartynas2008-12-098-9/+79
| | | | | | | | | | | | | - make long double versions weak aliases to double versions, on archs where long doubles are 64 bits - no need to have two finites. finite() and finitef() are non-standard 3BSD obsolete versions of isfinite. remove from libm. make them weak_alias in libc to __isfinite and __isfinitef instead. similarly make 3BSD obsolete versions of isinf, isinff, isnan, isnanf weak_aliases to C99's __isinf, __isinff, __isnan, __isnanf - bump major ok millert@
* - replace dtoa w/ David's gdtoa, version 2008-03-15martynas2008-09-075-0/+296
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - provide proper dtoa locks - use the real strtof implementation - add strtold, __hdtoa, __hldtoa - add %a/%A support - don't lose precision in printf, don't round to double anymore - implement extended-precision versions of libc functions: fpclassify, isnan, isinf, signbit, isnormal, isfinite, now that the ieee.h is fixed - separate vax versions of strtof, and __hdtoa - add complex math support. added functions: cacos, casin, catan, ccos, csin, ctan, cacosh, casinh, catanh, ccosh, csinh, ctanh, cexp, clog, cabs, cpow, csqrt, carg, cimag, conj, cproj, creal, cacosf, casinf, catanf, ccosf, csinf, ctanf, cacoshf, casinhf, catanhf, ccoshf, csinhf, ctanhf, cexpf, clogf, cabsf, cpowf, csqrtf, cargf, cimagf, conjf, cprojf, crealf - add fdim, fmax, fmin - add log2. (adapted implementation e_log.c. could be more acruate & faster, but it's good enough for now) - remove wrappers & cruft in libm, supposed to work-around mistakes in SVID, etc.; use ieee versions. fixes issues in python 2.6 for djm@ - make _digittoint static - proper definitions for i386, and amd64 in ieee.h - sh, powerpc don't really have extended-precision - add missing definitions for mips64 (quad), m{6,8}k (96-bit) float.h for LDBL_* - merge lead to frac for m{6,8}k, for gdtoa to work properly - add FRAC*BITS & EXT_TO_ARRAY32 definitions in ieee.h, for hdtoa&ldtoa to use - add EXT_IMPLICIT_NBIT definition, which indicates implicit normalization bit - add regression tests for libc: fpclassify and printf - arith.h & gd_qnan.h definitions - update ieee.h: hppa doesn't have quad-precision, hppa64 does - add missing prototypes to gdtoaimp - on 64-bit platforms make sure gdtoa doesn't use a long when it really wants an int - etc., what i may have forgotten... - bump libm major, due to removed&changed symbols - no libc bump, since this is riding on djm's libc major crank from a day ago discussed with / requested by / testing theo, sthen@, djm@, jsg@, merdely@, jsing@, tedu@, brad@, jakemsr@, and others. looks good to millert@ parts of the diff ok kettenis@ this commit does not include: - man page changes
* - move isinf, isnan dups to gen, since most is ieee 754martynas2008-07-247-7/+176
| | | | | | | | | | | | | | | | - is{inf,nan} should be macros for real-floating, so rename to __is{inf,nan}, per C99 - implement C99 __fpclassify(), __fpclassifyf(), __isfinite(), __isfinitef(), __isnormal(), __isnormalf(), __signbit(), __signbitf() - long functions added, but not yet enabled, till ieee.h is fixed - implement vax equivalents of the functions - reimplement isinff, isnanf in a better way, and move to libc - add qnan bytes for all archs - bump major man pages will follow ok millert@. arm bits looked over by drahn@ discussed w/ theo, who showed the right direction, to put these functions in libc
* Use _C_LABEL when appropriate.miod2008-05-2112-38/+40
|
* Use _PROF_PROLOGUE insteaf of rolling our own.miod2008-05-211-4/+6
|
* LSRCS should refer to the C source version of asm files 'put it in' deraadt@drahn2007-05-171-2/+2
|