When building Dovecot 2.4.2 on modern compilers (GCC ≥ 5, Clang, or any 
C99/C11-compliant environment), the build fails in
src/lib/unicode-transform.c due to the use of non-constant initializers in 
static const global variables.

The affected lines define Hangul composition constants using other const 
variables instead of compile-time constants, which is not allowed in standard 
C99 and later.

error log:
unicode-transform.c:211:1: error: initializer element is not constant
 static const size_t uni_hangul_n_count = uni_hangul_v_count * 
uni_hangul_t_count;
 ^
unicode-transform.c:212:1: error: initializer element is not constant
 static const uint16_t uni_hangul_l_end = uni_hangul_l_base + 
uni_hangul_l_count;
 ^
unicode-transform.c:213:1: error: initializer element is not constant
 static const uint16_t uni_hangul_v_end = uni_hangul_v_base + 
uni_hangul_v_count;
 ^
unicode-transform.c:214:1: error: initializer element is not constant
 static const uint16_t uni_hangul_t_end = uni_hangul_t_base + 
uni_hangul_t_count;
 ^


This issue prevents building Dovecot 2.4.x on modern systems without 
non-standard compiler flags, breaking out-of-the-box builds on up-to-date Linux 
distributions.
_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to