Thanks for the quick responses Dave and Dejan. Dejans suggested fix for the 
structure worked. 

I am compiling with SunStudio11 and I can see that is not going to work. I will 
see about getting gcc loaded on the system. I think we have 3.3 and 4.0 
somewhere about.

Solaris 10 is an impressive OS, more people should try it.

Thanks for the help.

Ken

>Hi,
>
>On Mon, Feb 25, 2008 at 10:18:42AM +0000, David Lee wrote:
>> On Fri, 22 Feb 2008 [EMAIL PROTECTED] wrote:
>> 
>> > Well I got version 2.1.3 of Heartbeat and tried that on Solaris 10 and
>> > it had more issues then 2.0.7.
>> 
>> Firstly, great to see a Solaris person using heartbeat; welcome aboard!
>> 
>> 
>> > All have been in lib/clplumbimg so far and most were;
>> > undefined symbols __FUNCTION__
>> > void function can not return value
>> >
>> > which are easy to fix.
>> 
>> Hold on...
>> 
>> For many years, the heartbeat source code has compiled, built (and even,
>> in parts, run) reasonably well on Solaris.  And we've tried to make sure
>> that the code is portable in principle (and to Solaris in particular).
>> 
>> So a systematic problem such as that you describe suggests a deeper issue,
>> so let's be cautious about rushing a fix.
>> 
>> A guess: What compiler are you using?  Although we have made the effort to
>> make the code portable (in principle) to any UNIX-like platform (including
>> Solaris in particular) we have, for pragmatic reasons, assumed that the
>> compiler is some version of "gcc".  If you are using non-gcc (e.g. Sun's
>> Studio) then you may get problems.
>> 
>> And other things may crawl out of the wordwork (e.g. there may be some
>> GNU-make-isms).
>> 
>> Yes, we aim strongly for portability to any UNIX-like platform.  But at
>> present heartbeat still assumes the availability of GNU tools (gcc, make)
>> on that platform.
>> 
>> 
>> Let's take two different aspects:
>> 
>> 1. For you to get something working, then switch to gcc.
>> 
>> 2. To get it working under Sun's compilers, then we'll be happy to accept
>> patches.  But before you spend too much effort on detailed patches,
>> discuss the principles over on the "linux-ha-dev" list, so that we can
>> ensure that the principles behind those patches are optimal.  (One of the
>> principles is to point the compiler towards "ANSI-C" flavour.)
>> 
>> 
>> > It does not seem that REBOOT1ARG gets set correctly.
>> 
>> That's a known problem with some new code that appeared shortly before
>> 2.1.3 was released.  About a week ago, I fixed this in the mercurial
>> repository.  So future releases should be OK.
>> 
>> For the moment, fudge it.  Or if you're happy to use the "development"
>> branch of the repository, use that.  Or I could send you the patch.
>> 
>> 
>> > The one that has me stopped is in GSource.c
>> >
>> > static GSourceFuncs Gmain_timeout_funcs = {
>> >   prepare:  Gmain_timeout_prepare,
>> >   check:    Gmain_timeout_check,
>> >   dispatch: Gmain_timeout_dispatch,
>> > };
>> >
>> > Not sure what to do with that.
>> 
>> Wow!  I've never seen that sort of syntax before.  And I've just checked
>> with two highly experienced C programmers here... they, too, have never
>> seen such syntax.
>> 
>> Weird.  That must be some sort of gcc-specific code.  (Or C++?)
>> 
>> Although my earlier statements mentioned that pragmatically we are 'gcc'
>> in practice, nevertheless we try to be ANSI-C in theory.
>> 
>> So my personal view is that that declaration should be rewritten to be
>> "standard" C.  (Not gcc-specific, not C++, but goold old K&R+ANSI C.)
>> 
>> Pause... Let's check the K&R book, ANSI-C edition.  Is this some sort of
>> bit-field?  Even so, the book then goes on to warn about such things.  So
>> even if this is, technically, ANSI-C, I doubt that it is "best practice".
>> 
>> Can someone briefly describe what that declaration is wishing to achieve?
>
>If it's rewritten as
>
>static GSourceFuncs Gmain_timeout_funcs = {
>  Gmain_timeout_prepare,
>  Gmain_timeout_check,
>  Gmain_timeout_dispatch,
>};
>
>then it should have the same meaning. I've seen such a notation
>before, but have no idea whether it's gnuism or not. It's about
>initializing members of a struct, i.e. the ids before colon are
>names of the struct members.
>
>Thanks,
>
>Dejan
>
>> Then we can set about understanding it and seeing if it can be made more
>> reliable.
>> 
>> Hope that helps.
>> 
>> -- 
>> 
>> :  David Lee                                I.T. Service          :
>> :  Senior Systems Programmer                Computer Centre       :
>> :  UNIX Team Leader                         Durham University     :
>> :                                           South Road            :
>> :  http://www.dur.ac.uk/t.d.lee/            Durham DH1 3LE        :
>> :  Phone: +44 191 334 2752                  U.K.                  :
>> _______________________________________________
>> Linux-HA mailing list
>> [email protected]
>> http://lists.linux-ha.org/mailman/listinfo/linux-ha
>> See also: http://linux-ha.org/ReportingProblems
>
>

_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to