[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gub: I can now completely build lilypond

From: Masamichi Hosoda
Subject: Re: gub: I can now completely build lilypond
Date: Sat, 19 Jan 2019 13:59:40 +0900 (JST)

>>>> But building of lilypond-test fails.
>>>> ./target/linux-64/build/
>>>>     /home/gub/NewGub/gub/target/tools/root/usr/bin/texi2dvi: texinfo.tex
>>>>     appears to be broken.
>>>>     This may be due to the environment variable TEX set to something
>>>>     other than (plain) tex, a corrupt texinfo.tex file, or
>>>>     to tex itself simply not working.
>>>>     etex:
>>>>     /home/gub/NewGub/gub/target/linux-64/root/usr/lib/
>>>>     version `CXXABI_1.3.9' not found (required by etex)
>>> Obviously another linking path issue: While executing the external TeX
>>> binaries, DLL stuff from `target/...' must not be used.
>> The problem here is that our texi2* stuff needs LD_LIBRARY_PATH to
>> find our DLLs in target/..., but the system's etex binary, executed by
>> texi2*, fails on openSuSE Tumbleweed because it is incompatible to
>> those libs in target/....
>> I think the easiest solution is a simple etex wrapper script in
>> tools/root that clears LD_LIBRARY_PATH and then executes the system's
>> etex.
> texi2dvi / texi2pdf can be specified external program name.
> Previously, there was a similar error in XeTeX with texi2pdf.
> For XeTeX, we use wrapper scripts.
> In the LilyPond's makefiles, it is specified as follows.
> ```
> ```
> The valiables, PDFTEX and PDFLATEX are set to be
> and at configure script.
> To avoid the error,
> I've added a line to clear LD_LIBRARY_PATH to the scripts in GUB.
> If I understand correctly,
> it may be resolved simply by changing LilyPond's makefiles as follows.
> ```
> ```

I noticed I was wrong...
texi2dvi / texi2pdf should not invoke etex in GUB.
xetex should be invoked.

Does your openSuSE system have both xetex and xelatex?
LilyPond's configure script sets PDFTEX=/path/to/
if your openSuSE system has both xetex and xelatex.
Then, texi2pdf invokes instead of etex.
In this case, etex does not be invoked.
The test succeeds because GUB makes clears LD_LIBRARY_PATH.

On the other hand,
LilyPond's configure script sets PDFTEX=etex
if your openSuSE system does not have xelatex, pdfetex, and pdftex.
In this case, texi2pdf invokes etex. LD_LIBRARY_PATH is not cleared.
GUB has older libc and older libstdc++.
LD_LIBRARY_PATH makes etex uses the old libc and the old libstdc++.
But, openSuSE system's etex requires newer libc and newer libstdc++.
This is the cause of the error.

Again, if I understand correctly,
etex is not invoked if your openSuSE system have both xetex and xelatex.
If your openSuSE system has both xetex and xelatex,
GUB clears LD_LIBRARY_PATH and the test will succeed.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]