All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 0/9] Introducing service supervision/management with s6
Date: Tue, 9 Aug 2016 21:54:12 +0200	[thread overview]
Message-ID: <20160809215412.7a766bf1@itchy> (raw)
In-Reply-To: <20160809041444.GQ22524@waldemar-brodkorb.de>

Hi!

Le Tue, 9 Aug 2016 06:14:44 +0200,
Waldemar Brodkorb <wbx@openadk.org> a ?crit :

> > This series provides all the packages for programs and libraries to
> > build an embedded system with service supervision and management
> > using s6 from http://skarnet.org.
> > 
> > Note that these packages only provide the mechanism for
> > supervising/managing services using s6, not the policy. Packages to
> > provide a policy suitable for Buildroot-based embedded systems,
> > using s6 as init (instead of SysV or systemd), will be provided
> > later. An example is available in the buildroot-s6 demo project
> > [1].  
> 
> Is there a reason s6 series depends on glibc or musl?

The problem with uclibc-ng is twofold:

1. a compilation issue.
2. a runtime lock-up.

I've finally found time to tackle these issues ;-).

When configuring skalibs, a runtime test is created to check if
posix_spawnp() is present. For whichever reason, when using uclib-ng. 
this function is provided by librt. So by default the test fails and
instead of using posix_spawnp(), the function child_spawn0() from
skalibs falls back to a fork/execve homegrown version. This fallback
function is buggy but this has been fixed [0], but this is not
available in skalibs 2.3.10.0.

Anyway, the ./configure script from skalibs can be patched to check 
for posix_spawnp() in librt. But then, for each package skarnet
program/library, this extra library should be passed to the build
process (e.g. execline):

```
ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
EXECLINE_MAKE_OPTS = EXTRA_LIBS="-lrt"
endif
```

Unfortunately, posix_spawnp() is buggy, which results in the `if`
command from execline going into an infinite loop. This due to a
incorrect pointer update in __spawni(). I sent a patch upstream to 
fix this [2].

So the limitation can now be removed, provided I add one patch for
skalibs and one for uclibc-ng. I'll check with the skalibs maintainer
to see if there is a cleaner way to handle the uclibc-ng librt issue,
because I'd prefer to avoid using the EXTRA_LIBS variable trick in all
the skarnet packages.

Or I can also backport [1] as a temporary workaround.

> I once played with s6, but was scared about pre-configring for all
> architectures. Do you think your patch to skalibs has any chance to
> be upstreamed?

The patch for detecting the endianness was previously discussed [3]. As
Thomas P. suggested some improvements for type size checks, I'll bump
the topic once this part has been reworked.

[1]
http://git.skarnet.org/cgi-bin/cgit.cgi/skalibs/commit/?id=2dc76616b2b0884f0203cf36b58f94c5656c0c81
[2]
http://mailman.uclibc-ng.org/pipermail/devel/2016-August/001126.html
[3]
http://www.mail-archive.com/supervision at list.skarnet.org/msg01034.html

Best regards,
-- 
ELB

      reply	other threads:[~2016-08-09 19:54 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-08 21:02 [Buildroot] [PATCH 0/9] Introducing service supervision/management with s6 Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 1/9] skalibs: new package Eric Le Bihan
2016-08-09  8:06   ` Thomas Petazzoni
2016-08-09 20:16     ` Eric Le Bihan
2016-08-09 20:35       ` Thomas Petazzoni
     [not found]     ` <20160809221532.3f36d369@itchy>
2016-12-04 18:08       ` Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 2/9] execline: " Eric Le Bihan
2016-08-09  8:09   ` Thomas Petazzoni
2016-08-09 20:22     ` Eric Le Bihan
2016-08-09 20:36       ` Thomas Petazzoni
2016-08-08 21:02 ` [Buildroot] [PATCH 3/9] s6: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 4/9] s6-dns: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 5/9] s6-networking: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 6/9] s6-rc: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 7/9] s6-portable-utils: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 8/9] s6-linux-utils: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 9/9] s6-linux-init: " Eric Le Bihan
2016-08-09  4:14 ` [Buildroot] [PATCH 0/9] Introducing service supervision/management with s6 Waldemar Brodkorb
2016-08-09 19:54   ` Eric Le Bihan [this message]

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=20160809215412.7a766bf1@itchy \
    --to=eric.le.bihan.dev@free.fr \
    --cc=buildroot@busybox.net \
    /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.