[Openais] [Corosync] Patches to fix BSD support
Steven Dake
sdake at redhat.com
Tue Jun 9 11:25:34 PDT 2009
On Wed, 2009-06-10 at 17:22 +0200, Jérôme Flesch wrote:
> >>>>>> I think the LDL part needs to be in some user defined flag in the
> >>>>>> configure.ac. The #if BSD with defining LDL is a bit hacky. I'm not
> >>>>>> sure where it should go however, so perhaps Jim or Fabio could
> >>>>>> comment.
> >>>>>> If Jim or Fabio give that part the thumbs up, then this patch
> >>>>>> should be
> >>>>>> good to go in.
> >>>>>>
> >>>>>> the if defined semun wont work because unions are not defines. That
> >>>>>> entire code segment is wrong. Can you try the attached patch on
> >>>>>> bsd for
> >>>>>> me?
> >>>>>>
> >>>>> I think you misunderstood my problem: semun *is* already defined on
> >>>>> FreeBSD, but the #if !defined(semun) doesn't work on my system
> >>>>> (probably due to a GCC version difference ?) and the compiler ends
> >>>>> up with a redefinition of semun.
> >>>>>
> >>>>> Is there actually any system where semun is not already defined ?
> >>>>>
> >>>>>
> >>>> Linux doesn't define it and Solaris doesn't even have a description of
> >>>> the definition. Do you have _SEM_SEMUN_UNDEFINED in your header files?
> >>>> Or SEM_SEMUN_DEFINED? That can be used to do an if defined test.
> >>>>
> >>> I haven't found any of them in the FreeBSD headers :/
> >>>
> >>
> >> I believe the proper thing to do is put the union in ifdefs around
> >> _SEM_SEMUN_UNDEFINED and define them in configure.ac for Solaris.
> >>
> >> Can you try this patch on your os?
> >>
> > Works for me :)
> >
> Btw, just so you know: I've finally been able to make our programs work
> with Corosync (remaining problems were actually due to things specific
> to our devices). Everything looks fine now and OpenAIS worked
> out-of-the-box :)
>
Thats great news. Mind if I ask which services you are using?
Regards
-steve
>
>
> >
> >
> >> Regards
> >> -steve
> >>
> >>>> Regards
> >>>> -steve
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>> plain text document attachment (patch-fix-bsd-compilation)
> >>> diff --git a/configure.ac b/configure.ac
> >>> index de1ac78..b0b7c87 100644
> >>> --- configure.ac
> >>> +++ configure.ac
> >>> @@ -194,6 +194,7 @@ AC_ARG_WITH([socket-dir],
> >>> # OS detection
> >>> # THIS SECTION MUST DIE!
> >>> CP=cp
> >>> +OS_LDL="-ldl"
> >>> case "$host_os" in
> >>> *linux*)
> >>> AC_DEFINE_UNQUOTED([COROSYNC_LINUX], [1],
> >>> @@ -225,11 +226,14 @@ case "$host_os" in
> >>> *bsd*)
> >>> AC_DEFINE_UNQUOTED([COROSYNC_BSD], [1],
> >>> [Compiling for BSD platform])
> >>> + AC_DEFINE_UNQUOTED([MAP_ANONYMOUS], [MAP_ANON],
> >>> + [Shared memory define for Darwin platform])
> >>> OS_CFLAGS=""
> >>> OS_CPPFLAGS="-I/usr/local/include"
> >>> OS_LDFLAGS="-L/usr/local/lib"
> >>> OS_DYFLAGS="-export-dynamic"
> >>> DARWIN_OPTS=""
> >>> + OS_LDL=""
> >>> ;;
> >>> *solaris*)
> >>> AC_DEFINE_UNQUOTED([COROSYNC_SOLARIS], [1],
> >>> diff --git a/lib/Makefile.am b/lib/Makefile.am
> >>> index 37afffd..31e8664 100644
> >>> --- lib/Makefile.am
> >>> +++ lib/Makefile.am
> >>> @@ -114,7 +114,7 @@ libconfdb.so.$(SONAME): confdb.o sa-confdb.o
> >>> ../lcr/lcr_ifact.o libcoroipcc.so.$
> >>> $(CC) -shared -o $@ \
> >>> -Wl,-soname=libconfdb.so.$(SOMAJOR) \
> >>> -Wl,-version-script=$(srcdir)/libconfdb.versions \
> >>> - $^ $(LDFLAGS) $(OS_DYFLAGS) -ldl $(AM_LDFLAGS)
> >>> + $^ $(LDFLAGS) $(OS_DYFLAGS) $(OS_LDL) $(AM_LDFLAGS)
> >>> ln -sf libconfdb.so.$(SONAME) libconfdb.so
> >>> ln -sf libconfdb.so.$(SONAME) libconfdb.so.$(SOMAJOR)
> >>>
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Openais mailing list
> > Openais at lists.linux-foundation.org
> > https://lists.linux-foundation.org/mailman/listinfo/openais
More information about the Openais
mailing list