diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-02-24 19:17:07 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-02-24 19:17:07 +0000 |
commit | d160a27ec15b9304e6576616639f0f347022a258 (patch) | |
tree | 1732d8e76fe36c67099357c3076ceb5cc60ac084 | |
parent | dc12190ba258dcaa3b5758fabf0e92f8e8380b26 (diff) | |
download | busybox-d160a27ec15b9304e6576616639f0f347022a258.tar.gz |
Stub out the syscall, not the whole application. The stubbed
out syscall sets errno properly and whines about missing kernel
support.
-Erik
-rw-r--r-- | pivot_root.c | 26 | ||||
-rw-r--r-- | util-linux/pivot_root.c | 26 |
2 files changed, 36 insertions, 16 deletions
diff --git a/pivot_root.c b/pivot_root.c index d34dcd7cc..4d7f8a3d1 100644 --- a/pivot_root.c +++ b/pivot_root.c @@ -3,24 +3,35 @@ * pivot_root.c - Change root file system. Based on util-linux 2.10s * * busyboxed by Evin Robertson + * pivot_root syscall stubbed by Erik Andersen, so it will compile + * regardless of the kernel being used. */ #include <stdlib.h> #include <stdio.h> +#include <errno.h> #include <sys/syscall.h> #include <linux/unistd.h> #include "busybox.h" #ifndef __NR_pivot_root #warning This kernel does not support the pivot_root syscall -#warning The pivot_root application is being stubbed out... -int pivot_root_main(int argc, char **argv) +#warning The pivot_root system call is being stubbed out... +int pivot_root(const char * new_root,const char * put_old) { - printf("Please recompile with a kernel supporting the pivot_root syscall.\n"); - return 0; + /* BusyBox was compiled against a kernel that did not support + * the pivot_root system call. To make this application work, + * you will need to recompile with a kernel supporting the + * pivot_root system call. + */ + fprintf(stderr, "\n\nTo make this application work, you will need to recompile\n"); + fprintf(stderr, "with a kernel supporting the pivot_root system call. -Erik\n\n"); + errno=ENOSYS; + return -1; } #else - static _syscall2(int,pivot_root,const char *,new_root,const char *,put_old) +#endif + int pivot_root_main(int argc, char **argv) @@ -28,13 +39,12 @@ int pivot_root_main(int argc, char **argv) if (argc != 3) show_usage(); - if (pivot_root(argv[1],argv[2]) < 0) - perror_msg_and_die("pivot_root"); + if (pivot_root(argv[1],argv[2]) < 0) + perror_msg_and_die("pivot_root"); return EXIT_SUCCESS; } -#endif /* diff --git a/util-linux/pivot_root.c b/util-linux/pivot_root.c index d34dcd7cc..4d7f8a3d1 100644 --- a/util-linux/pivot_root.c +++ b/util-linux/pivot_root.c @@ -3,24 +3,35 @@ * pivot_root.c - Change root file system. Based on util-linux 2.10s * * busyboxed by Evin Robertson + * pivot_root syscall stubbed by Erik Andersen, so it will compile + * regardless of the kernel being used. */ #include <stdlib.h> #include <stdio.h> +#include <errno.h> #include <sys/syscall.h> #include <linux/unistd.h> #include "busybox.h" #ifndef __NR_pivot_root #warning This kernel does not support the pivot_root syscall -#warning The pivot_root application is being stubbed out... -int pivot_root_main(int argc, char **argv) +#warning The pivot_root system call is being stubbed out... +int pivot_root(const char * new_root,const char * put_old) { - printf("Please recompile with a kernel supporting the pivot_root syscall.\n"); - return 0; + /* BusyBox was compiled against a kernel that did not support + * the pivot_root system call. To make this application work, + * you will need to recompile with a kernel supporting the + * pivot_root system call. + */ + fprintf(stderr, "\n\nTo make this application work, you will need to recompile\n"); + fprintf(stderr, "with a kernel supporting the pivot_root system call. -Erik\n\n"); + errno=ENOSYS; + return -1; } #else - static _syscall2(int,pivot_root,const char *,new_root,const char *,put_old) +#endif + int pivot_root_main(int argc, char **argv) @@ -28,13 +39,12 @@ int pivot_root_main(int argc, char **argv) if (argc != 3) show_usage(); - if (pivot_root(argv[1],argv[2]) < 0) - perror_msg_and_die("pivot_root"); + if (pivot_root(argv[1],argv[2]) < 0) + perror_msg_and_die("pivot_root"); return EXIT_SUCCESS; } -#endif /* |