Opened 3 years ago

Closed 12 months 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 Schmidt) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: neverpanic (Clemens Lang)
Port: sparsehash textmate2


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 3 years ago by neverpanic (Clemens Lang)

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.

comment:2 Changed 3 years ago by ryandesign (Ryan Schmidt)

Yes, this only affects 10.8 with libstdc++. I'll work on fixing it.

comment:3 Changed 12 months ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: newclosed

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.

Note: See TracTickets for help on using tickets.