| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
| |
The purpose of having a separate file involved an abandoned scheme that
would have kept contrib/gdtoa out of the include path for the rest of libc.
|
|
|
|
|
|
| |
This causes nasty things like SEGV or a cpu spin when we return.
Submitted by: "James R. Van Artsalen" <james@jrv.org>
|
|
|
|
| |
any fake value.
|
| |
|
|
|
|
| |
2. Make end of frames
|
| |
|
| |
|
|
|
|
| |
for subnormals with one implementation that works.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
isnormal() the hard way, rather than relying on fpclassify(). This is
a lose in the sense that we need a total of 12 functions, but it is
necessary for binary compatibility because we have never bumped libm's
major version number. In particular, isinf(), isnan(), and isnanf()
were BSD libc functions before they were C99 macros, so we can't
reimplement them in terms of fpclassify() without adding a dependency
on libc.so.5. I have tried to arrange things so that programs that
could be compiled in FreeBSD 4.X will generate the same external
references when compiled in 5.X. At the same time, the new macros
should remain C99-compliant.
The isinf() and isnan() functions remain in libc for historical
reasons; however, I have moved the functions that implement the macros
isfinite() and isnormal() to libm where they belong. Moreover,
half a dozen MD versions of isinf() and isnan() have been replaced
with MI versions that work equally well.
Prodded by: kris
|
|
|
|
|
|
|
| |
get_mcontext, and libpthread will use signalcontext to deliver signal in
userland, it looks same as kernel's send_sig does.
Reviewed by: deischen, tjr
|
|
|
|
|
|
|
|
|
|
|
| |
solved by a simple 'make world'. The signalcontext function was going
to the trouble of generating an even 16 byte alignment, but in fact it
needed to be odd aligned to simulate the 8-byte return address having
been pushed by the caller. This fixes yet another group of crashes in
applications using libpthread. And yet again, it was my fault all along.
While here, rename the duplicate internal ctx_wrapper() functions to
makectx_wrapper() and sigctx_wrapper() so that traces aren't ambiguous.
|
|
|
|
| |
will assume that syscalls will succeed rather than fail.
|
| |
|
| |
|
|
|
|
| |
this from looking at code generated by gcc.
|
|
|
|
| |
high and low words of the mantissa in bits, respectively.
|
|
|
|
|
|
|
|
|
|
| |
at it, use the ANSI C generic pointer type for the second argument,
thus matching the documentation.
Remove the now extraneous (and now conflicting) function declarations
in various libc sources. Remove now unnecessary casts.
Reviewed by: bde
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ABI-required stack alignment. C code expects that the push of the
return address disturbed the 16 byte alignment and it will take corrective
measures to fix it before making another call. Of course, if its wrong
to start with, then all hell breaks loose. Essentially we "fix" this
by making the stack alignment odd to start with.
This was one of the things that broke on libkse with apps that use
floating point/varargs/etc.
Approved by: re (scottl)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
(fstp stores a mem32 value, fstpl stores a mem64 value)
This fixes ghostscript for 'make release' on amd64. Ghostscript for some
reason thinks it is a good idea to use -fno-builtin, which means it is
vulnerable to bugs in libc that are normally hidden by the builtin gcc
functions. Oops.
|
| |
|
|
|
|
|
|
| |
value for getcontext() in a preserved register rather than on the stack.
The second time around, the stack value would likely have changed so we
can't depend on it for the return value.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- All those diffs to syscalls.master for each architecture *are*
necessary. This needed clarification; the stub code generation for
mlockall() was disabled, which would prevent applications from
linking to this API (suggested by mux)
- Giant has been quoshed. It is no longer held by the code, as
the required locking has been pushed down within vm_map.c.
- Callers must specify VM_MAP_WIRE_HOLESOK or VM_MAP_WIRE_NOHOLES
to express their intention explicitly.
- Inspected at the vmstat, top and vm pager sysctl stats level.
Paging-in activity is occurring correctly, using a test harness.
- The RES size for a process may appear to be greater than its SIZE.
This is believed to be due to mappings of the same shared library
page being wired twice. Further exploration is needed.
- Believed to back out of allocations and locks correctly
(tested with WITNESS, MUTEX_PROFILING, INVARIANTS and DIAGNOSTIC).
PR: kern/43426, standards/54223
Reviewed by: jake, alc
Approved by: jake (mentor)
MFC after: 2 weeks
|
| |
|
|
|
|
| |
for the use of non-GCC compilers and C++ code.
|
|
|
|
| |
and just cause lots of warnings.
|
|
|
|
|
| |
for libkse (makecontext() is also needed for libthr).
These probably will need some tweaking.
|
|
|
|
|
|
| |
It is only possible to do this on an ABI that has a compulsory frame
pointer, which the amd64 ABI does not. Thus, it is only possible to
implement this as a compiler builtin.
|
|
|
|
|
| |
(untested, but existing state breaks
http://triangle.rtp.freebsd.org/~des/tinderbox-CURRENT-amd64-amd64.brief)
|
| |
|
|
|
|
| |
to a random memory location. Perl works a lot better with this.
|
|
|
|
| |
implications of native PC relative addressing.
|
| |
|
|
|
|
|
|
| |
file to be correct, and how to generate them automatically.
Caused much pain and suffering for: peter
|
| |
|
|
|
|
|
| |
to sigprocmask(2) int the correct order. *blush*.
For sigsetjmp(), match up the pushq/popq in the non-savemask case.
|
|
|
|
|
| |
the value out of ST(0) before copying it to %xmm0. Also remove bogus stack
frame and work in the red zone.
|
| |
|
|
|
|
| |
Obtained from: re (blanket amd64)
|
|
|
|
|
|
|
| |
doesn't use stack frames. It uses offsets relative to %rsp, not %rbp. So
we cannot just change %rsp like this.
Approved by: re (blanket amd64)
|
|
|
|
| |
configure gdtoa as such.
|
|
|
|
| |
Alignment hack from: NetBSD
|
| |
|
|
|
|
|
|
|
| |
- strip out the nasty PIC_PROLOGUE/EPILOGUE stuff, since we dont have
to lose a register in PIC mode anymore (we use %rip-relative addressing).
- update for C register argument passing conventions.
- convert 32 bit to 64 bit register sizes etc.
|
|
|
|
| |
update it to be iretq for completeness.
|
|
|
|
| |
across a "syscall"-style syscall
|
|
|
|
|
| |
Depend on %rsi being preserved across the "syscall"-style syscall and strip
out the PIC stuff (this cpu has full PC-relative addressing, at last!)
|