X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=pivot_root.c;h=4d7f8a3d10da4841fe4faa77422d0f61a3b83ba0;hb=3a6da8c183142a2681a2382b63e970f457cf807b;hp=d7b80d7493a7d50f0c522b4de68790b2eca44ab3;hpb=cbe31dace5fb24304694d399b9eb267fbe752516;p=oweals%2Fbusybox.git diff --git a/pivot_root.c b/pivot_root.c index d7b80d749..4d7f8a3d1 100644 --- a/pivot_root.c +++ b/pivot_root.c @@ -3,18 +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 #include +#include #include #include #include "busybox.h" #ifndef __NR_pivot_root -#error Sorry, but this kernel does not support the pivot_root syscall +#warning This kernel does not support the pivot_root syscall +#warning The pivot_root system call is being stubbed out... +int pivot_root(const char * new_root,const char * put_old) +{ + /* 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 -static _syscall2(int,pivot_root,const char *,new_root,const char *,put_old) int pivot_root_main(int argc, char **argv) @@ -22,8 +39,8 @@ 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;