summaryrefslogtreecommitdiff
path: root/doio.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>1999-04-13 10:21:33 +0000
committerJarkko Hietaniemi <jhi@iki.fi>1999-04-13 10:21:33 +0000
commit39398f3f0ecd7e1d0d9f68b83052e76ea7150b75 (patch)
treec3b4cc1e1f6ed0afc23f17572ea238ca4c261d97 /doio.c
parentd90129d62fd2d94824998b5a6e040be6d7c290fd (diff)
downloadperl-39398f3f0ecd7e1d0d9f68b83052e76ea7150b75.tar.gz
Croak if no known ways to semctl() (don't assume union semun).
p4raw-id: //depot/cfgperl@3256
Diffstat (limited to 'doio.c')
-rw-r--r--doio.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/doio.c b/doio.c
index c0667ef235..664bd15a80 100644
--- a/doio.c
+++ b/doio.c
@@ -1499,6 +1499,7 @@ do_ipcctl(I32 optype, SV **mark, SV **sp)
#endif
#ifdef HAS_SEM
case OP_SEMCTL:
+#ifdef Semctl
if (cmd == IPC_STAT || cmd == IPC_SET)
infosize = sizeof(struct semid_ds);
else if (cmd == GETALL || cmd == SETALL)
@@ -1514,6 +1515,9 @@ do_ipcctl(I32 optype, SV **mark, SV **sp)
/* "short" is technically wrong but much more portable
than guessing about u_?short(_t)? */
}
+#else
+ croak("%s not implemented", PL_op_desc[optype]);
+#endif
break;
#endif
#if !defined(HAS_MSG) || !defined(HAS_SEM) || !defined(HAS_SHM)
@@ -1555,10 +1559,14 @@ do_ipcctl(I32 optype, SV **mark, SV **sp)
#endif
#ifdef HAS_SEM
case OP_SEMCTL: {
+#ifdef Semctl
union semun unsemds;
unsemds.buf = (struct semid_ds *)a;
ret = Semctl(id, n, cmd, unsemds);
+#else
+ croak("%s not implemented", PL_op_desc[optype]);
+#endif
}
break;
#endif