Opened 7 years ago
Closed 5 years ago
#55773 closed defect (fixed)
textmate2 @2.0-rc.4 fails to build when sparsehash @2.0.3 was built with libstdc++
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | neverpanic (Clemens Lang) | |
Port: | sparsehash textmate2 |
Description
textmate2 requires and enforces the use of libc++, but it also requires sparsehash, and it fails to build if sparsehash was built with libstdc++, as it would be on a default OS X 10.8 installation (i.e. one not using LibcxxOnOlderSystems).
The problem is that sparsehash installs a header that varies based on whether the compiler used to compile sparsehash had full C++11 support or not. This causes problems if you later try to include that header in another project (like textmate2) that's using a compiler with different capabilities. I've reported the bug to the developers of sparsehash.
I'm considering using an ed
script to fix up the header after the build, but although it is straightforward for machines running Mac OS X 10.6 and later on Intel, Mac OS X 10.5 PowerPC differs. I haven't checked 10.5 Intel nor any 10.4 machine yet. Since we only care about OS X 10.8 and up for textmate2, I could punt on this issue and only fix the sparsehash header for 10.6 and later.
Change History (3)
comment:1 Changed 7 years ago by neverpanic (Clemens Lang)
comment:2 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)
Yes, this only affects 10.8 with libstdc++. I'll work on fixing it.
comment:3 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | new → closed |
As of MacPorts 2.6.0, 10.6-10.8 also use libc++ by default.
We had neglected to notice that we needed to rebuild sparsehash after that transition. That's now done in [18a1b6b37472aa4a717e03e70a51cac3b6fe1590/macports-ports].
Since textmate2 already requires 10.8 or later, this issue should no longer exist.
Isn't 10.8 the oldest system that still uses libstdc++ by default, so this is only an issue for 10.8? If so, I'm not very interested in fixing this myself, but I certainly don't mind you doing it either.