Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Fri, 13 Jul 2012 01:23:13 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: mips port working! & remaining issues

Hi all,

According to libc-testsuite, the new mips port of musl is working. If
remaining issues exist, I suspect they're in the bits/*.h files'
definitions of kernel constants and structures, which I could use some
help reviewing. Threads, including cancellation, are known to work,
and mipsel (little endian) mode presumably works but is untested.

One major omission that remains is the dynamic linker. Due to mips
o32's pathologically bad PIC ABI which has no PC-relative addressing,
the current dynamic linker cannot work as-is. Rather than replacing it
with an ugly mess of fragile early-stage code that depends on
non-optimization by the compiler (the way traditional dynamic linkers
work), I'd rather simply require the dynamic linker and libc to be
loaded at a fixed address chosen at build time -- this is basically
what prelink does. We may be able to use the existing prelink tools,
or just write a small special-purpose tool to prepare libc.so for
loading at a fixed address.

Another major omission shared with arm is that setjmp/longjmp cannot
preserve floating point registers. This is because I don't yet know
how to determine at runtime whether hard-float is available, and the
registers can't be saved unless they can be determined to exist. Help
solving this problem would also be appreciated.

Rich

Powered by blists - more mailing lists

Your e-mail address:

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.