It seems that this check(in asm-mips/elf.h): #define elf_check_arch(hdr) \ ({ \ int __res = 1; \ struct elfhdr *__h = (hdr); \ \ if ((__h->e_machine != EM_MIPS) && \ (__h->e_machine != EM_MIPS_RS4_BE)) \ __res = 0; \ if (__h->e_flags & EF_MIPS_ARCH) \ __res = 0; \ \ __res; \ }) which is called in fs/binfmt_elf.c causes the loading of init to fail if it is linked with a glibc compiled with -mips2. It is the second if test which fails if any of the high 4 bits in the flags are set. According to the specs these are set for the various mipsx (x != 1) flavors - this seems to mean that we do no allow anything higher than mips1 run on linux - can this be true? If so, why? /Brian