[uClibc]uClibc/mipsel

Geoffrey Espin espin at idiom.com
Fri Feb 15 03:30:22 UTC 2002


I'm foolishly trying to get uClibc working on for mipsel.
I'm using kernel 2.4.17 (+ sf.net mips-linux).

Using the latest CVS and simply dumping
    uClibc/libc/sysdeps/linux/mipsel
for
    uClibc/libc/sysdeps/linux/mips

Copying setjmp_aux.c for glibc2.2.5 (other files seem to match
this near enough), and stealing generic/vfork.c gets me so I can
build busybox(with vi & ash) with the resulting
/usr/mips-linux-uclibc/usr/bin/mips-uclibc-gcc.

I actually did a "make -i" in the uClibc/test suite directory
and found a good number of tests passed or seemed close enough.

Unfortunately, signal() causes a "Segmentation fault".  I tracked
it to libc/signal/sigaction.c:libc_sigaction().

If I pad:

int __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
{
    int result;
    struct kernel_sigaction kact, koact;
    int bogusPad[18];

    if (act) {
    ...

Then it passes.  Heck, I can even use vi & ash in busybox!

So can anyone spare me a clue?
The bogusPad gets filled with either 0's or ff's, if that helps.

Separately: when I run the 'malloc' test, I get:
    Out of Memory: Killed process 488 (malloc).             
    Terminated  

This looks like VM OOM killer... is that what should happen, or is
the test program obsolete?

I did fix one little glitch in uClibc/Makefile for rule install_dev:
    ...
    -chown -R `id | sed 's/^uid=\([0-9]*\).*gid=\([0-9]*\).*$$/\1.\2/'` $(PREFIX)$(DEVEL_PREFIX)

The double $$ is needed cuz make eats $'s.

TIA,
Geoff
-- 
Geoffrey Espin
espin at idiom.com



More information about the uClibc mailing list