From: Antti Kantee <pooka@iki.fi>
To: Ian Campbell <Ian.Campbell@citrix.com>, Lele MA <lelema.zh@gmail.com>
Cc: xen-devel <xen-devel@lists.xen.org>
Subject: Re: Error when Glib cross compiled into Mini-OS without the support of "_POSIX_THREADS"
Date: Thu, 25 Sep 2014 15:41:14 +0000 [thread overview]
Message-ID: <5424379A.5010308@iki.fi> (raw)
In-Reply-To: <1411649722.2053.5.camel@kazak.uk.xensource.com>
On 25/09/14 12:55, Ian Campbell wrote:
> On Thu, 2014-09-25 at 20:50 +0800, Lele MA wrote:
>>
>>> AFAIK mini-os doesn't supply a POSIX thread API, correct.
>>>
>>> I don't think anything else in the current stubdom infra (e.g. newlib)
>>> supplies one either.
>>>
>>>> If so, can I still use the glib in the Mini-OS without the support of
>>>> "_POSIX_THREADS"?
>>>
>>> That would be a question for the glib maintainers. At a minimum I'd
>>> expect you would need to port glib to the mini-os thread API.
>>>
>>> But, before you go down that route I think you should consider the new
>>> rumpkernels work which is going on.
>>>
>>> rumpkernels run on a mini-os/Xen and provide a BSD derived POSIX like
>>> environment, which I expect will include pthreads. Depending on your
>>> application it may well be very worthwhile to start from that (I think
>>> it most likely would be, but I don't know what you are actually doing).
Yes, there's support for pthreads with rump kernels on Xen (uses
unmodified NetBSD libpthread).
>> Thank you so much!
>>
>> My ultimate goal is to use libvmi in mini-os. And libvmi needs glib's support. So I needs to cross-compile glib into mini-os firstly.
>>
>> The mini-os kernel is essential for our project,
>
> Note that rumpkernels use mini-os (or at least large parts of it) under
> the hood. I'd strongly recommend you investigate rumpkernels before
> embarking on any direct porting work.
Yes, it uses minios in a sort of "firmware" sense. You can still access
the underlying minios from applications running as part of rumprun-xen
... though generally speaking it's better to access things through one
API instead of multiple.
The application-side interfaces (POSIX, TCP/IP, etc.) offered by
rumprun-xen are complete enough that off-the-internet applications have
a good chance of "just working" without any porting.
>> so I probably have to port the glib to mini-os thread API. Can you
>> give me some tips on how to port a thread API ?
>
> I've no idea what it actually looks like, sorry. You'll probably need to
> dize into the code.
>
>> I am a newbie to mini-os thread
>> API, any help would appreciated. Thank you!
If you really want to roll your own, you can check how libpthread for
rumprun-xen is integrated:
https://github.com/rumpkernel/rumprun-xen/blob/92b81fde24beb5dfaec1c2eec3960a61cc6dd5e0/lib/_lwp.c
Note: the above implements the _lwp API of NetBSD, which is what NetBSD
libpthread uses to control the kernel threads it manages. The
integration points to minios should be quite clear, nonetheless:
create_thread(), block(), wake(), schedule(), ...
- antti
next prev parent reply other threads:[~2014-09-25 15:41 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-25 9:08 Error when Glib cross compiled into Mini-OS without the support of "_POSIX_THREADS" Lele MA
2014-09-25 10:56 ` Ian Campbell
2014-09-25 12:50 ` Lele MA
2014-09-25 12:55 ` Ian Campbell
2014-09-25 15:41 ` Antti Kantee [this message]
2014-09-25 16:56 ` Marcin Cieslak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5424379A.5010308@iki.fi \
--to=pooka@iki.fi \
--cc=Ian.Campbell@citrix.com \
--cc=lelema.zh@gmail.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).