Opened 11 years ago
Closed 11 years ago
#41528 closed defect (fixed)
texlive-bin @2013: error: template with C linkage
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | drkp (Dan Ports) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.2.1 |
Keywords: | tiger | Cc: | |
Port: | texlive-bin |
Description
Attachments (1)
Change History (9)
Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Attachment: | main.log.bz2 added |
---|
comment:1 Changed 11 years ago by drkp (Dan Ports)
comment:2 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
I have found this explanation of the "template with C linkage" error, calling it a "dangling extern "C"
" problem.
I notice that -isystem
is in the compile line so now I'm wondering if this is the problem mentioned here, where Tiger's g++
automatically inserts extern "C"
around headers included with -isystem
, a problem which was fixed in Leopard. If so, blacklisting Tiger's g++
and instead using MacPorts' apple-gcc42 might fix it. I can try this later when I'm back at my Tiger machine. Note that I'm not using the patch from that ticket on this machine; this is a change made specifically in the texlive-bin port in r83018.
comment:3 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Or it could be that an extern "C"
in one of texlive-bin's files is in the wrong place (see r113940 for such an error in another project).
comment:4 Changed 11 years ago by drkp (Dan Ports)
I'm betting it's the -isystem bug. Could you give it a try with a different compiler? I don't have a Tiger machine anymore.
comment:5 Changed 11 years ago by drkp (Dan Ports)
Also, it's possible we don't need to set -isystem here anymore. It was essential in the past to get the link order right, in particular to be sure that texlive binaries linked against texlive's patched icu, not the one installed by the icu port. texlive-bin no longer has its own version of icu, and I don't think it builds any other libraries that are already provided by MacPorts.
All that said, I'd just as soon leave -isystem in, in case it becomes necessary in a future version. (And it really ought to be the default everywhere, modulo this apparent Tiger issue.)
comment:6 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
I'll test it on Tiger, to satisfy my curiosity about this issue. But if the problem can be solved in texlive-bin in a way that does not necessitate adding a dependency on a different compiler, that would be preferable.
comment:7 follow-up: 8 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Confirmed: using apple-gcc-4.2 on Tiger allows texlive-bin to build.
I'm reconsidering what I said above. It would simplify several things to just make apple-gcc-4.2 the default compiler for all ports on Tiger. At some point I'll try that out.
comment:8 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Replying to ryandesign@…:
Confirmed: using apple-gcc-4.2 on Tiger allows texlive-bin to build.
Fixed this in texlive-bin in r115651.
I'm reconsidering what I said above. It would simplify several things to just make apple-gcc-4.2 the default compiler for all ports on Tiger. At some point I'll try that out.
This has been done in trunk; see #41782.
We might be out of luck on this one since Tiger is so old, but I'll take a quick look anyway...