Marius Bakke writes: > Hello listers and lurkers, > > On MIPS and 32-bit ARM platforms, 'icu4c' is built with > '--with-data-packaging=archive'. The effect is that the locale data is > stored in a single "icudt__.dat" instead of in the shared library: > > http://userguide.icu-project.org/icudata > > There are no comments mentioning why this is the case, and reading the > commit log gives me the impression that it was added as a workaround. So I tried removing the workaround on armhf, and it caused weird problems trying to load the 27M libicudata.so. Digging around, I found that most distributions use a different workaround (on all platforms): (add-after 'chdir-to-source 'update-LDFLAGS (lambda _ ;; Do not create a "data-only" libicudata.so because it causes ;; problems on some platforms (notably armhf and MIPS). (substitute* "config/mh-linux" (("LDFLAGSICUDT=-nodefaultlibs -nostdlib") "LDFLAGSICUDT=")) #t)) This works fine for armhf without "--with-data-packaging=archive". The effect is that libicudata.so is marginally larger because of some new symbols. Before: 0000000001a43ef0 d _DYNAMIC 0000000000001000 R icudt64_dat After: 0000000001a45020 b completed.6992 w __cxa_finalize@@GLIBC_2.2.5 0000000000001040 t deregister_tm_clones 00000000000010d0 t __do_global_dtors_aux 0000000001a44dd8 t __do_global_dtors_aux_fini_array_entry 0000000001a45018 d __dso_handle 0000000001a44de0 d _DYNAMIC 000000000000111c t _fini 0000000000001110 t frame_dummy 0000000001a44dd0 t __frame_dummy_init_array_entry 0000000001a43a10 r __FRAME_END__ 0000000001a45000 d _GLOBAL_OFFSET_TABLE_ w __gmon_start__ 0000000000002000 R icudt64_dat 0000000000001000 t _init w _ITM_deregisterTMCloneTable w _ITM_registerTMCloneTable 0000000000001080 t register_tm_clones 0000000001a45020 d __TMC_END__ SUSE on the other hand uses "--with-data-packaging=archive" on all platforms. I haven't investigated the differences in depth because of the test failures that occurs when enabling that. One tiny benefit would be that icudt__.dat can be deduplicated in the store, even between platforms IIUC. For now, I'm leaning towards adding the above substitution unconditionally, and remove the "--with-data-packaging=archive" flag, so that ICU has the same bugs (and builds!) everywhere. Mark, WDYT?