Hi, Compiled GCC 4.7.4 with options: --enable-languages=c,c++ --disable-multilib
Compiled Dovecot v2.3.15 wih options: export CC=/usr/local/gcc-4.7.4/bin/gcc export CXX=/usr/local/gcc-4.7.4/bin/g++ ./configure --prefix=/usr --with-ssl=openssl --with-ssldir=/etc/ssl --sysconfdir=/etc --with-pam --without-bsdauth --without-sql --without-nss --without-ldap --without-pgsql --without-mysql --without-sqlite --with-rundir=/var/run/dovecot --without-cassandra --without-lucene --without-solr --without-textcat --without-libcap --without-stemmer --disable-rpath --disable-dependency-tracking --disable-silent-rules --without-gssapi --without-cdb Got error: configure: error: fd passing is required for Dovecot to work Added --disable-hardening and got further, but then with GCC 4.7.4, now I'm getting same old error, which I first got 4 years ago with version v2.2.30 and which Timo fixed - https://dovecot.org/list/dovecot/2017-June/108418.html db-checkpassword.c: In function 'sigchld_handler': db-checkpassword.c:426:6: error: assignment of read-only member '__in' db-checkpassword.c:427:3: error: assignment of read-only member '__in' db-checkpassword.c:431:13: error: assignment of read-only member '__in' db-checkpassword.c:432:26: error: assignment of read-only member '__in' make[3]: *** [db-checkpassword.lo] Error 1 Due GCC segmentation faults during compilation, so far I'm unable to compile any newer GCC, but got also same result with GCC 4.6.4. Please advise? Mart Timo Sirainen wrote: > On 29. Jul 2021, at 7.21, Mart Pirita <m...@e-positive.ee > <mailto:m...@e-positive.ee>> wrote: >> >> Hello. >> >> So far I have successfully built Dovecot until v2.3.14 on Centos 4-6 (yes I >> know, they are old, but as they are remote servers, distros can't upgraded), >> and sometimes I have also met compilation issues, but after highlighting >> them, Timo have fixed the code. >> >> Found from similar thread (Dovecot 2.3.15 compilation fails >> https://dovecot.org/list/dovecot/2021-June/122412.html ) that new GCC is >> needed. However I can't find such requirement in v2.3.15 change log. > > Looks like we forgot to mention that. > >> As seems that I'm not the only one with compilation issues, then @Timo - can >> You please fix the code so that also v2.3.15 can compiled on older distros? > > Sorry, it's no longer possible. The buffer.h API had to be changed to fix > some real bugs: > https://github.com/dovecot/core/commit/1d9b4e14008b15b7a34b5c633b09b9670e866256 > > The original way I changed it would have made the code more complex and it > was also a huge change. The final method was much simpler, but it requires > now compiler support for anonymous unions and anonymous structs, i.e. C11. > Although some older GCCs should also support it, but I guess you've a too old > version. >