unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* 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

* Re: Should we make 'icu4c' identical between platforms?
  2019-07-24 22:18 ` Marius Bakke
@ 2019-07-25  8:25   ` Mark H Weaver
  2019-07-31 13:11     ` Marius Bakke
  0 siblings, 1 reply; 4+ messages in thread
From: Mark H Weaver @ 2019-07-25  8:25 UTC (permalink / raw)
  To: Marius Bakke; +Cc: guix-devel

Hi Marius,

Marius Bakke <mbakke@fastmail.com> wrote:
> 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?

Sure, sounds good to me.

    Thanks!
      Mark

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Should we make 'icu4c' identical between platforms?
  2019-07-25  8:25   ` Mark H Weaver
@ 2019-07-31 13:11     ` Marius Bakke
  0 siblings, 0 replies; 4+ messages in thread
From: Marius Bakke @ 2019-07-31 13:11 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 406 bytes --]

Mark H Weaver <mhw@netris.org> writes:

> Hi Marius,
>
> Marius Bakke <mbakke@fastmail.com> wrote:
>> 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?
>
> Sure, sounds good to me.

Done in f73fe13ccd1ef3fe6f6e0409fa817e5feb612e40.

[-- 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 public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).