[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