--- old/src/os/linux/vm/os_linux.cpp 2014-03-03 11:17:54.365855000 -0800 +++ new/src/os/linux/vm/os_linux.cpp 2014-03-03 11:17:54.253872000 -0800 @@ -288,7 +288,11 @@ #elif defined(PPC32) static char cpu_arch[] = "ppc"; #elif defined(PPC64) +#if defined VM_LITTLE_ENDIAN +static char cpu_arch[] = "ppc64le"; +#else static char cpu_arch[] = "ppc64"; +#endif #elif defined(SPARC) # ifdef _LP64 static char cpu_arch[] = "sparcv9"; @@ -1979,6 +1983,14 @@ #define EM_486 6 /* Intel 80486 */ #endif + #if defined(PPC64) + #if defined(VM_LITTLE_ENDIAN) + #define PPC64_ELFDATA2XSB ELFDATA2LSB + #else + #define PPC64_ELFDATA2XSB ELFDATA2MSB + #endif + #endif + static const arch_t arch_array[]={ {EM_386, EM_386, ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"}, {EM_486, EM_386, ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"}, @@ -1988,7 +2000,7 @@ {EM_SPARC32PLUS, EM_SPARC, ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"}, {EM_SPARCV9, EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9 64"}, {EM_PPC, EM_PPC, ELFCLASS32, ELFDATA2MSB, (char*)"Power PC 32"}, - {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"}, + {EM_PPC64, EM_PPC64, ELFCLASS64, PPC64_ELFDATA2XSB, (char*)"Power PC 64"}, {EM_ARM, EM_ARM, ELFCLASS32, ELFDATA2LSB, (char*)"ARM"}, {EM_S390, EM_S390, ELFCLASSNONE, ELFDATA2MSB, (char*)"IBM System/390"}, {EM_ALPHA, EM_ALPHA, ELFCLASS64, ELFDATA2LSB, (char*)"Alpha"},