New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"luaotfload-names.luc" remains zero-sized, enforcing the regeneration of the font names database every time #203
Comments
|
Thanks for helping. The following path is below my home directory:
As you can see luaotfload-names.lua.gz isn't empty. I've removed both files and added the configuration file. After lualatex I got again a zero-sized luaotfload-names.luc:
|
Please save the following under the name local dumped = string.dump(function()end)
if type(dumped) == 'string' then
print('Str: ', #dumped)
else
print('Other: ', type(dumped))
end What output does this give? |
|
Thanks. Could you try the same with local dumped = string.dump(function()end, true)
if type(dumped) == 'string' then
print('Str: ', #dumped)
else
print('Other: ', type(dumped))
end |
|
Please try using the latest development version and test if it works any better: Clone this repo, checkout the The code writing the |
Thanks again for your support but unfortunately the development version fails with following error:
None of the database files were updated. Apparently, the crash occured within if file_luc then
local compiled = dump(assert(load(serialized, 't')), true)
file_luc:write(compiled)
file_luc:close()
end within the load. |
Well, at least we get a proper error message now. Solaris's standard C library has two modes: A C99 conforming mode and a C90 conforming mode. While Lua could work with either one of them, compiling Lua without a C99 conforming standard library requires the The behavior you see shows that your LuaTeX is built with the C library in C90 mode but |
This is indeed the problem. I can confirm this and provide a workaround: LD_PRELOAD=/usr/lib/32/values-xpg6.o lualatex-dev lecture01.tex runs through and generates successfully the cache. And the same trick can also be applied for lualatex from TeXLive 2021. Thank you for your help and your work on luaotfload. Adding error messages is surely an improvement! I hope that this will be fixed for TeXLive 2022 and the next time it would also be great if all this could be compiled with “-m64”. There is no good reason for a restriction to a 32-bit address space. I will now patch up our TeXLive 2021 installation with wrappers setting LD_PRELOAD. |
LuaTeX build setup is determined by Luigi (Scarso). I will write him. -k
|
Great, one mystery error off the list.
Thanks! |
Just to clarify. TL provides two sets of binaries: |
./install-tl installed just i386-solaris, not x86_64-solaris. How to select x86_64-solaris and why isn't this the default? Please note that Solaris 11 supports just 64-bit architectures. There is no reason to have a 32-bit version of an 64-bit-only operating system. 32-bit binaries are still supported but they shouldn't be the first choice. Right now, config.guess delivers "i386-pc-solaris2.11" as it tries cc first, catching the Oracle Studio compiler cc which, by default, generates 32-bit binaries. Hence, the test at lines 439–441 fails as long as "-m64" isn't added to the flags:
|
You have already answered yourself: if |
You can skip this test for Solaris 11 as Solaris 11 does not support any 32-bit architecture. And if you still want to check if 64-bit binaries will work you need to specify "-m64". This is required to generate 64-bit binaries for Oracle Studio compilers, for the gcc provided by Oracle, and for a gcc bootstrapped from its sources using a default configuration. I do not need a fix for TL 2021 as I have a workaround (see above). But I would be glad if this problem doesn't reappear when I install TL 2022 on Solaris. Thanks for your work! |
So we don't want to patch config.guess since it comes from upstream gnu, that would be futile. THere are a few options:
But as @mojca said, doing this during the year sounds a bit dangerous to me ... |
@norbusan I've sent a patch to the folks maintaining https://savannah.gnu.org/projects/config/. |
But just to confirm: does the code work correctly with 64-bit binaries, or are there any further changes needed in the TL sources? You can either force the usage of a different set of binaries, or install additional set(s) of binaries when running the installer, and just adjust the (I tried to request some changes for |
We automatically install all changes to config.* (among other files)
when they are released upstream.
Hope the current config.* maintainer (Dmitry Levin) likes your patch or
fixes it in another way. Sometimes he needs nudging (more than once).
Although changing it will cause trouble for users, I am reluctant to
turn off config.* updates for several months, or manually merge them.
We can figure out some workaround, I suppose.
According to https://en.wikipedia.org/wiki/Oracle_Solaris, as well as
Andreas's message :), Solaris 11 is indeed only for x86_64 and sparc,
but I'm even more reluctant to override results until it's certain we
need to do so. --thanks, karl.
|
@zauguin solaris uses -pedantic -std=c99, but not for Lua5.3, and by default /opt/csw/bin/gcc-5.5 should use c11 . |
@luigiScarso Please do not depend anywhere on the nowadays obsolete CSW project. This has been a community project to support free software on top of Solaris but not been updated since years. In Solaris 11, gcc comes with the regular packages of the operating system and you have directories for various gcc releases under /usr/gcc and /usr/bin/gcc etc. pointing to the corresponding binaries of the gcc release of your choice. |
We did depend on OpenCSW for TL 2021. We might change the strategy for TL 2022 which would need some investigation first, but that should better be discussed on the TeX Live mailing list. |
Solaris 10 was shipping the SUNWgcc package with gcc 3.4.3 from 2004 which installed in /usr/sfw. Compared with that /opt/csw/bin/gcc-5.5 is indeed newer (from 2017) but I wouldn't expect anything newer coming from OpenCSW. The point is that Solaris 10 is an operating system from 2005 where regular support ended on 31 January 2018. Solaris 10 is mainly of interest for people who want to keep Solaris running but do not have a platform which is supported by Solaris 11 (like earlier instances of the sun4u architecture). However, it is becoming more and more challenging to compile software for Solaris 10. For example, you will not get full C11 support on Solaris 10 even when using the newest gcc as functions of the C11 standard library are missing in libc and in the corresponding header files. |
@norbusan Dmitry V. Levin has kindly applied my patch to config.guess: https://git.savannah.gnu.org/gitweb/?p=config.git;a=commitdiff;h=9e4c79f5fc4ef734b2f3115ab9184b70789e21a3 |
This issue still appears to be around in TL 2022 fully updated on 64-bit Intel Solaris:
The workaround above seems to work:
|
I've TeXLive 2021 on Solaris 11.4 including luaotfload-tool 3.18:
Whenever the font names database is regenerated, the file “luaotfload-names.luc” remains zero-sized, causing the regeneration to occur again on the next run. luaotfload-tool itself runs through without any errors (see attached output of “luaotfload-tool -v -vvv -u”). The same problem has been reported here: https://tex.stackexchange.com/questions/567678/luaotfload-always-being-invoke
luaotfload-tool-log.txt
The text was updated successfully, but these errors were encountered: