|
Message-ID: <20120713052313.GA20369@brightrain.aerifal.cx> 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
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.