Loading ...
Sorry, an error occurred while loading the content.

AW: Compile ClearSilver on System i

Expand Messages
  • Schmidt, Mihael
    After some searching on the web I found that HAVE_LOCKF is queried in Clearsilver.h. There is seems that ulock, rcfs, dict and skiplist are optional (are not
    Message 1 of 6 , Jun 11, 2009
    View Source
    • 0 Attachment
      After some searching on the web I found that HAVE_LOCKF is queried in Clearsilver.h. There is seems that ulock, rcfs, dict and skiplist are optional (are not included if not supported on the system). Is that so? Can I go on with the rest of the sources?

      Thanx for any help in advance

      Mihael

      -----Ursprüngliche Nachricht-----
      Von: ClearSilver@yahoogroups.com [mailto:ClearSilver@yahoogroups.com] Im Auftrag von Schmidt, Mihael
      Gesendet: Freitag, 12. Juni 2009 07:34
      An: ClearSilver@yahoogroups.com
      Betreff: AW: Compile ClearSilver on System i



      oh... it is util/ulocks.c (not util.ulock.c)

      I compiled clearsilver on a linux system and took the cs_config.h from it (and modified it a little bit). Now i see that there is a setting for the availability of lockf() :

      /* Does your system have lockf ? */
      /* #define HAVE_LOCKF 1 */

      On the linux system there is of course lockf() but not on System i. So I put it in comments. But it does not seem to do anything. Haven't found anything in ulocks.c or ulocks.h.

      Can I somehow use fcntl() instead of lockf() as a workaround?

      Any idea?

      Mihael

      -----Ursprüngliche Nachricht-----
      Von: ClearSilver@yahoogroups.com <mailto:ClearSilver%40yahoogroups.com> [mailto:ClearSilver@yahoogroups.com <mailto:ClearSilver%40yahoogroups.com> ] Im Auftrag von Schmidt, Mihael
      Gesendet: Freitag, 12. Juni 2009 07:17
      An: ClearSilver@yahoogroups.com <mailto:ClearSilver%40yahoogroups.com>
      Betreff: AW: Compile ClearSilver on System i

      -- Schmidt, Mihael wrote:
      > Question: Why is dict.c calling nerr_raise with only 2 parm. Shouldn't
      it be
      > three parms (error type, format string and error message)? I
      definitely got
      > something wrong but I don't know what?

      nerr_raise() is setup to work like the printf() family of functions. For
      example, you might have:

      nerr_raise(NERR_ASSERT, "problematic value %d", local_variable_int);

      Because the statement you referenced has no % formatting, it has no
      arguments.
      nerr_raise(NERR_ASSERT, "value or new are NULL");

      Mihael: ... and that was my problem. The ILE C compiler expects to have
      at least one variable argument if __VA_ARGS__ is used. I added an empty
      string and it works now, like:

      nerr_raise(NERR_ASSERT, "value or new are NULL", "");

      But now I got another problem: The lockf() function is not available on
      System i for ILE C. Is there a way to replace this function? A
      workaround?

      lockf() is used in util/ulock.c, function fLock and fFind.

      Any ideas would be great.

      Thanx in advance.

      Mihael
    • Brandon Long
      Yes, they aren t necessary for the template system or cgi code, they re just extra. Brandon ... -- This universe never did make sense; I suspect it was built
      Message 2 of 6 , Jun 12, 2009
      View Source
      • 0 Attachment
        Yes, they aren't necessary for the template system or cgi code, they're
        just extra.

        Brandon

        On 06/12/09 Schmidt, Mihael uttered the following other thing:
        > After some searching on the web I found that HAVE_LOCKF is queried in Clearsilver.h. There is seems that ulock, rcfs, dict and skiplist are optional (are not included if not supported on the system). Is that so? Can I go on with the rest of the sources?
        >
        > Thanx for any help in advance
        >
        > Mihael
        >
        > -----Ursprüngliche Nachricht-----
        > Von: ClearSilver@yahoogroups.com [mailto:ClearSilver@yahoogroups.com] Im Auftrag von Schmidt, Mihael
        > Gesendet: Freitag, 12. Juni 2009 07:34
        > An: ClearSilver@yahoogroups.com
        > Betreff: AW: Compile ClearSilver on System i
        >
        >
        >
        > oh... it is util/ulocks.c (not util.ulock.c)
        >
        > I compiled clearsilver on a linux system and took the cs_config.h from it (and modified it a little bit). Now i see that there is a setting for the availability of lockf() :
        >
        > /* Does your system have lockf ? */
        > /* #define HAVE_LOCKF 1 */
        >
        > On the linux system there is of course lockf() but not on System i. So I put it in comments. But it does not seem to do anything. Haven't found anything in ulocks.c or ulocks.h.
        >
        > Can I somehow use fcntl() instead of lockf() as a workaround?
        >
        > Any idea?
        >
        > Mihael
        >
        > -----Ursprüngliche Nachricht-----
        > Von: ClearSilver@yahoogroups.com <mailto:ClearSilver%40yahoogroups.com> [mailto:ClearSilver@yahoogroups.com <mailto:ClearSilver%40yahoogroups.com> ] Im Auftrag von Schmidt, Mihael
        > Gesendet: Freitag, 12. Juni 2009 07:17
        > An: ClearSilver@yahoogroups.com <mailto:ClearSilver%40yahoogroups.com>
        > Betreff: AW: Compile ClearSilver on System i
        >
        > -- Schmidt, Mihael wrote:
        > > Question: Why is dict.c calling nerr_raise with only 2 parm. Shouldn't
        > it be
        > > three parms (error type, format string and error message)? I
        > definitely got
        > > something wrong but I don't know what?
        >
        > nerr_raise() is setup to work like the printf() family of functions. For
        > example, you might have:
        >
        > nerr_raise(NERR_ASSERT, "problematic value %d", local_variable_int);
        >
        > Because the statement you referenced has no % formatting, it has no
        > arguments.
        > nerr_raise(NERR_ASSERT, "value or new are NULL");
        >
        > Mihael: ... and that was my problem. The ILE C compiler expects to have
        > at least one variable argument if __VA_ARGS__ is used. I added an empty
        > string and it works now, like:
        >
        > nerr_raise(NERR_ASSERT, "value or new are NULL", "");
        >
        > But now I got another problem: The lockf() function is not available on
        > System i for ILE C. Is there a way to replace this function? A
        > workaround?
        >
        > lockf() is used in util/ulock.c, function fLock and fFind.
        >
        > Any ideas would be great.
        >
        > Thanx in advance.
        >
        > Mihael
        >
        >
        >
        >
        >
        >
        > ------------------------------------
        >
        > Yahoo! Groups Links
        >
        >
        >
        --
        "This universe never did make sense; I suspect it was built on a
        government contract." -- Robert A. Heinlein
        http://www.fiction.net/blong/
      Your message has been successfully submitted and would be delivered to recipients shortly.