Does anyone know the status of the "semctl" call on sparc-64? Or, in
somewhat longer form:

The LAM-MPI (message passing for multiprocessors) package likes to
use shared memory & semaphores in some of its modes of operations. On
my Sparc20-SMP, this works fine, but on U2, U60, the atomic setvalue
calls "semctl(id,offest,SETVAL,..)" don't set values.

I am including a little test case extracted from the LAM-MPI code, and
I'd appreciate it if someone with a similar system could check this so I
can tell if this is a local problem or something more general in the library.

Second, you can use the ipcs command (ipcs -s -i <semaphore-id>) to
verify what the program is doing.

Here's the test case:

Code:

/*
* sysv-semaphore test.
* This program should allocate three semaphores,
* set their values to something,
* read those values back and print them,
* destroy the semaphores,
* and exits.
*
* On my SS20-2.4.21-SMP, it does just that.
*
* On Ultra2, Ultra60-2.4.21-SMP, for me it sets no value
* into the semaphore.
*
* HOWEVER, the SETALL call =does= set in values!
* */
#include <stdio.h>
#include <sys/sem.h>