diff options
Diffstat (limited to 'arch/um/os-Linux/main.c')
| -rw-r--r-- | arch/um/os-Linux/main.c | 21 | 
1 files changed, 13 insertions, 8 deletions
diff --git a/arch/um/os-Linux/main.c b/arch/um/os-Linux/main.c index eee69b9f52c..df9191acd92 100644 --- a/arch/um/os-Linux/main.c +++ b/arch/um/os-Linux/main.c @@ -10,17 +10,18 @@  #include <signal.h>  #include <string.h>  #include <sys/resource.h> -#include "as-layout.h" -#include "init.h" -#include "kern_constants.h" -#include "kern_util.h" -#include "os.h" -#include "um_malloc.h" +#include <as-layout.h> +#include <init.h> +#include <kern_util.h> +#include <os.h> +#include <um_malloc.h>  #define PGD_BOUND (4 * 1024 * 1024)  #define STACKSIZE (8 * 1024 * 1024)  #define THREAD_NAME_LEN (256) +long elf_aux_hwcap; +  static void set_stklim(void)  {  	struct rlimit lim; @@ -78,7 +79,7 @@ static void install_fatal_handler(int sig)  	}  } -#define UML_LIB_PATH	":/usr/lib/uml" +#define UML_LIB_PATH	":" OS_LIB_PATH "/uml"  static void setup_env_path(void)  { @@ -122,6 +123,8 @@ int __init main(int argc, char **argv, char **envp)  	setup_env_path(); +	setsid(); +  	new_argv = malloc((argc + 1) * sizeof(char *));  	if (new_argv == NULL) {  		perror("Mallocing argv"); @@ -142,11 +145,13 @@ int __init main(int argc, char **argv, char **envp)  	 */  	install_fatal_handler(SIGINT);  	install_fatal_handler(SIGTERM); -	install_fatal_handler(SIGHUP); +#ifdef CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA  	scan_elf_aux(envp); +#endif  	do_uml_initcalls(); +	change_sig(SIGPIPE, 0);  	ret = linux_main(argc, argv);  	/*  | 
