On 12 April 2013 17:00, Jens Axboe <axboe@xxxxxxxxx> wrote: > On Fri, Apr 12 2013, Aaron Carroll wrote: >> tuff >> > should be basic enough that it isn't a lot of trouble to carry it. At >> > least when we figure out why the Android NDK doesn't like the current >> > restraints :-) >> >> Digging around the GCC headers seems to have helped. If you change >> the constraint on ebx to: >> : "=a" (*eax), "=r" (*ebx), "=c" (*ecx), "=d" (*edx) >> then it builds. > > But it doesn't work, we lose the output :-) Ahh, I missed some important stuff. The ASM from cpuid.h looks like this on my Android/x86 GCC: #define __cpuid(level, a, b, c, d) \ __asm__ ("xchg{l}\t{%%}ebx, %1\n\t" \ "cpuid\n\t" \ "xchg{l}\t{%%}ebx, %1\n\t" \ : "=a" (a), "=r" (b), "=c" (c), "=d" (d) \ : "0" (level)) Hopefully someone who knows what they're doing can turn that into an fio fix :) >> The relevant comment from cpuid.h: >> /* %ebx may be the PIC register. */ >> which is ifdef'd on __PIC__ >> >> Dunno what that means, but it builds with that, plus a very small >> Android-specific fix. Both in attached patch. > > Patch is garbled? Ok, so gmail sucks for dev work. Sorry. The Android bit follows inline. diff --git a/os/os-android.h b/os/os-android.h index b844982..df22333 100644 --- a/os/os-android.h +++ b/os/os-android.h @@ -13,6 +13,7 @@ #include <sched.h> #include <linux/unistd.h> #include <linux/major.h> +#include <asm/byteorder.h> #include "binject.h" #include "../file.h" -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html