Commit Graph

89 Commits

Author SHA1 Message Date
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
pooka b8eb9b59e8 Make the rumphijack dlsym trampoline call from rumpclient a "real"
function call instead of a call through a function pointer.
Apparently powerpc ld.elf_so gets __hackish_return_address() wrong
if the call is done through a function pointer (digging deeper into
that stuff is beyond my interest).

Thanks to riz for providing access to a macppc for debugging.
Unthanks to the broken toolchain in the default installation which
wasted approximately 4 hours of time last night.
2011-02-24 12:25:44 +00:00
pooka e1463ae3cd Die with a sensible error message if a symbol cannot be found. 2011-02-24 09:52:34 +00:00
tron fb1591b100 Remove "NOLINT" setting that was apparently committed by accident and
breaks the build.
2011-02-22 17:32:49 +00:00
pooka 97c20c765b Disable string aliasing for rump_syscalls.c. I can't figure out
how to otherwise make the kernel's register_t coreography to work
with the return value here in a MI fashion.
2011-02-22 14:02:54 +00:00