It looks like this might be a bug in glibc 2.3.3 http://sourceware.org/bugzilla/show_bug.cgi?id=1392
Jack On 10/1/2012 2:20 PM, Fabio Depin wrote:
Hello, Today I needed to compile dovecot 2.1.10 on Debian 4.0, using gcc 4.1.2. When running 'make' getting the following error: -------------------------------------------------- -------- db-checkpassword.c: In function 'sigchld_handler': db-checkpassword.c: 426: error: assignment of read-only member '__in' db-checkpassword.c: 429: error: assignment of read-only member '__in' db-checkpassword.c: 431: error: assignment of read-only member '__in' db-checkpassword.c: 432: error: assignment of read-only member '__in' make [3]: ** [db-checkpassword.o] Error 1 make [3]: ** Waiting for other processes to finish. mv-f .deps / auth-worker-server.Tpo .deps / auth-worker-server.Po make [3]: Leaving directory `/ usr/src/dovecot/dovecot-2.1.7/src/auth ' make [2]: ** [all-recursive] Error 1 make [2]: Leaving directory `/ usr/src/dovecot/dovecot-2.1.7/src ' make [1]: ** [all-recursive] Error 1 make [1]: Leaving directory `/ usr/src/dovecot/dovecot-2.1.7 ' make: ** [all] Error 2 -------------------------------------------------- -------- -To work did the following: -------------------------------------------------- -------- 417a418 + Int stat = status-> status; 426c427 - If (WIFSIGNALED (status-> status)) { --- + If (WIFSIGNALED (stat)) { 429c430 - Dec2str (status-> pid), WTERMSIG (status-> status)); --- + Dec2str (status-> pid), WTERMSIG (stat)); 431.432 c432, 433 -} Else if (WIFEXITED (status-> status)) { - Request-> exit_status WEXITSTATUS = (status-> status); --- +} Else if (WIFEXITED (stat)) { + Request-> exit_status WEXITSTATUS = (stat); -------------------------------------------------- -------- With this change worked perfectly ntanto in debian 4 with gcc 4.1.2, as in debian 6 with gcc 4.4.5. -I wonder if I made the change may affect any function of dovecot, or if it is correct. Thank you for your attention. Fabio Depin