summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Conté <tom@fr.uu.net>1999-10-06 21:56:29 +0200
committerJarkko Hietaniemi <jhi@iki.fi>1999-10-09 05:31:26 +0000
commitdbba660d3c41b689165c852b880d602ed8d35700 (patch)
treeabb75dec836efcc1b198c8bc0cb85c19a0fc85dd
parent67a7a734167637ed8f07bae79c17844ba1049dc0 (diff)
downloadperl-dbba660d3c41b689165c852b880d602ed8d35700.tar.gz
While awaiting a good test program to detect the broken gcc.
To: <jhi@iki.fi> Cc: <perl5-porters@perl.org> Subject: Re: [ID 19990825.007] test t/lib/ipc_sysv.t failing under irix 6.4 Message-ID: <000a01bf1024$1d938f20$252ad0d4@eng.iway.fr> p4raw-id: //depot/cfgperl@4322
-rw-r--r--hints/irix_6.sh2
-rw-r--r--perl.h15
2 files changed, 14 insertions, 3 deletions
diff --git a/hints/irix_6.sh b/hints/irix_6.sh
index 288138505e..2c14041198 100644
--- a/hints/irix_6.sh
+++ b/hints/irix_6.sh
@@ -130,6 +130,8 @@ malloc_cflags='ccflags="-DSTRICT_ALIGNMENT $ccflags"'
ldflags="$ldflags -mabi=64 -L/usr/lib64"
lddlflags="$lddlflags -mabi=64"
;;
+ *) ccflags="$ccflags -DIRIX32_SEMUN_BROKEN_BY_GCC"
+ ;;
esac
;;
*)
diff --git a/perl.h b/perl.h
index 60881c0e6c..e8c9c1ec82 100644
--- a/perl.h
+++ b/perl.h
@@ -3154,12 +3154,21 @@ typedef struct am_table_short AMTS;
# include <sys/sem.h>
# ifndef HAS_UNION_SEMUN /* Provide the union semun. */
union semun {
- int val;
- struct semid_ds *buf;
- unsigned short *array;
+ int val;
+ struct semid_ds *buf;
+ unsigned short *array;
};
# endif
# ifdef USE_SEMCTL_SEMUN
+# ifdef IRIX32_SEMUN_BROKEN_BY_GCC
+ union gccbug_semun {
+ int val;
+ struct semid_ds *buf;
+ unsigned short *array;
+ char __dummy[5];
+ };
+# define semun gccbug_semun
+# endif
# define Semctl(id, num, cmd, semun) semctl(id, num, cmd, semun)
# else
# ifdef USE_SEMCTL_SEMID_DS