[systemd-devel] building with uClibc (was: minimal-uclibc: systemd fails with `src/manager.c:257:42: error: 'EPOLL_CLOEXEC' undeclared (first use in this function)`)

Kok, Auke-jan H auke-jan.h.kok at intel.com
Tue Jul 12 10:38:03 PDT 2011


On Tue, Jul 12, 2011 at 10:10 AM, Paul Menzel
<paulepanter at users.sourceforge.net> wrote:
> Am Mittwoch, den 11.05.2011, 07:58 +0200 schrieb Thierry Reding:
>> * Paul Menzel wrote:
>
> […]
>
>> > I am no uClibc expert, but do you know if uClibc will provide
>> > `EPOLL_CLOEXEC` in the near future? How should systemd fix that?
>>
>> uClibc is also missing an implementation of the epoll_create1() syscall. I'm
>> using a patch against uClibc to fix a similar issue in udev but haven't
>> gotten around to sending it upstream yet.
>
> meta-openembedded successfully applies the following patches [1][2]
> (also attached) to compile systemd using uClibc.
>
> There were some discussions on the mailing list which you should find in
> the archive [3][4].
>
> Would you accept such patches for upstream inclusion or do you have
> different ideas?
>
> I put the patch authors into CC.

The idea of these patches doesn't look bad, but, with all the
autotools stuff in place it should be possible to make these patches a
lot more acceptable to upstream

[1] 0001-systemd-disable-xml-file-stuff-and-introspection.patch - This
patch modifies a lot of build code, it should probably be something
you can 'toggle' with a configure flag, instead of disabling all this
build code entirely. it's not mergable as is.

[2] replacing the pointers here with hardcoded string lenghts doesn't
seem like the right thing to do here, but I can see that redefining
fscanf for uclibc won't be easy due to the missing %m option. Still,
blanket replacing these all doesn't seem like a sane approach to me

[3] paper-over-mkostemp.patch: this uses #ifdef UCLIBC... Stuff like
this is usually written better with a configure check for mkostemp(),
and then writing #ifdef HAVE_MKOSTEMP... much more portable too.

[4] Seems this can be resolved by installing the proper docbook parts,
it's not a packaging issue, you're missing some installed packages.

Auke


>
>
> Thanks,
>
> Paul
>
>
> [1] http://cgit.openembedded.org/cgit.cgi/meta-openembedded/tree/meta-oe/recipes-core/systemd/systemd
> [2] http://cgit.openembedded.org/cgit.cgi/meta-openembedded/log/meta-oe/recipes-core/systemd/
> [3] http://lists.linuxtogo.org/pipermail/openembedded-devel/2011-June/
> [4] http://lists.linuxtogo.org/pipermail/openembedded-devel/2011-July/
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>
>


More information about the systemd-devel mailing list