summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Mack <github@zonque.org>2015-09-24 15:04:13 +0200
committerDaniel Mack <github@zonque.org>2015-09-24 15:04:13 +0200
commitf0c576748e98d8539deea6c7682a91cbe07a956a (patch)
tree009119135965777511430a838e79b953c7c2840c /src
parent2e396de8b2317fdd1cb2f5eb1df8dffd13bf1e80 (diff)
parent7517f51ef9921d3360453c8eec2c97256d320ceb (diff)
Merge pull request #1370 from systemd-mailing-devs/1443091642-5853-1-git-send-email-brueckner@linux.vnet.ibm.com
s390: add personality support
Diffstat (limited to 'src')
-rw-r--r--src/basic/util.c27
-rw-r--r--src/test/test-execute.c8
2 files changed, 33 insertions, 2 deletions
diff --git a/src/basic/util.c b/src/basic/util.c
index 18be0bfd5a..40a4b8fbec 100644
--- a/src/basic/util.c
+++ b/src/basic/util.c
@@ -5261,6 +5261,19 @@ unsigned long personality_from_string(const char *p) {
if (streq(p, "x86"))
return PER_LINUX;
+
+#elif defined(__s390x__)
+
+ if (streq(p, "s390"))
+ return PER_LINUX32;
+
+ if (streq(p, "s390x"))
+ return PER_LINUX;
+
+#elif defined(__s390__)
+
+ if (streq(p, "s390"))
+ return PER_LINUX;
#endif
return PERSONALITY_INVALID;
@@ -5280,6 +5293,20 @@ const char* personality_to_string(unsigned long p) {
if (p == PER_LINUX)
return "x86";
+
+#elif defined(__s390x__)
+
+ if (p == PER_LINUX)
+ return "s390x";
+
+ if (p == PER_LINUX32)
+ return "s390";
+
+#elif defined(__s390__)
+
+ if (p == PER_LINUX)
+ return "s390";
+
#endif
return NULL;
diff --git a/src/test/test-execute.c b/src/test/test-execute.c
index dd8ab7dcb8..fa6336f1fb 100644
--- a/src/test/test-execute.c
+++ b/src/test/test-execute.c
@@ -77,10 +77,14 @@ static void test_exec_workingdirectory(Manager *m) {
}
static void test_exec_personality(Manager *m) {
- test(m, "exec-personality-x86.service", 0, CLD_EXITED);
-
#if defined(__x86_64__)
test(m, "exec-personality-x86-64.service", 0, CLD_EXITED);
+
+#elif defined(__s390__)
+ test(m, "exec-personality-s390.service", 0, CLD_EXITED);
+
+#else
+ test(m, "exec-personality-x86.service", 0, CLD_EXITED);
#endif
}