In IRIX 5.3 the cc is awfully confused about the prototype
Jarkko Hietaniemi [Sun, 30 Mar 2003 08:59:24 +0000 (08:59 +0000)]
of select().

p4raw-id: //depot/perl@19086

hints/irix_5.sh
pp_sys.c

index f895bcc..70ea24f 100644 (file)
@@ -12,7 +12,11 @@ i_time='define'
 
 case "$cc" in
 *gcc*) ccflags="$ccflags -D_BSD_TYPES" ;;
-*) ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 4000" ;;
+*) ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 4000"
+# Otherwise the cc thinks that a struct timeval * is not equivalent to
+# a struct timeval *.  Yeah, you read that right.
+pp_sys_cflags='ccflags="$ccflags -DPERL_IRIX5_SELECT_TIMEVAL_VOID_CAST"'
+   ;;
 esac
 
 lddlflags="-shared"
index 5c8fd07..3c22a76 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -1073,6 +1073,9 @@ PP(pp_sselect)
        (Select_fd_set_t) fd_sets[1],
        (Select_fd_set_t) fd_sets[2],
        (Select_fd_set_t) fd_sets[3],
+#ifdef PERL_IRIX5_SELECT_TIMEVAL_VOID_CAST
+       (void*) /* Workaround for a compiler bug. */
+#endif
        tbuf);
     for (i = 1; i <= 3; i++) {
        if (fd_sets[i]) {