diff -Nur buffer-1.19/sem.c buffer-1.19_buffer-1.19/sem.c --- buffer-1.19/sem.c 2016-02-07 20:07:23.016441596 +0100 +++ buffer-1.19_buffer-1.19/sem.c 2016-02-07 20:09:39.850435663 +0100 @@ -28,13 +28,14 @@ #include #include +#include #include #include #include #include #include "sem.h" -#if defined(SYS5) || defined(ultrix) || defined(_AIX) +#if defined(SYS5) || defined(ultrix) || defined(_AIX) || defined _SEM_SEMUN_UNDEFINED union semun { int val; struct semid_ds *buf; @@ -95,7 +96,7 @@ return sem; } -static +static void do_sem( sem_id, pbuf, err ) int sem_id; struct sembuf *pbuf; @@ -152,7 +153,7 @@ if( sem_id == -1 ) return; - if( semctl( sem_id, 0, IPC_RMID, NULL ) == -1 ){ + if( semctl( sem_id, 0, IPC_RMID, (union semun) 0 ) == -1 ){ report_proc(); perror( "internal error, failed to remove semaphore" ); }