[perl #127533] only test semctl() if we have everything needed to use it
authorTony Cook <tony@develop-help.com>
Tue, 1 Mar 2016 00:35:21 +0000 (11:35 +1100)
committerTony Cook <tony@develop-help.com>
Tue, 8 Mar 2016 22:26:12 +0000 (09:26 +1100)
In a FreeBSD jail, the semctl() entry point might exist, but can be
disabled by policy, when it is disabled, the Configure code that
tests for the different structures that can be supplied to semctl()
fail.

The code that implements semctl() for perl treats semctl() as
unimplemented if neither structure is available, so avoid testing
semctl() if the structures couldn't be detected.

t/io/semctl.t

index 53ae296..2e970a7 100644 (file)
@@ -10,6 +10,8 @@ use strict;
 use warnings;
 
 skip_all('no SysV semaphores on this platform') if !$Config{d_sem};
 use warnings;
 
 skip_all('no SysV semaphores on this platform') if !$Config{d_sem};
+skip_all('SysV semaphore structures not detected')
+    if !$Config{d_semctl_semid_ds} && !$Config{d_semctl_semun};
 
 my @warnings;
 {
 
 my @warnings;
 {