]> err.no Git - util-linux/commitdiff
setarch: add sparc32bash alias to keep compatibility with sparc32
authorDennis Gilmore <dennis@ausil.us>
Tue, 21 Aug 2007 07:55:28 +0000 (09:55 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 21 Aug 2007 07:55:28 +0000 (09:55 +0200)
Signed-off-by: Dennis Gilmore <dennis@ausil.us>
Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/setarch.c

index e812c27902fc5ba0696c88512dd71e9c18287897..153a8283f79fd3e0778128f4185f9a9c380025f3 100644 (file)
@@ -114,6 +114,7 @@ int set_arch(const char *pers, unsigned long options)
 #endif
 #if defined(__sparc64__) || defined(__sparc__)
     {PER_LINUX32, "sparc", "sparc"},
+    {PER_LINUX32, "sparc32bash", "sparc"},
     {PER_LINUX32, "sparc32", "sparc"},
     {PER_LINUX, "sparc64", "sparc64"},
 #endif
@@ -175,6 +176,14 @@ int main(int argc, char *argv[])
     if (!strcmp(p, "-h") || !strcmp(p, "--help"))
       show_help();
   }
+  #if defined(__sparc64__) || defined(__sparc__)
+   if (!strcmp(p, "sparc32bash")) {
+       if (set_arch(p, NULL))
+         error(EXIT_FAILURE, errno, "Failed to set personality to %s", p);
+       execl("/bin/bash", NULL);
+       error(EXIT_FAILURE, errno, "/bin/bash");
+   }
+  #endif
   for (argv++, argc--; argc && argv[0][0] == '-'; argv++, argc--) {
     int n, unknown = 1;
     const char *arg = argv[0];