Compiling v2.2.19 - internal compiler error: segmentation fault (test-timing.c -> int64_t issue?)

Guest-X guest0x at yahoo.com
Mon Oct 5 18:04:11 UTC 2015


Hi,

I am trying to compile a 64-build of the latest dovecot v2.2.19 on my SuSE Linux Enterprise Server 10 (x64) system.

I've run ./configure with two parameters, the --prefix one and the --with-ssldir one.
During the make stage, I am getting the following 'internal compiler error' message :

---------------------------------------------
[...]
gcc -DHAVE_CONFIG_H -I. -I../..  -I../../src/lib-test   -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2    -MT test_lib-test-timing.o -MD -MP -MF .deps/test_lib-test-timing.Tpo -c -o test_lib-test-timing.o `test -f 'test-timing.c' || echo './'`test-timing.c 
test-timing.c: In function ‘test_timing’: 
test-timing.c:48: internal compiler error: Segmentation fault 
Please submit a full bug report, 
with preprocessed source if appropriate. 
See <URL:http://bugs.opensuse.org> for instructions. 
make[4]: *** [test_lib-test-timing.o] Error 1 
----------------------------------------------

The lines that seem to be causing the problem are the following ( from src/lib/test-timing.c ) :

45:     void test_timing(void) 
46:     { 
47:     static int64_t test_input1[] = { 

48:             20, 19, 18, 1, 2, 3, 4, 5, 6, 7, 8, 
49:             9, 10, 11, 12, 13, 14, 15, 16, 17, -1 
50:     }; 


This is the first time that any version of dovecot (the v2.2 branch) couldn't compile on my system, and I've literally compiled every single release up to now. My gcc version is a very old one (4.1.2) :

----------------------------------------------
Using built-in specs. 
Target: x86_64-suse-linux 
Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.1.2 --enable-ssp --disable-libssp --disable-libgcj --with-slibdir=/lib64 --with-system-zlib --enable-shared --enable-__cxa_atexit --enable-libstdcxx-allocator=new --program-suffix= --enable-version-specific-runtime-libs --without-system-libunwind --with-cpu=generic --host=x86_64-suse-linux 
Thread model: posix 
gcc version 4.1.2 20070115 (prerelease) (SUSE Linux) 
-----------------------------------------------

Don't know whether this helps, but I've noticed that if I change the int64_t to uint64_t in the following lines of the same file :

61:      static int64_t *test_inputs[] = { 
62:              test_input1, test_input2, test_input3 
63:      }; 


..then compilation finishes without errors, but I'm not certain what the practical consequences of this action might be. 

Can somebody help me please ? 

Thank you for your time.


More information about the dovecot mailing list