True, maybe it will compile now. But I doubt you will get a proper solution.

 

From: Andreas Fink [mailto:[email protected]] 
Sent: Monday, 20 August, 2012 23:50
To: Michael Black
Cc: Rene Kluwen; [email protected]
Subject: Re: (RESOLVED) Make Gateway Errors

 

that doesn't necessary mean it will work... va_args are sometimes passed by
value, sometimes passed by reference. it depends on the OS.

 

 

On 20.08.2012, at 23:46, Michael Black <[email protected]> wrote:





Thanks to Andreas and Rene for helping me fix this error:

When I tried Rene's suggestion, i got an error similar to the original one.
I tried to make 'args' pass by reference when eval'd in the if statement,
and now it works:

gwlib/log.c:434
     if (arg == NULL)   //orig 
     if (&args == NULL) {  //corrected

Sorry for wasting your time

Gratefully,

Mike

On Aug 20, 2012 4:18 PM, "Rene Kluwen" <[email protected]> wrote:

I am not into this stuff at all.

But what if you change line 434 to:

 

if ((void *)args == NULL)

 

Probably you will run into other errors as well. But if this is the only
thing, here goes.

 

== Rene

 

From: [email protected] [mailto:[email protected]] On
Behalf Of Michael Black
Sent: Monday, 20 August, 2012 20:41
To: [email protected]
Subject: Fwd: Re: Make Gateway Errors

 

Hello to all,

I was working with Andreas regarding an error i received while attempting to
make Kannel 1.4. I am using ubuntu maverick, 2.6.32.21. I followed the
instructions in the online READM. All correspondence is forwarded, below.

---------- Forwarded message ----------
From: "Michael Black" <[email protected]>
Date: Aug 20, 2012 11:29 AM
Subject: Re: Make Gateway Errors
To: "Andreas Fink" <[email protected]>

Also, im using ubuntu maverick

So you should be getting the stdarg.h any minute now...you said it was an
easy fix? Im guessing it wasnt as easy as editing a few lines of stdarg.h,
eh?

I scanned some of the source so (as far as i know), i cant be rid of
kannel_syslog, and in the gwlib/log.c it uses it extensively, so you didnt
comment anything out in the log.c, right?

Honestly, i really appreciate your help!

On Aug 20, 2012 11:13 AM, "Andreas Fink" <[email protected]> wrote:

I've run into this problem when porting gwlib to another platform. it has to
do with how the system deals with standard arguments. on some va-list is a
pointer, on others its some kind of struct etc.

I dont remember exactly how I solved it but its realtively easy to do. And
actually I thought configure does it but apparently it doesnt

 

On 20.08.2012, at 17:05, Michael Black <[email protected]> wrote:

 

Also, i followed the instructions in the README 
http://www.kannel.org/download/1.4.3/README-1.4.3

./configure
touch .depend 
make depend 
make (stuck here)

On Aug 20, 2012 10:57 AM, "Michael Black" <[email protected]> wrote:

# uname -a
Linux localhost 2.6.32.21-gd2764ed #1 PREEMPT Tue Oct 26 16:04:03 CST 2010
armv7l GNU/Linux

On Aug 20, 2012 10:09 AM, "Andreas Fink" <[email protected]> wrote:

what OS are you using?

 

On 20.08.2012, at 16:08, Michael Black <[email protected]> wrote:

 

Yeah, i ran ./configure the first time, i then removed the *.o's/linkeds and
ran make again but im getting the same error

On Aug 20, 2012 9:15 AM, "Andreas Fink" <[email protected]> wrote:

did you run ./configure ?

I've compiled kannel on Linux ARM before (on a pandaboard running Ubuntu)
and had no problem with it.

./configure checks for various va_list variants. 

 

On 20.08.2012, at 15:12, Michael Black <[email protected]> wrote:

 

Hello.

I am currently trying to build kannel from source (on arm, if i wasnt then
I'd use the i386 binary). However, make says there's an error:

gwlib/log.c: 434: error: invalid operations to binary == (have 'va_list' and
'void *')

Line 434 is '(if args == NULL)'
Excert below:

static void PRINTFLIKE(1,0) kannel_syslog(char *format, va_list args, int
level)
{
    char buf[4096]; /* Trying to syslog more than 4K could be bad */
    int translog;

    if (level >= sysloglevel && dosyslog) {
        if (args == NULL) {
            strncpy(buf, format, sizeof(buf));
            buf[sizeof(buf) - 1] = '\0';
        } else {
            vsnprintf(buf, sizeof(buf), format, args);
            /* XXX vsnprint not 100% portable */
        }

        switch(level) {
        case GW_DEBUG:
            translog = LOG_DEBUG;
            break;
        case GW_INFO:
            translog = LOG_INFO;
            break;
        case GW_WARNING:
            translog = LOG_WARNING;
            break;
        case GW_ERROR:
            translog = LOG_ERR;
            break;
        case GW_PANIC:
            translog = LOG_ALERT;
            break;
        default:
            translog = LOG_INFO;
            break;
        }
        syslog(translog, "%s", buf);
    }
}

---------- Forwarded message ----------
From: "Michael Black" <[email protected]>
Date: Aug 19, 2012 1:46 PM
Subject: Make Gateway Errors
To: <[email protected]>

Hello,

I am currently attempting to build kannel from source; however, make says
there's an error:

gwlib/log.c:434 error: invalid operations to binary == (have 'va_list' and
'void *')

if (level >= sysloglevel && dosyslog) {
        if (args == NULL) {
            strncpy(buf, format, sizeof(buf));
            buf[sizeof(buf) - 1] = '\0';
        } else {
            vsnprintf(buf, sizeof(buf), format, args);
            /* XXX vsnprint not 100% portable */
        }

        switch(level) {
        case GW_DEBUG:

Whats wrong?

Mark

 

 

 

 

Reply via email to