diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rwxr-xr-x | configure | 21 | ||||
-rw-r--r-- | eval.c | 6 |
3 files changed, 35 insertions, 0 deletions
@@ -1,5 +1,13 @@ 2014-08-07 Kaz Kylheku <kaz@kylheku.com> + No getppid on MinGW. + + * configure: Add test for getppid. + + * eval.c (getppid_wrap, eval_init): use HAVE_GETPPID + +2014-08-07 Kaz Kylheku <kaz@kylheku.com> + * parser.l (yyerr): Function removed; it is not used in the lexer, and converted to a macro in the parser. @@ -1406,6 +1406,27 @@ else printf "no\n" fi +printf "Checking for POSIX getppid ... " + +cat > conftest.c <<! +#include <sys/types.h> +#include <unistd.h> + +int main(int argc, char **argv) +{ + pid_t p = getppid(); + return 0; +} +! + +if conftest ; then + printf "yes\n" + printf "#define HAVE_GETPPID 1\n" >> config.h + have_unistd=y +else + printf "no\n" +fi + # # fcntl # @@ -3295,17 +3295,21 @@ static val usleep_wrap(val usec) } #if HAVE_UNISTD_H + static val getpid_wrap(void) { return num(getpid()); } +#if HAVE_GETPPID static val getppid_wrap(void) { return num(getppid()); } #endif +#endif + static val env_hash(void) { val env_strings = env(); @@ -4011,8 +4015,10 @@ void eval_init(void) reg_fun(intern(lit("usleep"), user_package), func_n1(usleep_wrap)); #if HAVE_UNISTD_H reg_fun(intern(lit("getpid"), user_package), func_n0(getpid_wrap)); +#if HAVE_GETPPID reg_fun(intern(lit("getppid"), user_package), func_n0(getppid_wrap)); #endif +#endif reg_fun(intern(lit("env"), user_package), func_n0(env)); reg_fun(intern(lit("env-hash"), user_package), func_n0(env_hash)); |