[tlbuild] icu-65.1 in TL and -lpthread

Mojca Miklavec mojca.miklavec.lists at gmail.com
Sat Jan 4 13:45:33 CET 2020


Dear Apostolos,

On Sat, 4 Jan 2020 at 07:47, Apostolos Syropoulos wrote:
>
> Hello,
>
> I have compiled TeXLive on
> OpenIndiana without any problem.

I'm aware.

> So I do not think your local solution
> is a real solution as it might break
> compilation on more recent versions
> of Solaris and Illumos (Open version of
> Solaris).

While I could imagine scenarios where things could go wrong if some
messing-up-with-registers was happening on that old Solaris version in
the middle of ICU doing its work, I fail to understand how undefining
a variable that hasn't even been defined on your system before (and
just before it gets defined by ICU anyway) could break something on
your box.

Mojca

> Sent from my Android device...
>
> Στις Σάβ, 4 Ιαν 2020, 08:17 ο χρήστης Mojca Miklavec <mojca.miklavec.lists at gmail.com> έγραψε:
>>
>> On Fri, 13 Dec 2019 at 01:54, Mojca Miklavec wrote:
>> > V čet., 12. dec. 2019 19:27 je oseba Karl Berry napisala:
>> >>
>> >> I've updated the ICU in TeX Live to ICU 65.1 (r53103). I surmise it is
>> >> likely to break the build on some systems. Please give it a try if you can.
>> >
>> > It fails to build on Solaris and on an older Mac. On Mac there is a Python-related issue, on Solaris it's C++.
>>
>> The build issue on Mac can be fixed by defining something like
>>     PYTHON=/path/to/python3.8
>> however the build time (admittedly on a VM on an older box) increased
>> from cca. 2 h 20 min to cca. 5 h 20 min which sounds a bit insane and
>> not that easy to explain.
>>
>> On the other hand the build on Solaris seems to be caused by the following
>>     https://docs.oracle.com/cd/E19253-01/816-5174/proc-4/index.html
>>
>>     For 32–bit x86 processes, the predefined constants listed below
>> can be used as indices to refer to the corresponding registers.
>>
>>     SS
>>     UESP
>>     EFL
>>     CS
>>     EIP
>>     ERR
>>     TRAPNO
>>     EAX
>>     ECX
>>     EDX
>>     EBX
>>     ESP
>>     EBP
>>     ESI
>>     EDI
>>     DS
>>     ES
>>     GS
>>
>>     The preceding constants are listed in <sys/regset.h>.
>>
>> clearly conflicting with
>>
>>     enum {
>>         L=  U_LEFT_TO_RIGHT,                /*  0 */
>>         R=  U_RIGHT_TO_LEFT,                /*  1 */
>>         EN= U_EUROPEAN_NUMBER,              /*  2 */
>>         ES= U_EUROPEAN_NUMBER_SEPARATOR,    /*  3 */
>>         ET= U_EUROPEAN_NUMBER_TERMINATOR,   /*  4 */
>>         AN= U_ARABIC_NUMBER,                /*  5 */
>>         CS= U_COMMON_NUMBER_SEPARATOR,      /*  6 */
>>     ...
>>     }
>>
>> I reported the issue upstream in mid-december, but there was no
>> response on their mailing list yet (I sent some more details now).
>>
>> I still didn't quite figure out where these constants are actually
>> defined. They are supposed to come from
>>     /usr/include/sys/regset.h
>> (both according to the compiler and the docs) but I fail to see what
>> black magic precisely is setting them :)
>> Not that I should actually care.
>>
>> Maybe we could patch the sources locally in TeX Live to undefine ES
>> and CS until upstream fixes the issue?
>> I assume that TeX Live doesn't use Solaris registers? :) As long as
>> some other headers don't start interfering ...
>>
>> Mojca
>>



More information about the tlbuild mailing list