Commit Graph

17160 Commits

Author SHA1 Message Date
pooka
889d7bb33a play the "documentation matches implementation" game 2014-04-08 13:02:14 +00:00
christos
b02e0dfacc add __stpncpy_chk 2014-04-06 19:29:37 +00:00
christos
d5aa7d4d63 fix incorrect bounds check 2014-04-06 19:29:25 +00:00
christos
2d04609248 fix the limit check. 2014-04-06 01:13:59 +00:00
christos
18305a4758 fix off by one in stpcpy_chk.
christos
2014-04-06 01:01:49 +00:00
pooka
e8083ecf03 Make sure holyfd is -1 when rumpclient_init() is called for
the first time after fork to prevent fd 0 from being closed.

should fix test failures, thanks to martin for the prod
2014-04-03 17:11:35 +00:00
justin
95e41b89b5 Add Android support for rump kernel.
Reviewed by pooka@
2014-04-02 17:09:23 +00:00
pooka
e152ae2df5 fix build on NetBSD. also, prevent fd leak in error path 2014-04-02 15:04:19 +00:00
pooka
90c25cb369 On Linux, poll signalfd() when waiting for a kernel response.
This allows the same type of race-free handling of signals as kqueue()
allows on NetBSD.  One of the noticeable things is that you can now
interrupt rumprun ping mid-interval on Linux.

per suggestion from Justin Cormack
2014-04-02 14:48:03 +00:00
pooka
cd76e7c732 Always use sysconf() to query host processor count instead of separate
tricks for each platform.
2014-04-02 13:54:42 +00:00
christos
ff9eccbdec add -g to LINTFLAGS 2014-04-01 19:12:37 +00:00
dholland
120fd4cb9a add "move gethostbyname to a compat library" to the list of things to do
on the mythical libc bump
2014-03-29 19:30:12 +00:00
wiz
59200c73fc Remove trailing whitespace. Merge EINVAL entries. 2014-03-28 15:35:55 +00:00
degroote
b45684b49b Document a bit CLOCK_VIRTUAL and CLOCK_PROF 2014-03-28 15:03:41 +00:00
joerg
47a96e3a4d _Unwind_GetLanguageSpecificData is supposed to return a _Unwind_Ptr.
This makes a difference on M68K as it uses a different register for
integer vs pointer values.
2014-03-24 21:26:01 +00:00
martin
6d0fe06315 Avoid strict aliasing problems 2014-03-23 15:26:47 +00:00
pooka
0ab0c8a502 fix name of HAVE_PTHREAD_SETNAME_3 2014-03-21 16:03:35 +00:00
pooka
fe7fe5876f fix braces 2014-03-21 16:03:07 +00:00
pooka
bc215c110d use a probe result to decide which pthread_setname_np() to use 2014-03-21 12:28:54 +00:00
pooka
fa5f7ef47e set threadname for correct pthread_t 2014-03-21 12:07:10 +00:00
christos
13ec391985 CID 273814, don't confuse coverity. 2014-03-20 17:25:23 +00:00
uwe
66df54162c On sh3 __udivsi3 is gcc "millicode" with special calling convention
(less registers clobbered than usual).  Each DSO that needs it gets
its own hidden copy from libgcc.a.  Do not compile udivsi3.c for sh3
here since this C version doesn't conform to what gcc expects and
overrides the libgcc.a version.

This makes binaries compiled with gcc4.8 work.  The issue was not
exposed with gcc4.5 since it uses different division strategy by
default.
2014-03-19 20:30:53 +00:00
dsl
3a9ebe222a Change 'i0' to be signed so that the sign bit is preserved on 'k'
and the code at the bottom splits the multiply.
Fixes denormal results.
This might have been introduced when I deferred shifting 'k' left.
2014-03-18 21:52:19 +00:00
riastradh
6cb10275d0 Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
christos
e2ecf243c3 fix memory leak
XXX: pullup 6
2014-03-17 13:24:23 +00:00
dsl
0f547b99f1 Simplify somewhat: this is C not FORTRAN-IV - we have structures!
Directly us 'ieee_double_shape_type' when ripping apart the fp number
  to avoid an extra store-load in 'STRICT_ASSIGN'.
Keep 'k' as the exponent, only do 'k << 20' when generating the fp number
  from it.
Fix infinity and underflow returns on i386 - because the value is returned
  in %st0 (x87 stack) we have to generate a long double error value.
The returned value for integers -1023 and below (which should be denormal
  fp valuesr) are 'just plain wrong' (tm).
2014-03-16 22:44:48 +00:00
dsl
ec1660cff5 Fix overflow and underflow on i386.
The return value of a 'float' function is in the x87 %st(0) register.
This is an 80bit 'long double' register.
If you multiply 0x1p100f by 0x1p100f the caller sees 0x1p200 - not the
  expected infinity.
So use a 'double' value which goes through a store-load sequence to generate
  the required exception and value.
2014-03-16 22:30:43 +00:00
joerg
39f1409e2e __do_global_ctors_aux and __do_global_ctors_aux must be used locally, so
mark them as hidden.
2014-03-16 11:41:30 +00:00
njoly
61d6bfec15 Do not use uninitialized pointer if posix_memalign() fails. 2014-03-16 10:23:59 +00:00
martin
16e71f2a62 Add roundl() 2014-03-16 10:02:27 +00:00
martin
d30e39112d Provide all missing variants of trunc/floor/ceil. 2014-03-16 09:51:39 +00:00
martin
03e412de5e Need to load the full argument 2014-03-15 14:12:56 +00:00
martin
89434fa764 Provide copysignf and copysignl 2014-03-15 12:20:09 +00:00
dsl
092f718fed There is some very odd code in s_exp2.c that only works if 'double'
values are rounded to 53 bit mantissa in teh x87 registers.
This hasn't been true since Nov 11 2013.
Forcing a store-load for 'double' in STRICT_ASSIGN() seems to fix things
  (at least enough for the few random test cases).
I suspect the code could be changed so that the number of mantissa bits
  didn't matter.
2014-03-14 22:21:31 +00:00
cherry
27f396ba32 Add crtstuff for ia64. Compile tested only 2014-03-14 18:15:02 +00:00
justin
54d90457f6 If dlopen returns NULL assume we are statically linked and return,
rather than getting a warning when dlinfo fails.
2014-03-14 01:18:39 +00:00
pooka
300f37afc0 Do not process linkmaps if there is exactly one link map present
(i.e. there is no ld.so).  Makes statically linked rump kernels work on
glibc (at least for me).

based on some discussion with Justin Cormack
2014-03-13 11:21:54 +00:00
martin
7a17404a6d XXX This is all wrong and needs new tables and constants - but at least use
constants in the VAX double range for now, so it is compilable with newer
gcc.
2014-03-12 19:42:18 +00:00
wiz
4e760575d6 Remove trailing whitespace. 2014-03-12 18:17:06 +00:00
dholland
1e9d60e3bf typo 2014-03-12 07:32:46 +00:00
pooka
43925050d7 rump_pub_getversion -> rump_getversion 2014-03-10 22:47:27 +00:00
justin
cf83766ecf Revert conversion to __thread as breaks on archs without TLS support 2014-03-10 22:37:51 +00:00
justin
587ef2949a Use __thread rather than pthread_getspecific for rumpuser curlwp.
This has better performance and curlwp is a performance bottleneck
in rump kernel code.
2014-03-09 23:01:11 +00:00
christos
bb5309eeb0 another libelf instance 2014-03-09 21:37:37 +00:00
christos
0c84150c90 switch to the elftoolchain code. 2014-03-09 17:09:20 +00:00
matt
1de2b6f186 This is no different from the 32bit powerpc one.
Remove the redundancy.
2014-03-07 07:26:42 +00:00
matt
2a0cd0801f these are obsolete. Now using the common powerpc files in csu/arch/powerpc. 2014-03-07 07:23:49 +00:00
christos
9669e36fb7 reduce diffs with other copies of this code. 2014-03-07 01:07:01 +00:00
christos
32a8f22f2c Fix incorrect overflow test: https://android-review.googlesource.com/#/c/50570/ 2014-03-07 01:00:58 +00:00
matt
f99069ca40 Use _XENTRY 2014-03-06 19:05:59 +00:00