BetterDietlibc

Summary

dietlibc source package is compiled without stack protector flag to fix a FTBFS since 0.30-1ubuntu2 in Edgy. This generated some issues on several packages, which suffer segfaults or do not even compile. Hardy should fix dietlibc implementation and make packages depending on it usable again.

Also, lpia port is not implemented yet. It should be useful to provide it to compile packages for this port too.

Rationale

There are several packages which build-depend on this package and have open issues:

  • FTBFS:
    • bglibs
    • libdjbdns
    • runit
  • Segmentation fault while executing:
    • integrit
    • slidentd
    • util-vserver

Additionally, some packages do not build on lpia since this port is not available in dietlibc

Use cases

These are real issues reported in Launchpad:

Scope

This specification is meant to fix dietlibc to build against current toolchain without harming packages which build-depend on it. They are:

  • bglibs
  • cryopid
  • cvm
  • fgetty
  • fnord
  • integrit
  • libdjbdns
  • libowfat
  • matrixssl
  • minit
  • runit
  • skalibs
  • slidentd
  • utf8script
  • util-vserver

Design

It should be possible to have a safe dietlibc without introducing additional changes in several packages. A possibile solution is playing with dietfeatures.h and WANT_SSP, which should be turned on by default, and -fno-stack-protector, which seems responsible of this wrong behaviour.

Implementing lpia port requires several changes and inclusion of new files, but it should be easier since we already have i386 port, which could be used as a starting point.

Implementation

This patch should fix dietlibc. Rebuilds are required in order to fix dietlibc related packages, eventually including minor changes to packages which does not compile cleanly with the new version (bglibs and cvm).

Solved problems

  • bglibs
    • FTBFS on Hardy
    • It requires a patch to build against new dietlibc
  • cvm
    • FTBFS on Hardy
    • It requires a patch to build against new dietlibc
  • fgetty
    • /sbin/fgetty segfaults
    • /bin/fgetty-login segfaults
    • /bin/checkpassword segfaults
    • /bin/fgetty-login2
    • The above binaries no longer segfault with new dietlibc
  • integrit
    • /usr/sbin/integrit segfaults
    • /usr/sbin/integrit no longer segfaults with new dietlibc
  • libdjbdns
    • FTBFS on Hardy
    • Builds ok against new dietlibc
  • minit
    • /sbin/msvc segfaults
    • /sbin/minit segfaults
    • The above binaries no longer segfault with new dietlibc
  • runit
    • FTBFS on Hardy
    • Builds ok against new dietlibc
  • slidentd
    • /usr/sbin/slidentd segfaults
    • /usr/sbin/slidentd no longer segfaults with new dietlibc
  • util-vserver
    • All binaries in /usr/bin segfault
    • The above binaries no longer segfault with new dietlibc

BoF agenda and discussion


CategorySpec

BetterDietlibc (last edited 2008-08-06 16:41:01 by localhost)