freshrider
IS-IT--Management
Trying to compile postfix 2.2.7 from source on Solaris 2.8 SPARC with gcc compiler and getting the following error:
# make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include \
-DUSE_SASL_AUTH -I/usr/local/include/sasl \
-I/usr/local/bdb/include -DUSE_TLS \
-I/usr/local/ssl/include/openssl' \
'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient \
-lz -lm -R/usr/local/lib -L/usr/local/lib -lsasl2 \
-L/usr/local/bdb/lib -L/usr/local/ssl/lib -lssl -lcrypto
# make
set -e; for i in src/util src/global src/dns src/tls src/master src/postfix src/smtpstone src/sendmail src/error src/pickup src/cleanup src/smtpd src/local src/lmtp src/trivial-rewrite src/qmgr src/oqmgr src/smtp src/bounce src/pipe src/showq src/postalias src/postcat src/postconf src/postdrop src/postkick src/postlock src/postlog src/postmap src/postqueue src/postsuper src/qmqpd src/spawn src/flush src/verify src/virtual src/proxymap src/anvil src/scache src/discard src/tlsmgr; do \
(set -e; echo "[$i]"; cd $i; /usr/local/bin/make 'CC=gcc -Wmissing-prototypes -Wformat -DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/bdb/include -DUSE_TLS -I/usr/local/ssl/include/openssl -DNO_CLOSEFROM -DNO_DEV_URANDOM -Dstrcasecmp=fix_strcasecmp -Dstrncasecmp=fix_strncasecmp' update MAKELEVEL=) || exit 1; \
done
[src/util]
gcc -Wmissing-prototypes -Wformat -DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/bdb/include -DUSE_TLS -I/usr/local/ssl/include/openssl -DNO_CLOSEFROM -DNO_DEV_URANDOM -Dstrcasecmp=fix_strcasecmp -Dstrncasecmp=fix_strncasecmp -g -O -I. -DSUNOS5 -c alldig.c
gcc -Wmissing-prototypes -Wformat -DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/bdb/include -DUSE_TLS -I/usr/local/ssl/include/openssl -DNO_CLOSEFROM -DNO_DEV_URANDOM -Dstrcasecmp=fix_strcasecmp -Dstrncasecmp=fix_strncasecmp -g -O -I. -DSUNOS5 -c argv.c
In file included from argv.c:78:
/usr/include/stdlib.h:182: error: conflicting types for `closefrom'
sys_defs.h:1181: error: previous declaration of `closefrom'
make: *** [argv.o] Error 1
make: *** [update] Error 1
I saw one thread mentioning to set CFLAGS=-DSOLARIS=20800 but still nothing. Not sure if we need to patch stdlib.h, couldn't find a patch related to this case. I've tried older gcc compiler as well 2.95 with same result...I've also tried without including any SASL/TLS/MYSQL and it gives the same result.
Just wondering if anyone else has seen this and if they have a workaround?
# make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include \
-DUSE_SASL_AUTH -I/usr/local/include/sasl \
-I/usr/local/bdb/include -DUSE_TLS \
-I/usr/local/ssl/include/openssl' \
'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient \
-lz -lm -R/usr/local/lib -L/usr/local/lib -lsasl2 \
-L/usr/local/bdb/lib -L/usr/local/ssl/lib -lssl -lcrypto
# make
set -e; for i in src/util src/global src/dns src/tls src/master src/postfix src/smtpstone src/sendmail src/error src/pickup src/cleanup src/smtpd src/local src/lmtp src/trivial-rewrite src/qmgr src/oqmgr src/smtp src/bounce src/pipe src/showq src/postalias src/postcat src/postconf src/postdrop src/postkick src/postlock src/postlog src/postmap src/postqueue src/postsuper src/qmqpd src/spawn src/flush src/verify src/virtual src/proxymap src/anvil src/scache src/discard src/tlsmgr; do \
(set -e; echo "[$i]"; cd $i; /usr/local/bin/make 'CC=gcc -Wmissing-prototypes -Wformat -DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/bdb/include -DUSE_TLS -I/usr/local/ssl/include/openssl -DNO_CLOSEFROM -DNO_DEV_URANDOM -Dstrcasecmp=fix_strcasecmp -Dstrncasecmp=fix_strncasecmp' update MAKELEVEL=) || exit 1; \
done
[src/util]
gcc -Wmissing-prototypes -Wformat -DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/bdb/include -DUSE_TLS -I/usr/local/ssl/include/openssl -DNO_CLOSEFROM -DNO_DEV_URANDOM -Dstrcasecmp=fix_strcasecmp -Dstrncasecmp=fix_strncasecmp -g -O -I. -DSUNOS5 -c alldig.c
gcc -Wmissing-prototypes -Wformat -DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/bdb/include -DUSE_TLS -I/usr/local/ssl/include/openssl -DNO_CLOSEFROM -DNO_DEV_URANDOM -Dstrcasecmp=fix_strcasecmp -Dstrncasecmp=fix_strncasecmp -g -O -I. -DSUNOS5 -c argv.c
In file included from argv.c:78:
/usr/include/stdlib.h:182: error: conflicting types for `closefrom'
sys_defs.h:1181: error: previous declaration of `closefrom'
make: *** [argv.o] Error 1
make: *** [update] Error 1
I saw one thread mentioning to set CFLAGS=-DSOLARIS=20800 but still nothing. Not sure if we need to patch stdlib.h, couldn't find a patch related to this case. I've tried older gcc compiler as well 2.95 with same result...I've also tried without including any SASL/TLS/MYSQL and it gives the same result.
Just wondering if anyone else has seen this and if they have a workaround?