I have access to a cortex-M board this week (and maybe next), and would like to test out musl on it. It's a "SmartFusion 2" running one of the https://github.com/emcraftsystems kernel trees (I forget which), and buildroot with uclibc-ng. (In _theory_ that kernel includes fdpic support, but the uclibc toolchain buildroot builds is binflt.) There's an ellcc blog entry at http://ellcc.org/blog/?p=23234 that says he added cortex-m support, which was commit http://ellcc.org/viewvc/svn?view=revision&revision=4920 in their repo (ancient patch attached, applies to a ~2 year old musl version). Some of those changes don't seem to be needed anymore, because the arm code has been moved to "unified syntax". But when I try to build with buildroot's cortex-m3 toolchain, it clearly still needs some other changes: src/setjmp/arm/longjmp.s: Assembler messages: src/setjmp/arm/longjmp.s:10: Error: thumb conditional instruction should be in IT block -- `moveq r0,#1' src/setjmp/arm/longjmp.s:11: Error: SP not allowed in register list -- `ldmia ip!,{v1,v2,v3,v4,v5,v6,sl,fp,sp,lr}' FYI gcc -v says that toolchain is configured with (among other things): ./configure --enable-static --target=arm-buildroot-uclinux-uclibcgnueabi --disable-__cxa_atexit --with-gnu-ld --disable-libssp --disable-multilib --disable-libquadmath --disable-libsanitizer --disable-tls --disable-libmudflap --enable-threads --without-isl --without-cloog --with-float=soft --disable-decimal-float --with-abi=aapcs-linux --with-cpu=cortex-m3 --with-float=soft --with-mode=thumb --enable-languages=c,c++ --disable-shared --disable-libgomp (I can dig up the buildroot config if you want to try to reproduce it, but I think I told Rich about it months ago.) I have a todo item to try to get QEMU running a cortex-m3 Linux, but unfortunately last time I checked QEMU's only actual cortex-m3 board implementation was a toy ("netduino") with 128k of sram. It looks like the vanilla kernel has 4 cortex-m defconfigs now. (Mostly cortex-m4, but it seems like that's just funky DSP extensions the kernel presumably doesn't use; cortex-m3 shipped in 2004 and is the common case nommu baseline here). Anyway, is there any interest in this? (Lemme rephrase that: the _industry_ is screaming for this, is there any interest on the part of musl?) I can try to hack something together from the old patch if so. (Or somebody who knows the arm instruction set better can do more than just "make the compile errors go away" :) Rob P.S. Anybody else boggle at the way wikipedia[citation needed]'s cortex-m page doesn't actually include the phrase "mmu" or "memory management unit"? No really: https://en.wikipedia.org/wiki/ARM_Cortex-M