systemd: fix build with uClibc toolchains
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Wed, 12 Feb 2014 22:13:00 +0000 (23:13 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Thu, 13 Feb 2014 20:51:08 +0000 (21:51 +0100)
commit55ad3cfd3f9809f4a1f0210fe7c7110d147c54f6
tree7ef032528fbed74bbdf918d32ba8c920f56cea53
parent2f78767bb84a5c536a7fc3129b9460acada7426e
systemd: fix build with uClibc toolchains

Currently, the build of systemd is broken with the internal toolchain
backend, because we have uClibc patches that add support for
execvpe(), but we also have a patch for systemd that adds execvpe(),
which was added when the internal uClibc didn't support execvpe().

However, simply dropping the patch is not a solution, as it would
break the build of systemd with any other uClibc than the ones built
with Buildroot. For example, a Crosstool-NG uClibc toolchain would
fail.

Beyond this execvpe() problem, there are also other problems that
prevented systemd from being built with unpatched uClibc.

This patch does the following:

 * Add sequence numbers of systemd patches.
 * Regenerate them to avoid fuzz.
 * Improve the uClibc compatibility patch so that it:
   - Detects whether execvpe() is available or not, and if not
     available provide an implementation.
   - Detects if dup3() is available or not, and if not available
     provide an implementation.
   - Detects if MSG_CMSG_CLOEXEC is defined or not, and if not, define
     it to the appropriate value.

This has been tested with uClibc internal toolchain, uClibc external
toolchain built with Buildroot, uClibc external toolchain built with
Crosstool-NG, and glibc external toolchain.

Fixes bug #6776.

Fixes:

  http://autobuild.buildroot.org/results/591/591c6055430da334bd1e46e7d01497add45da837/build-end.log
  http://autobuild.buildroot.org/results/e58/e5851939d2837d4e35a4c1d9ca6df3c93ed5a34b/build-end.log
  http://autobuild.buildroot.org/results/92e/92e4c40c69a3feb4046b2fe5a0d8c69d5a44a157/build-end.log

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/systemd/systemd-01-fix-getty-unit.patch [new file with mode: 0644]
package/systemd/systemd-02-fix-page-size.patch [new file with mode: 0644]
package/systemd/systemd-03-uclibc-fix.patch [new file with mode: 0644]
package/systemd/systemd-fix-getty-unit.patch [deleted file]
package/systemd/systemd-fix-page-size.patch [deleted file]
package/systemd/systemd-uclibc-fix.patch [deleted file]
package/systemd/systemd.mk