#48490 closed defect (invalid)
texlive-bin @2015_1: Undefined symbols: _mpfr_set_zero
Reported by: | manuel.schaich@… | Owned by: | drkp (Dan Ports) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.3 |
Keywords: | Cc: | ryandesign (Ryan Carsten Schmidt), justacec@…, AsterixHH, mojca (Mojca Miklavec), sjc999, dr2chase@…, dershow | |
Port: | texlive-bin |
Description
I tried to upgrade my latex and it doesn't work. The log file doesn't really tell me much. It seems to be a directory error but I'm not sure
Attachments (1)
Change History (19)
Changed 9 years ago by manuel.schaich@…
comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… added |
---|---|
Owner: | changed from macports-tickets@… to dports@… |
Summary: | texlive-bin @2015_1 Build error. Make produces recursive error → texlive-bin @2015_1: Undefined symbols: _mpfr_set_zero |
comment:2 Changed 9 years ago by andre.david@…
For what is worth, and since I saw "elcapitan" in the keywords, I am having the *exact* same issue in 10.10.4.
comment:3 follow-up: 4 Changed 9 years ago by andre.david@…
Bump.
My pdflatex
is broken, probably because of this: because poppler
was upgraded and texlive-bin
cannot be recompiled against the new poppler
library version.
I have the exact same issue as above for texlive-bin @2015_3
in OS X 10.10.5.
I think the problem is that texlive-bin
is using /usr/local/lib/libmpfr.a
instead of /opt/local/lib/libmpfr.a
:
:info:build /usr/bin/clang -DHAVE_CONFIG_H -I. -I./w2c -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_tex_texlive-bin/texlive-bin/work/texlive-source-20150611-stripped/texk/pt exenc -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_tex_texlive-bin/texlive-bin/work/texlive-source-20150611-stripped/texk/ptexenc -I/opt/local/var/macports/build/_opt_local_v ar_macports_sources_rsync.macports.org_release_tarballs_ports_tex_texlive-bin/texlive-bin/work/texlive-source-20150611-stripped/texk -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_po rts_tex_texlive-bin/texlive-bin/work/texlive-source-20150611-stripped/texk -I./synctexdir -D__SyncTeX__ -DSYNCTEX_ENGINE_H=\"synctex-ptex.h\" -isystem/opt/local/include -Wimplicit -Wreturn-type -Wdeclaration-after-statement -Wno-unkno wn-pragmas -pipe -Os -arch x86_64 -MT ptex-ptex-pool.o -MD -MP -MF .deps/ptex-ptex-pool.Tpo -c -o ptex-ptex-pool.o `test -f 'ptex-pool.c' || echo './'`ptex-pool.c :info:build libtool: link: /usr/bin/clang -Wimplicit -Wreturn-type -Wdeclaration-after-statement -Wno-unknown-pragmas -pipe -Os -arch x86_64 -Wl,-headerpad_max_install_names -arch x86_64 -o .libs/pmpost pmpost-pmp.o pmpost-pmpmath.o pm post-pmpmathbinary.o pmpost-pmpmathdecimal.o pmpost-pmpmathdouble.o pmpost-pmpost.o pmpost-pmpstrings.o pmpost-pmpxout.o pmpost-ppngout.o pmpost-ppsout.o pmpost-psvgout.o pmpost-ptfmin.o /opt/local/var/macports/build/_opt_local_var_ma cports_sources_rsync.macports.org_release_tarballs_ports_tex_texlive-bin/texlive-bin/work/texlive-source-20150611-stripped/texk/ptexenc/.libs/libptexenc.dylib /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports .org_release_tarballs_ports_tex_texlive-bin/texlive-bin/work/texlive-source-20150611-stripped/texk/kpathsea/.libs/libkpathsea.dylib /usr/local/lib/libmpfr.a /usr/local/lib/libgmp.a -L/opt/local/lib -lcairo -lpixman-1 -lpng16 -lz libmpu til.a :info:build Undefined symbols for architecture x86_64: :info:build "_mpfr_set_zero", referenced from:
See
$ ls -latr /{opt,usr}/local/lib/libmpfr.a -rw-r--r-- 1 root wheel 554K Sep 12 2009 /usr/local/lib/libmpfr.a -rw-r--r-- 1 root admin 640K Aug 19 21:16 /opt/local/lib/libmpfr.a
How did linkin work in previous versions of texlive-bin
? Do I have something wrong in my PATHs?
comment:4 follow-up: 5 Changed 9 years ago by drkp (Dan Ports)
Replying to andre.david@…:
I think the problem is that
texlive-bin
is using/usr/local/lib/libmpfr.a
instead of/opt/local/lib/libmpfr.a
:
Aha, that helps. I had been looking into it but unable to reproduce the problem.
The "official" answer is that having anything in /usr/local while using MacPorts isn't supported, but let's see if we can do something about it anyway...
comment:5 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to dports@…:
The "official" answer is that having anything in /usr/local while using MacPorts isn't supported,
Right. The other official answer is: use trace mode.
comment:6 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | justacec@… added |
---|
Has duplicate #48670.
comment:7 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | elcapitan removed |
---|
comment:8 Changed 9 years ago by drkp (Dan Ports)
Cc: | andreas.schropp@… mojca@… added |
---|
Has duplicate #48706
comment:9 Changed 9 years ago by drkp (Dan Ports)
This is caused by having some existing libmpfr in /usr/local, which is not supported. I looked into this to see if I could figure out what's going on, but I wasn't able to reproduce it. What package is installing this offending version of mpfr?
comment:10 follow-up: 11 Changed 9 years ago by sjc999
I had the same issue after upgrading OS to 10.11 and reinstalling macports. I've not gotten to the bottom of it yet to suggest a proper fix but a easy hack that worked for me was to simply move the mpfr in /usr/local out of the way, install texlive-bin in the usual manner and then put mpfr back again:
sudo mkdir /usr/local/lib/tmp; sudo mv /usr/local/lib/*mpfr* /usr/local/lib/tmp/ ; sudo port install texlive-bin ; sudo mv /usr/local/lib/tmp/* /usr/local/lib
comment:11 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | s.j.clark@… added |
---|
Replying to s.j.clark@…:
I had the same issue after upgrading OS to 10.11 and reinstalling macports. I've not gotten to the bottom of it yet to suggest a proper fix but a easy hack that worked for me was to simply move the mpfr in /usr/local out of the way, install texlive-bin in the usual manner and then put mpfr back again:
Having things installed in /usr/local is not supported while using MacPorts, because of these kinds of problem. Our recommendation is to remove what you have in /usr/local.
This ticket should just be closed as invalid.
These kinds of problems should just go away when we eventually enable trace mode by default.
comment:12 Changed 9 years ago by dr2chase@…
Requiring the non-existence of /usr/local is not realistic or sensible. There's other software in this world that uses that directory, and hiding it temporarily turns out to be "not permitted" even with sudo.
comment:13 Changed 9 years ago by mojca (Mojca Miklavec)
Yes, there is indeed other software in this world that would automatically install into /usr/local
, but until trace mode (read as: hiding almost everything) gets enabled by default there is no way that MacPorts can ever work properly when competing libraries are installed there. As far as I know there is no way to hide libraries in /usr/local from the compiler. If you cannot hide /usr/local
, you can try to temporary hide the contents. Or just do
sudo port -t install texlive-bin
If you have mpfr
in your /usr/local
and cannot remove it temporary and cannot install ports with the -t
switch, you are just out of luck. Generally you will keep running into troubles when installing different ports and there is no other easy way to work around that. It makes no sense to argue that MacPorts should tolerate any given software installed in /usr/local
. That software will keep causing problems.
comment:14 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | dr2chase@… added |
---|---|
Resolution: | → invalid |
Status: | new → closed |
Requiring the non-existence of /usr/local is currently MacPorts policy. See wiki:FAQ#usrlocal.
The actual error I see in the log is:
(I cleaned this up a bit; the lines are intermingled in the log because it was a parallel build.)