All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.