X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fbasic%2Fprocess-util.c;h=ed850824ff4bfe049813ac462709b8aa910e556a;hb=bc983c987eb3f92eceb373ba4e1c2076b0b3ca88;hp=a50674ea03f0f73dc594c0c7f1c7b8e2840837c3;hpb=38f66c53601841a442ed174db2dca9045ececf42;p=elogind.git diff --git a/src/basic/process-util.c b/src/basic/process-util.c index a50674ea0..ed850824f 100644 --- a/src/basic/process-util.c +++ b/src/basic/process-util.c @@ -688,6 +688,9 @@ bool oom_score_adjust_is_valid(int oa) { unsigned long personality_from_string(const char *p) { int architecture; + if (!p) + return PERSONALITY_INVALID; + /* Parse a personality specifier. We use our own identifiers that indicate specific ABIs, rather than just * hints regarding the register size, since we want to keep things open for multiple locally supported ABIs for * the same register size. */ @@ -696,31 +699,11 @@ unsigned long personality_from_string(const char *p) { if (architecture < 0) return PERSONALITY_INVALID; -#if defined(__x86_64__) - - if (architecture == ARCHITECTURE_X86) - return PER_LINUX32; - - if (architecture == ARCHITECTURE_X86_64) - return PER_LINUX; - -#elif defined(__i386__) - - if (architecture == ARCHITECTURE_X86) + if (architecture == native_architecture()) return PER_LINUX; - -#elif defined(__s390x__) - - if (architecture == ARCHITECTURE_S390) +#ifdef SECONDARY_ARCHITECTURE + if (architecture == SECONDARY_ARCHITECTURE) return PER_LINUX32; - - if (architecture == ARCHITECTURE_S390X) - return PER_LINUX; - -#elif defined(__s390__) - - if (architecture == ARCHITECTURE_S390) - return PER_LINUX; #endif return PERSONALITY_INVALID; @@ -729,30 +712,11 @@ unsigned long personality_from_string(const char *p) { const char* personality_to_string(unsigned long p) { int architecture = _ARCHITECTURE_INVALID; -#if defined(__x86_64__) - - if (p == PER_LINUX) - architecture = ARCHITECTURE_X86_64; - else if (p == PER_LINUX32) - architecture = ARCHITECTURE_X86; - -#elif defined(__i386__) - if (p == PER_LINUX) - architecture = ARCHITECTURE_X86; - -#elif defined(__s390x__) - - if (p == PER_LINUX) - architecture = ARCHITECTURE_S390X; + architecture = native_architecture(); +#ifdef SECONDARY_ARCHITECTURE else if (p == PER_LINUX32) - architecture = ARCHITECTURE_S390; - -#elif defined(__s390__) - - if (p == PER_LINUX) - architecture = ARCHITECTURE_S390; - + architecture = SECONDARY_ARCHITECTURE; #endif if (architecture < 0)