Buildroot Archive on 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox