NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Corosync on NetBSD



Hi,

I tried to make the Corosync 1.2.8 cluster software work on NetBSD 5.0.2.
There were some issues to fix in the source and make files. One can compile
and run it then. Unfortunately it doesn´t do anything except eating 100%
CPU. I sent a list with the build issues to the Corosync mailing list, as
there were:



=> lib/coroipcc.c
-There are some "#ifdef COROSYNC_BSD" statements which include some
madvise() calls. There is a MADV_NOSYNC flag being used which is only
available on FreeBSD. I commented these lines out.
-There is a "semun" union requiered which is not defined in "sys/sem.h" on
NetBSD, in contrast to FreeBSD. I had to add it to this file:

        union semun {
                int     val;            /* value for SETVAL */
                struct  semid_ds *buf;  /* buffer for IPC_STAT & IPC_SET */
                u_short *array;         /* array for GETALL & SETALL */
        };

=>exec/totemip.c
-There is an #include for <net/if_var.h>. This file is not present on
NetBSD, so I just dropped that.

=>exec/logsys.c
-The same problem with madvise() and MADV_NOSYNC.

=>exec/coroipcs.c
-Once more the madvise() issue.
-And once more a missing semun union.

=>include/corosync/totem/
totemip.h
-The compiler complained about uint16_t here (line 81). Adding an #include
for <sys/types.h> made this work.

=>lib/Makefile and exec/Makefile
-Both files contain "$(CP) -a" statements which should only work with GNU cp
AFAIK. As a first attempt I changed that to "-p".

=>Build environment:
-One needs to install GNU make und GNU groff, e.g. from pkgsrc (as I did).
GNU groff 1.19.2 is also available on NetBSD, but that fails.




Has anybody else tried this yet?

Regards,

Stephan


Home | Main Index | Thread Index | Old Index