From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marius Bakke Subject: Re: Should we make 'icu4c' identical between platforms? Date: Thu, 25 Jul 2019 00:18:47 +0200 Message-ID: <87ftmv3wl4.fsf@devup.no> References: <87muh34l9h.fsf@devup.no> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:51357) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hqPb5-0001zX-Kq for guix-devel@gnu.org; Wed, 24 Jul 2019 18:18:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hqPb4-0006KL-4J for guix-devel@gnu.org; Wed, 24 Jul 2019 18:18:55 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:44331) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hqPb3-0006HX-PL for guix-devel@gnu.org; Wed, 24 Jul 2019 18:18:54 -0400 In-Reply-To: <87muh34l9h.fsf@devup.no> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --=-=-= Content-Type: text/plain 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? --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl042UcACgkQoqBt8qM6 VPo7iAgAxXs8c2ywFiXHRA8DqgOy6F24O8a/c8m3moVAqYpC/ZufAXaH87yGB7Gy H1WyjyoUQj1D8/XCVh9Wuivm8NAEkXANpHsZiVYXpHdAdhqA2herEpfzfi5cMQTJ nliB/yZrcaLhhGHws9Xgpllgt7IiyeHzIrgVGmXL6OYi/zaxqrGhu9NDqH3EvBbh yg/hzyaJooveGXKxl8LYsZmUtR//8l/2WspUcrv1ZMHKwg7Ej5hB19gOijs8EvVq 1nXsDPEXAgq0zX4wMooM9pJDZT2Ly8/DFA4BamF67Fesz1hPRVpmNZqlJe8aKps2 B6gQxISnCfehmJ9hhFfEz04JCBqZKA== =0f2b -----END PGP SIGNATURE----- --=-=-=--