33 lines
823 B
Diff
33 lines
823 B
Diff
|
---
|
||
|
src/_clisp.c | 11 +++++++++++
|
||
|
1 file changed, 11 insertions(+)
|
||
|
|
||
|
diff --git a/src/_clisp.c b/src/_clisp.c
|
||
|
--- a/src/_clisp.c
|
||
|
+++ b/src/_clisp.c
|
||
|
@@ -48,6 +48,11 @@
|
||
|
/* Declare stderr, perror(). */
|
||
|
# include <stdio.h>
|
||
|
|
||
|
+#if defined(HAS_PERSONALITY) && (HAS_PERSONALITY > 0)
|
||
|
+/* Declare syscall, PER_LINUX32. */
|
||
|
+# include <sys/personality.h>
|
||
|
+#endif
|
||
|
+
|
||
|
#if defined(WIN32_NATIVE)
|
||
|
# include <windows.h>
|
||
|
int shell_quote (char * dest, const char * source);
|
||
|
@@ -435,6 +440,12 @@ int main (int argc, char* argv[])
|
||
|
}
|
||
|
#undef W32ERR
|
||
|
#else
|
||
|
+#if defined(HAS_PERSONALITY) && (HAS_PERSONALITY > 0)
|
||
|
+ if (personality(PER_LINUX32)) {
|
||
|
+ perror(program_name);
|
||
|
+ return 1;
|
||
|
+ }
|
||
|
+#endif
|
||
|
execv(executable,new_argv);
|
||
|
{ /* execv() returns only if there was an error. */
|
||
|
int saved_errno = errno;
|