Layoutex - paragraphlayout.cpp build error



I'm trying to install icu-67.1 version on my RHEL6 machine.
I had followed the below steps from Steps to build layoutex

Build and install a complete ICU with the --disable-layout --disable-layoutex switches passed to configure
Build and install HarfBuzz - (HarfBuzz's use of ICU may be enabled or disabled at your choice)
Build and install the [icu-le-hb] ( library.
Now, rerun "configure" on the exact same ICU workspace used above:

  • with "icu-le-hb" AND the above-mentioned installed ICU available via pkg-config ( pkg-config --modversion icu-le-hb should return a version, such as "0.0.0" )

  • with the --disable-layout --enable-layoutex switches passed to configure
    next, run make install JUST in the source/layoutex directory, to install libiculx and icu-lx.pc
    But, when I'm doing the final step I'm getting the following error.
    ParagraphLayoutCpp:275:1:error: too many initializers for 'const le_bool[130]'

I found that "complexTable[scriptCodeCount]" array has been initialized with 135 entries, but 'scriptCodeCount' variable has value 130 only.
I couldn't find where they have initialized value 130 to scriptCodeCount variable.

Kindly help me with this issue.


Markus Scherer
September 24, 2020, 10:44 PM

You seem to be getting an LEScripts.h from ICU 4.0 or 4.2. Probably an ancient ICU layout engine installed on your system. Which probably also means you are not actually compiling against the newer icu-le-hb.

Markus Scherer
September 24, 2020, 10:37 PM

Discussion & fix in

Markus Scherer
September 10, 2020, 12:57 AM

I haven’t looked yet, but hopefully this is just a hardcoded array size that needs to be increased as each major Unicode version adds more scripts.

Your pinned fields
Click on the next to a field label to start pinning.


Markus Scherer






Time Needed


Fix versions