5 messages in net.sourceforge.lists.courier-usersRe: [courier-users] Can't compile cou...
FromSent OnAttachments
Federico BaraldiOct 26, 2005 7:55 am 
Jay LeeOct 26, 2005 9:59 am 
Sam VarshavchikOct 26, 2005 2:52 pm 
Gordon MessmerOct 28, 2005 8:37 am 
Jay LeeOct 28, 2005 8:49 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [courier-users] Can't compile courier-mta 0.52.1 on Mandriva 2006.0.Actions...
From:Sam Varshavchik (mrs@courier-mta.com)
Date:Oct 26, 2005 2:52:06 pm
List:net.sourceforge.lists.courier-users

Jay Lee writes:

Sam, any thoughts on this? I realize GCC 4.0 is not supported yet and it won't be until RHEL5 comes out that I'll care to much but there certainly seems to be a problem between gcc4 and esmtpclient.c

There's nothing especially outrageous in esmtpclient.c. esmtpclient.c is a rather mild, straightforward bit of code. There one macro in there that's slightly bit longer than the average macro, but nowhere near the atrocious macros you might find somewhere else.

If gcc4 is choking on it, it must be hitting a particularly devious bug.

If you want to investigate this further, and perhaps make a positive contribution to gcc4's development, you might want to start partitioning this file. Chop off the last half of it, at some function boundary, and see what happens. Of course, eventually the compile will break because some code is missing, but the only thing you're looking for is whether gcc4 blows up, on not.

Eventually, you could probably narrow it down to the point where you might have something useful to report.

Of course, given that everything is GPLed you can always dump the entire courier-authlib and courier tarballs on someone's lap, but that might be over the top.

Once you've narrowed things down as much as you could, you need to screw around with the Makefile so you get to see the actual g++ invocation parameters. I've hacked the Makefile so you don't get to see the whole deal, just a "compiling <filename>". The real deal has just so much crap that it hurts my eyes. But here's the exception where you want to see the actual g++ command.

Once you know that, add the -E option, so that you get the post-preprocessed C code, save it, then feed it to g++ again, with the same parameters. If it still crashes, send the file and the command line options to the g++ list.