[oe] HEADS UP: sys_accept4() syscall and recent udevs

Koen Kooi koen at dominion.thruhere.net
Fri Jun 3 10:40:00 UTC 2011


Hi,

Last night I tried to help Tom R. debug boot failures and it turned out that he was missing the sys_accept4() syscall. This morning I helped a coworker with the same problem. So let's summarize the situation:

 1) recent udevs (>165) depend on the accept4() syscall
 2) kernel 2.6.28 added that syscall, but didn't wire it up for all archs
 3) kernel 2.6.36 wired it up for ARM

So to get a working recent udev on ARM you need to do the following:

 a) use >= 2.6.36 as linux libc headers or cherry-pick this one:
      21d93e2e29722d7832f61cc56d73fb953ee6578e ARM: 6329/1: wire up sys_accept4() on ARM
 b) cherry-pick the above into your kernel, cherry-pick works cleanly for at least the 2.6.32 and 2.6.35 kernels I tried it on

And if you want to use systemd:

 c) cherry-pick 676db4af043014e852f67ba0349dae0071bd11f3 cgroupfs: create /sys/fs/cgroup to mount cgroupfs

If you're using a prebuilt toolchain, contact your toolchain vender to get a headerset and c library with that syscall and optionally things like signalfd(). OE-core users only need to check b) if they are using their own <2.6.36 kernels.

regards,

Koen



More information about the Openembedded-devel mailing list