| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
- s/aguments/arguments/
MFC after: 3 days
|
| |
|
|
|
|
|
| |
This is a residual of the $FreeBSD$ removal.
MFC After: 3 days (though I'll just run the command on the branches)
Sponsored by: Netflix
|
| |
|
|
|
|
|
|
| |
rfork_thread(3) is assembly that makes syscalls directly and uses
cerror so it belongs in libsys.
Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908
|
| |
|
|
|
|
|
|
|
|
| |
Add a _SYSCALL(name) which calls the SYS_name syscall. Use it to add a
_SYSCALL_BODY() macro which invokes the syscall and calls cerror as
required. Use the latter to implement PSEUDO() and RSYSCALL().
Reviewed by: imp, markj
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D43059
|
| |
|
|
|
|
|
|
| |
Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.
Sponsored by: Netflix
|
| |
|
|
|
|
|
|
|
| |
These sys/cdefs.h are not needed. Purge them. They are mostly left-over
from the $FreeBSD$ removal. A few in libc are still required for macros
that cdefs.h defines. Keep those.
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D42385
|
| |
|
|
| |
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
| |
|
|
| |
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
| |
|
|
|
|
|
|
|
| |
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix
|
| |
|
|
|
|
|
|
|
| |
Their uses have been replaced by _tcb_get() and _tcb_set() from
<machine/tls.h>.
Reviewed by: kib, jrtc27
Sponsored by: The University of Cambridge, Google Inc.
Differential Revision: https://reviews.freebsd.org/D33354
|
| |
|
|
|
|
|
|
| |
which returns pointer to tcb
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D29623
|
| |
|
|
|
|
|
|
|
|
|
| |
In particular, use ifuncs for __getcontextx_size(), also calculate the
size of the extended save area in resolver. Same for __fillcontextx2().
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Notes:
svn path=/head/; revision=344120
|
| |
|
|
|
|
|
|
| |
SYS_exit has been defined in the repo since 1994 except for a brief
window when SYS_sys_exit was defined in 2000.
Notes:
svn path=/head/; revision=334500
|
| |
|
|
|
|
|
|
|
|
|
|
| |
NCARGS isn't a limit on the number of arguments to pass to a function,
but the number of bytes that can be consumed by arguments to exec. As
such, it is not suitable for a limit on the count of arguments passed
to makecontext().
Sponsored by: DARPA / AFRL
Notes:
svn path=/head/; revision=328631
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mainly focus on files that use BSD 2-Clause license, however the tool I
was using mis-identified many licenses so this was mostly a manual - error
prone - task.
The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.
Notes:
svn path=/head/; revision=326193
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Renumber cluase 4 to 3, per what everybody else did when BSD granted
them permission to remove clause 3. My insistance on keeping the same
numbering for legal reasons is too pedantic, so give up on that point.
Submitted by: Jan Schaumann <jschauma@stevens.edu>
Pull Request: https://github.com/freebsd/freebsd/pull/96
Notes:
svn path=/head/; revision=314436
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
are aliases for the syscall stubs and are plt-interposed, to the
libc-private aliases of internally interposed sigprocmask() etc.
Since e.g. _sigaction is not interposed by libthr, calling signal()
removes thr_sighandler() from the handler slot etc. The result was
breaking signal semantic and rtld locking.
The added __libc_sigprocmask and other symbols are hidden, they are
not exported and cannot be called through PLT. The setjmp/longjmp
functions for x86 were changed to use direct calls, and since
PIC_PROLOGUE only needed for functional PLT indirection on i386, it is
removed as well.
The PowerPC bug of calling the syscall directly in the setjmp/longjmp
implementation is kept as is.
Reported by: Pete French <petefrench@ingresso.co.uk>
Tested by: Michiel Boland <boland37@xs4all.nl>
Reviewed by: jilles (previous version)
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Notes:
svn path=/head/; revision=287292
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Per POSIX, siglongjmp() shall be equivalent to longjmp() except that it must
match sigsetjmp() instead of setjmp() and except for the effect on the
signal mask. Therefore, it should preserve the floating point exception
flags.
This was fixed for longjmp() and _longjmp() in r180080 and r180081 for amd64
and i386 respectively.
Notes:
svn path=/head/; revision=267307
|
| |
|
|
|
|
|
|
|
| |
get rid of the __CONCAT and CNAME macros.
Reviewed by: bde, kib
Notes:
svn path=/head/; revision=258451
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
check_deferred_signal() returns twice, since handle_signal() emulates
the return from the normal signal handler by sigreturn(2)ing the
passed context. Second return is performed on the destroyed stack
frame, because __fillcontextx() has already returned. This causes
undefined and bad behaviour, usually the victim thread gets SIGSEGV.
Avoid nested frame and the need to return from it by doing direct call
to getcontext() in the check_deferred_signal() and using a new private
libc helper __fillcontextx2() to complement the context with the
extended CPU state if the deferred signal is still present.
The __fillcontextx() is now unused, but is kept to allow older
libthr.so to be used with the new libc.
Mark __fillcontextx() as returning twice [1].
Reported by: pgj
Pointy hat to: kib
Discussed with: dim
Tested by: pgj, dim
Suggested by: jilles [1]
MFC after: 1 week
Notes:
svn path=/head/; revision=251047
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For some reason, libc exports the symbol .cerror (HIDENAME(cerror)), albeit
in the FBSDprivate_1.0 version. It looks like there is no reason for this
since it is not used from other libraries. Given that it cannot be accessed
from C and its strange calling convention, it is rather unlikely that other
things rely on it. Perhaps it is from a time when symbols could not be
hidden.
Not exporting .cerror causes it to be jumped to directly instead of via the
PLT.
This change also takes advantage of .cerror's new status by not saving and
loading %ebx before jumping to it. (Therefore, .cerror now saves and loads
%ebx itself.) Where there was a conditional jump to a jump to .cerror, the
conditional jump has been changed to jump to .cerror directly (many modern
CPUs don't do static prediction and in any case it is not much of a benefit
anyway).
This change makes libc.so.7 a few kilobytes smaller.
Reviewed by: kib
Notes:
svn path=/head/; revision=240152
|
| |
|
|
|
|
|
| |
PR: 169730
Notes:
svn path=/head/; revision=238328
|
| |
|
|
|
|
|
|
|
|
| |
of __getcontextx_size(3) from size_t to int.
PR: ports/164654
MFC after: 1 month
Notes:
svn path=/head/; revision=230864
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
fit into existing mcontext_t.
On i386 and amd64 do return the extended FPU states using
getcontextx(3). For other architectures, getcontextx(3) returns the
same information as getcontext(2).
Tested by: pho
MFC after: 1 month
Notes:
svn path=/head/; revision=230429
|
| |
|
|
|
|
|
|
|
|
|
| |
the word alignment, some versions of gcc do require 16-byte alignment.
Make sure the stack is 16-byte aligned before calling a subroutine.
Inspired by: PR amd64/162214
MFC after: 1 week
Notes:
svn path=/head/; revision=227024
|
| |
|
|
|
|
|
|
|
|
| |
working MI one. The MI one only needs to be overridden on machines
with non-IEEE754 arithmetic. (The last supported one was the VAX.)
It can also be overridden if someone comes up with a faster one that
actually passes the regression tests -- but this is harder than it sounds.
Notes:
svn path=/head/; revision=226606
|
| |
|
|
| |
Notes:
svn path=/head/; revision=217106
|
| |
|
|
|
|
|
|
|
|
|
| |
as they are slower than the generic version in C, at least on modern
hardware. This leaves us with just five implementations.
Suggested by: bde
Approved by: rpaulo (mentor)
Notes:
svn path=/head/; revision=213308
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Reorder inline assembly arguments temp2, temp, value and texp to follow
the st(0), st(1), etc. style.
Also mark the temp2 variable as volatile to workaround another clang
bug.
This allows clang to buildworld FreeBSD/i386.
Submitted by: dim
Notes:
svn path=/head/; revision=212976
|
| |
|
|
|
|
|
| |
is mostly harmless, but it does upset some of valgrind's functionality.
Notes:
svn path=/head/; revision=184548
|
| |
|
|
|
|
|
| |
whether the CPU supports SSE or not here is rather odious.
Notes:
svn path=/head/; revision=180081
|
| |
|
|
|
|
|
|
|
| |
clause.
# If I've done so improperly on a file, please let me know.
Notes:
svn path=/head/; revision=165903
|
| |
|
|
| |
Notes:
svn path=/head/; revision=165842
|
| |
|
|
|
|
|
|
|
| |
we can find another way to issue an #error, but using a preprocessed
assembler for that purpose and clobbering libc.a with an empty .o
just for the sake of #error reporting is way too much of a burden.
Notes:
svn path=/head/; revision=162039
|
| |
|
|
|
|
|
|
|
|
|
| |
calls. This eliminates TEXTREL from libc, making its text segment relocatable.
PR: i386/85242
Approved by: kan (mentor)
MFC after: 1 month
Notes:
svn path=/head/; revision=159270
|
| |
|
|
|
|
|
| |
the function definition.
Notes:
svn path=/head/; revision=150065
|
| |
|
|
|
|
|
|
|
|
|
| |
Like on libthr, there is an i386_set_gsbase() stub implementation here
to avoid libc.so.5 issues. This should likely be a weak symbol and I
expect this will be fixed soon.
Approved by: re
Notes:
svn path=/head/; revision=147673
|
| |
|
|
|
|
|
|
| |
compiling as an amd64 support binary. They will return EINVAL on an amd64
kernel, but this simplifies other #ifdefs that were getting a bit nasty.
Notes:
svn path=/head/; revision=145573
|
| |
|
|
|
|
|
| |
building for amd64.
Notes:
svn path=/head/; revision=145571
|
| |
|
|
|
|
|
| |
sysarch() calls return EINVAL, not SIGSYS.. so we can trivially adapt.
Notes:
svn path=/head/; revision=145037
|
| |
|
|
|
|
|
| |
Submitted by: tegge
Notes:
svn path=/head/; revision=138403
|
| |
|
|
|
|
|
|
|
|
|
|
| |
can't use the i386_set_ldt() family of routines, because they are not
implemented. Instead, use the recently exposed direct access sysarch
routines for setting what %fs and %gs point to.
Use this for the i386 TLS _set_tp() routine, but only when compiling to
run as a 32 bit support binary for amd64 kernels.
Notes:
svn path=/head/; revision=137290
|
| |
|
|
| |
Notes:
svn path=/head/; revision=133754
|
| |
|
|
| |
Notes:
svn path=/head/; revision=132383
|
| |
|
|
|
|
|
| |
for subnormals with one implementation that works.
Notes:
svn path=/head/; revision=132366
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=131852
|
| |
|
|
|
|
|
|
| |
pointer, here we keep orignal %ebp, so we can see where signal handler
comes in and interrupt normal code.
Notes:
svn path=/head/; revision=131501
|
| |
|
|
|
|
|
|
| |
setting %ebp to zero, this avoids new gdb to dump a weird
backtrace.
Notes:
svn path=/head/; revision=131460
|
| |
|
|
|
|
|
| |
and fix a typo in the !__GNUC__ case.
Notes:
svn path=/head/; revision=125867
|
| |
|
|
| |
Notes:
svn path=/head/; revision=125865
|