OSDN Git Service

Fix personality test for mips32r6
authorLazar Trsic <Lazar.Trsic@imgtec.com>
Fri, 11 Dec 2015 16:02:49 +0000 (17:02 +0100)
committerLazar Trsic <Lazar.Trsic@imgtec.com>
Mon, 14 Dec 2015 11:29:53 +0000 (12:29 +0100)
When personality syscall is executed on mips64, for a 32bit process,
sys_32_personality() is called, which converts PER_LINUX32 -> PER_LINUX.
Change expected value when mips32 is a second architecture.

For more information see:
https://www.linux-mips.org/archives/linux-mips/2015-08/msg00421.html
https://www.linux-mips.org/archives/linux-mips/2015-11/msg00093.html

Change-Id: I8c9062f536ad6e513f0ac585da3568d80e5fa1b4

tests/sys_personality_test.cpp

index 2dfaa65..6bd00ef 100644 (file)
@@ -21,7 +21,9 @@
 TEST(sys_personality, current_persona) {
   int persona = personality(0xffffffff) & PER_MASK;
 #if defined(__BIONIC__)
-#if defined(__LP64__)
+// When personality syscall is executed on mips64, for a 32bit process
+// sys_32_personality() is called, which converts PER_LINUX32 -> PER_LINUX
+#if defined(__LP64__) || (__mips==32 && __mips_isa_rev>2)
   ASSERT_EQ(PER_LINUX, persona);
 #else
   ASSERT_EQ(PER_LINUX32, persona);