[Dovecot] Compilation Issue on Old Boxes with macro in src/master/main.c

Kevin A. McGrail kmcgrail at pccc.com
Thu Feb 26 16:34:32 EET 2009


I'm throwing an error compiling with a custom-compiled gcc 3.2.3 on one box.

The configuration string is CC=/usr/local/gcc3.2.3/bin/gcc CPPFLAGS=-I/usr/local/ssl/include LDFLAGS=-L/usr/local/ssl/lib ./configure --with-ssl=openssl --with-ssldir=/usr/local/ssl/certs --with-pam --with-pop3d --sysconfdir=/etc --localstatedir=/var

I've used this to compile on other older boxes with success.  And I compared the command lines and they are identical.

This is the error I get with src/master/main.c

main.c:365:1: directives may not be used inside a macro argument
main.c:364:16: unterminated argument list invoking macro "printf"
main.c: In function `print_build_options':
main.c:372: syntax error before string constant

Changing the function to a simpler function without the ifdef's resolves the issue and dovecot compiles.

I would really like to know why two boxes with the same compiler are failing on one but not the other. Perhaps there's some program or library or preprocessor or path or something out of whack.  Especially since using gcc 2.96 on the same box works!

However, I since this is a simple options output routine and (from my cursory read) there may be some standards issue with this technique, I've also patched the issue.

http://www.peregrinehw.com/downloads/dovecot/dovecot-1.1.11-build_options_macro.patch

Thoughts?

KAM


More information about the dovecot mailing list