* Should we make 'icu4c' identical between platforms?
@ 2019-07-24 13:25 Marius Bakke
2019-07-24 22:18 ` Marius Bakke
0 siblings, 1 reply; 4+ messages in thread
From: Marius Bakke @ 2019-07-24 13:25 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 635 bytes --]
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, can we remove it? Should we remove it?
The rationale for this proposal is that ICU tests are failing when using
the "archive" packaging instead of library:
https://unicode-org.atlassian.net/projects/ICU/issues/ICU-20730
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Should we make 'icu4c' identical between platforms?
2019-07-24 13:25 Should we make 'icu4c' identical between platforms? Marius Bakke
@ 2019-07-24 22:18 ` Marius Bakke
2019-07-25 8:25 ` Mark H Weaver
0 siblings, 1 reply; 4+ messages in thread
From: Marius Bakke @ 2019-07-24 22:18 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 2479 bytes --]
Marius Bakke <mbakke@fastmail.com> 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?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-07-31 13:11 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-24 13:25 Should we make 'icu4c' identical between platforms? Marius Bakke
2019-07-24 22:18 ` Marius Bakke
2019-07-25 8:25 ` Mark H Weaver
2019-07-31 13:11 ` Marius Bakke
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.