propose-patch
[org.ibex.core.git] / src / org / ibex / plat / Linux.cc
1 #include <stdint.h>
2 #include "X11.cc"
3
4 #include <org/ibex/plat/Linux.h>
5
6 // we love libgcj!
7 extern const char **_Jv_argv;
8 extern int _Jv_argc;
9
10 void org::ibex::plat::Linux::fixEnvironment() {
11     // see http://lists.debian.org/debian-glibc/2003/debian-glibc-200311/msg00647.html
12     const char* ld_assume_kernel = getenv("LD_ASSUME_KERNEL");
13     if (ld_assume_kernel == NULL || strcmp("2.4.1", ld_assume_kernel)) {
14         int result;
15         printf("respawning self (%s) with LD_ASSUME_KERNEL=2.4.1\n", _Jv_argv[0]);
16         setenv("LD_ASSUME_KERNEL", "2.4.1", 1);
17         result = execvp(_Jv_argv[0], (char* const*)((void*)_Jv_argv));
18         printf("execvp() failed with error code %d\n", result);
19         exit(-1);
20     }
21 }