[klibc] klibc 2.0~rc3-1 ./. mksh 40.9.20120414-2

Thorsten Glaser tg at mirbsd.de
Fri Apr 20 09:01:32 PDT 2012


after changing mksh to no longer use mkstemp, I decided to try
and build mksh-static with klcc on most platforms, in Debian.
Here are the results by Debian architecture:

alpha	(4) fails
amd64	works
armel	works
armhf	(3) fails
i386	works
ia64	works
m68k	(1) workaround
mips	works
mipsel	works
powerpc	(2) fails
ppc64	works (!)
s390	works
s390x	works
sparc	works

Architectures not listed either do not have a working klibc 2.0~rc3,
or did not build mksh or one of its dependencies due to issues with
the port (such as debhelper being uninstallable), or do not have a
Linux kernel.

The ssize_t prototype is bogus at least on s390:
../../shf.c:453:3: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'ssize_t' [-Wformat]
That is not a problem, though.

(1) m68k: fails, unless I do *not* add -O2 or -Os to CFLAGS
    and do always add -g (might be a toolchain bug?); this
    workaround was added to the Debian mksh source package

(2) powerpc: amazingly, ppc64 does NOT fail… this looks like
    m68k without the above-mentioned workaround: the failure
    I already saw often: after running an external programme,
    control flow does not return to the shell, and the child
    is not cleaned up (sticks around as zombie); might be a
    signal delivery problem (SIGCHLD), signal mask stuff, etc.

(3) armhf: one of the tests has the memory pool allocator
    error out as one of its internal data structures got
    corrupted, or a wrong pointer passed to aresize/afree

(4) alpha: random SIGSEGVs that happen with neither eglibc
    nor dietlibc so almost certainly (considering mksh also
    runs with other OSes on DEC Alpha systems, even with
    the Compaq C compiler) are problems in klibc

If someone wants to have a stab at these: there are Debian
porterboxen around for at least powerpc and armhf; alpha
might one get access to; for m68k, there is an up-to-date
(April 2012) VM base image and I can give instructions how
to run the VM. Since the failures happen when executing
certain shell code, tracking them down to C code is very
difficult; the gdb way (or printf debugging, well, use
shellf() inside mksh code instead) might be easier.

I believe no one can invent an algorithm. One just happens to hit upon it
when God enlightens him. Or only God invents algorithms, we merely copy them.
If you don't believe in God, just consider God as Nature if you won't deny
existence.		-- Coywolf Qi Hunt

More information about the klibc mailing list