Commit Graph

93 Commits

Author SHA1 Message Date
nia 122b5006ee Force at most partial RELRO for rump_server and related libraries
rump_server with -l uses lazy resolution by default and thus cannot be
used with full RELRO/BIND_NOW.
2021-11-01 21:37:32 +00:00
andvar b58602814f fix typos in word "successful". 2021-09-16 22:19:10 +00:00
christos 70764037a3 Ignore failed closes (if for example a closed file descriptor is passed as
a starting point). This is how the kernel behaves.
2021-09-11 14:23:04 +00:00
mrg de11d87641 introduce some common variables for use in GCC warning disables:
GCC_NO_FORMAT_TRUNCATION    -Wno-format-truncation (GCC 7/8)
GCC_NO_STRINGOP_TRUNCATION  -Wno-stringop-truncation (GCC 8)
GCC_NO_STRINGOP_OVERFLOW    -Wno-stringop-overflow (GCC 8)
GCC_NO_CAST_FUNCTION_TYPE   -Wno-cast-function-type (GCC 8)

use these to turn off warnings for most GCC-8 complaints.  many
of these are false positives, most of the real bugs are already
commited, or are yet to come.


we plan to introduce versions of (some?) of these that use the
"-Wno-error=" form, which still displays the warnings but does
not make it an error, and all of the above will be re-considered
as either being "fix me" (warning still displayed) or "warning
is wrong."
2019-10-13 07:28:04 +00:00
christos a613f690f9 make it the same as rump.h 2017-05-11 18:44:50 +00:00
christos 60b22e867e Don't depend on stars in order to define things. 2017-05-11 17:47:22 +00:00
sevan 6b31f116cc With the removal of HAVE_REGISTER_T from rumpuser_port.h, _KERNTYPES does not
need to be defined. This allows register_t to be typedef'd to RUMP_REGISTER_T
without conflict, as highlighted in PR kern/52206.
2017-05-11 04:33:14 +00:00
sevan 979875ac74 Revert previous change so builds can resume.
_KERNTYPES needs to be defined for NetBSD builds to succeed.
_KERNTYPES must not be defined for buildrum.sh builds to succeed.
2017-05-10 08:48:46 +00:00
sevan 9204518573 Do not define _KERNTYPES as this breaks build with buildrump.sh due to
conflicting types for register_t.
Closes PR kern/52206
Steered in the right direction by christos.
2017-05-10 01:11:51 +00:00
martin 832d276ed9 Redo previous by avoiding the casts and using PRIxREGISTER instead 2016-09-06 07:45:41 +00:00
martin a4856ef48c Fix DPRINTF format 2016-09-06 07:12:48 +00:00
christos ffeb8dbf4e Define _KERNTYPES for things that need it. 2016-01-23 21:22:45 +00:00
justin 7b800c0c00 Modern Android SDK does not need special cases 2015-01-17 19:34:50 +00:00
justin 61b4fed96a Always use kqueue for BSDs in librumpclient
Tested now on the others
2014-12-13 17:18:55 +00:00
justin 7e80a07c88 Use kqueue in librumpclient for FreeBSD too 2014-12-08 01:10:07 +00:00
pooka d9bf6db7cc pretend to handle the poll return value for -Wunused-but-set 2014-04-25 12:20:12 +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 94265f339d Use MAP_ANON|MAP_PRIVATE for anonymous memory mapping,
e.g. Linux gets upset if just MAP_ANON.
2014-02-26 02:03:40 +00:00
pooka 437e54a701 Translate signal numbers between rump kernel and (POSIX) host. 2014-02-20 00:42:27 +00:00
pooka 4194c8cb75 -I../librumpuser is still required for sp_common.c 2013-09-10 17:39:10 +00:00
pooka 0f188198a5 use <rump/rumpuser_port.h> 2013-09-10 16:53:06 +00:00
pooka 5666bf4b73 Make it possible for external parties to specify additional dplibs.
This is useful for example on platforms which require -ldl.
2013-05-15 20:27:00 +00:00
wiz 2b38e53a58 Standardize Lb argument. 2013-03-08 08:30:44 +00:00
pooka 848ac0dab2 Provide register_t compat on solarisa.
(would be nice to handle register_t compat internally instead, but the
interface was already exposed in a release)
2013-01-20 15:23:21 +00:00
pooka 70a67dcd9b fix the extern "C" stuff 2013-01-17 22:16:59 +00:00
pooka 56665b94f0 Solaris 10 fixes 2013-01-17 20:47:44 +00:00
pooka 5c4b55ca89 If the host doesn't support RTLD_NEXT, don't play the dynamic linking game. 2013-01-17 16:29:44 +00:00
pooka 1220d53611 attempt to inform user of what the error means 2012-09-12 12:38:16 +00:00
msaitoh e093807b3b Remove unused variable. Approved by pooka. 2012-08-29 10:38:53 +00:00
pooka 932ef25ea7 force-terminate commname 2012-08-03 14:52:31 +00:00
pooka fa3922be63 Make librumpclient compile and work on Linux. This is accomplished by:
1) avoid "NetBSD'isms" in the rumpclient sources
2) do not require the knowledge of unnecessary weird_t's in syscallargs.h
   for rumpclient
2012-08-03 11:31:33 +00:00
matt e1a2f47f12 Use C89 function definition 2012-03-21 10:10:36 +00:00
joerg 41a3b9d2d6 Request always_inline for rumpclient__dofork, it won't work correctly
for vfork otherwise. Also give it the returns twice attribute to ensure
that the stack tainting is done recursively.
2011-12-16 23:19:28 +00:00
joerg a5a75c0cc8 Mark rumphijack_dlsym explicitly as weak to prevent optimisations based
on pointer (non-)identity of it and rumpclient__dlsym.
2011-12-12 16:53:53 +00:00
joerg c7d626a65f Don't use K&R syntax 2011-12-12 15:21:32 +00:00
alnsn df45d61f55 Save/restore errno in error path in dupgood. Check that n>0 before
accessing banner[n-1].

Approved a while ago by pooka@
2011-04-30 12:25:05 +00:00
pooka 754d118ee3 don't spam connection errors to stderr by default 2011-03-15 09:35:05 +00:00
pooka a7f297977b * use _exit() instead of exit() in retryconn=die: atexit() handlers
may hang if the server is dead
* consistent use of data
2011-03-09 15:09:21 +00:00
pooka 57a486416f need -I${.OBJDIR} now 2011-03-08 19:11:27 +00:00
pooka c057875f13 create srcsys symlink 2011-03-08 18:30:24 +00:00
pooka d06a7e799a and for my next trick, i'm going to spell ARGSUSED correctly 2011-03-08 18:28:01 +00:00
pooka e48cccc4df lint love 2011-03-08 18:25:16 +00:00
pooka 7905447e1d Since we ~never have a frame waiting on the initial call to waitresp,
call kevent before readframe.  Doesn't really affect performance,
but makes ktraces shorter ;)
2011-03-08 15:55:12 +00:00
pooka 00e34b229c Use sendmsg() instead multiple calls to sendto(). It behaves
slightly better in the multithreaded exec case in terms of partial
frames sent.  Plus, it's theoretically a little cheaper.

There's still a gray area with partial transfer from sendmsg(),
but I'm not sure I care enough about some academic scenario to
start fixing it (it basically needs an OOB exec signaller).
2011-03-08 15:34:37 +00:00
pooka ee6e286c6f Take reasonable precautions against init in a parent process
which did a rump-transparent host-only fork().
2011-02-27 12:58:29 +00:00
pooka 9e33d7d6e2 fix __RCSID 2011-02-25 15:12:06 +00:00
pooka 8c15d641b0 Fix static fallback path. 2011-02-24 14:22:04 +00:00