|
Message-ID: <20120929054156.GA20623@brightrain.aerifal.cx> Date: Sat, 29 Sep 2012 01:41:57 -0400 From: Rich Felker <dalias@...ifal.cx> To: musl@...ts.openwall.com Subject: microblaze port committed Hi all, I've committed the initial (and seemingly fully-working) version of the microblaze port. Several caveats: 1. Upstream binutils has a serious bug in gas whereby the relocations it generates for symbols with local weak definitions cannot be resolved by the linker. Patch at: http://permalink.gmane.org/gmane.linux.uclinux.microblaze/11155 2. The toolchain binaries from Xilinx seem to produce .o files incompatible with standard binutils, and vice versa. Pick one or the other; don't mix them. 3. Threads are untested because qemu is broken, at least my version of qemu (app-level emu) has a bug where clone() does not advance the program counter properly in the child, so it starts a forkbomb-like cascade of clone syscalls (thankfully just linear growth rather than exponential). 4. Until very recently, qemu did not support the lwx/swx instructions needed for implementing atomics, and treated them instead as plain lw/sw (load/store). I've added one otherwise-wasteful instruction to the atomic asm in atomic.h so that atomic cas/swap will at least behave as an equivalent non-atomic operation on older qemu, rather than randomly going into infinite loop. Older hardware may be affected by this issue too. I'm sure we'll find other problems once there's a better build/test environent in-place, but overall this seems to be the best initial-commit quality of any port yet, probably due to the fact that the microblaze ISA+ABI is the sanest, simplest ISA+ABI I've ever coded to. 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.