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.