X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=pivot_root.c;h=4d7f8a3d10da4841fe4faa77422d0f61a3b83ba0;hb=3a6da8c183142a2681a2382b63e970f457cf807b;hp=92fe4aeabe2a4e1479384b0396d0623161280806;hpb=6fd8c664c1bcb44429b81444be640ff08cac3702;p=oweals%2Fbusybox.git diff --git a/pivot_root.c b/pivot_root.c index 92fe4aeab..4d7f8a3d1 100644 --- a/pivot_root.c +++ b/pivot_root.c @@ -3,27 +3,44 @@ * 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 "busybox.h" #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) { if (argc != 3) - usage(pivot_root_usage); + 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;