[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