Commit Graph

81 Commits

Author SHA1 Message Date
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
pooka 4674f09289 I think I skipped the class where they taught that multiplication
is done before addition...
2011-02-18 16:22:10 +00:00
wiz cd90032d22 Use more appropriate markup. Fix a typo. 2011-02-17 17:03:17 +00:00
pooka 2e866e7646 add some excuse of a manpage for librumpclient 2011-02-16 23:45:40 +00:00
tron aa934b7969 Include "sys/null.h" to get the definition of NULL. 2011-02-16 22:35:41 +00:00
pooka f8af939582 fix signature of rumpclient_fork() 2011-02-16 19:58:01 +00:00
pooka 2e5776377c * set default server connection retry to 0 (no reconnection attempts).
while for some cases attempting retry after server restart works
  brilliantly (e.g. firefox), in other cases it's quite disasterous
  (sshd doesn't like its file descriptors going missing and does not
  attempt to reopen them, leading to a quite catastophic loop of
  EBADF once the server does come back)
* rename RUMPHIJACK_RETRY to the slightly more sensible
  RUMPHIJACK_RETRYCONNECT
2011-02-16 19:26:58 +00:00
pooka 36f6818061 Support vfork. Add rumpclient wrapper for daemon(3). 2011-02-16 17:56:46 +00:00
pooka f4ba3dcd9e Push the fiddly tasks for exec and fork from rumphijack to rumpclient.
This makes it possible easily execute those operations also from
non-hijacked rump clients (plus fixes one memory leak in an error
branch).
2011-02-16 15:33:46 +00:00