On 8/08/2018 5:29 pm, Thore Bödecker wrote:

you mentioned that dovecot builds fine, but does "make check" also
complete successfully with a glibc-2.28 build on a glibc-2.28 system?

We have been seeing segfaults during "make check" and it seems the following
patch was able to make the testsuite run successfully.
Just out of curiosity, could you try this patch and see if this fixes
the issues you're experiencing?

diff -up dovecot- 
--- dovecot-       2018-02-28 
15:28:58.000000000 +0100
+++ dovecot- 2018-03-27 10:57:38.447769201 +0200
@@ -14,6 +14,7 @@
  #  define _XPG6 /* Some Solaris versions require this, some break with this */
  #include <unistd.h>
+#include <crypt.h>

  #include "mycrypt.h"


Ok, well....after running 'make check' I also saw a failure due to a segfault. It's the same crash Thore is seeing:

/bin/sh ../../libtool  --tag=CC   --mode=link x86_64-pc-linux-gnu-gcc
-std=gnu99 -O0 -g -pipe -march=native -mtune=native -ggdb
-fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
-mfunction-return=thunk -mindirect-branch=thunk -Wall -W
-Wmissing-prototypes -Wmissing-declarations -Wpointer-arith
-Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime
-Wstrict-aliasing=2   -module -avoid-version  -Wl,-O1 -Wl,--as-needed -o
libauthdb_imap.la -rpath /usr/lib64/dovecot/auth
libauthdb_imap_la-passdb-imap.lo ../lib-imap-client/libimap_client.la
../../src/lib-dovecot/libdovecot.la -export-dynamic -ldl
libtool: link: x86_64-pc-linux-gnu-gcc -shared  -fPIC -DPIC
.libs/libauthdb_imap_la-passdb-imap.o  -Wl,--whole-archive
../lib-imap-client/.libs/libimap_client.a -Wl,--no-whole-archive -Wl,-rpath -Wl,/home/portage/portage/net-mail/dovecot-9999_p20180807/work/dovecot-9999_p20180807/src/lib-dovecot/.libs
-Wl,-rpath -Wl,/usr/lib64/dovecot -Wl,--as-needed
../../src/lib-dovecot/.libs/libdovecot.so -ldl  -O0 -g -march=native
-mtune=native -ggdb -fstack-protector-strong -mfunction-return=thunk
-mindirect-branch=thunk -Wl,-O1   -Wl,-soname -Wl,libauthdb_imap.so -o
libtool: link: ( cd ".libs" && rm -f "libauthdb_imap.la" && ln -s
"../libauthdb_imap.la" "libauthdb_imap.la" )
make  check-local
make[3]: Entering directory '/home/portage/portage/net-mail/dovecot-9999_p20180807/work/dovecot-9999_p20180807/src/auth'
for bin in test-libpassword test-auth-cache test-auth; do \
  if !  ./$bin; then exit 1; fi; \
/bin/sh: line 1: 31821 Segmentation fault      ./$bin
make[3]: *** [Makefile:1924: check-local] Error 1
make[3]: Leaving directory '/home/portage/portage/net-mail/dovecot-9999_p20180807/work/dovecot-9999_p20180807/src/auth'
make[2]: *** [Makefile:1579: check-am] Error 2

However by applying the patch to include crypt.h (as above) it not only fixed the make test but also has fixed the glibc runtime problem too.

In other words - rebuild on glibc-2.28 just now and executed on glibc-2.28 based system resulted in a successful and usable auth binary.

Thanks Thore!


Reply via email to