[MacPorts] #40231: mkvtoolnix: fix build with clang
MacPorts
noreply at macports.org
Sat Aug 24 18:32:08 PDT 2013
#40231: mkvtoolnix: fix build with clang
---------------------------+--------------------------------
Reporter: ryandesign@… | Owner: macports-tickets@…
Type: enhancement | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.2.0
Resolution: | Keywords:
Port: mkvtoolnix |
---------------------------+--------------------------------
Comment (by jeremyhu@…):
Replying to [comment:12 ecronin@…]:
> > You'll need to rebuild icu as well (and anything else that uses boost
or icu ... this is a can of worms (see my comment above about a flag day
being required to do something like this).
>
> Yeah. Anything C++ actually. It doesn't even make it out of configure
when you pass the -stdlib flags all the time (Ryan's patch was incomplete.
cxxflags and ldflags seem to do the trick, on Mavericks you should know
for sure)
Yeah, you need to ensure that both sides of the API use the same STL and
runtime. The easiest way to do that is to just pick one and use it
everywhere.
> > Thanks. That should get this working on Mavericks at least...
>
> Attached.
Thanks. I'll massage what is safe to do now into a commit soon.
> > Replying to [comment:10 ecronin@…]:
> > clang is the default C compiler with current XCode (which is version
4.6.x on Lion and ML).
> >
>
> I was thinking the still-unofficially-supported-OS-versions where no
XCode4 is available.
That boundary is not quite clear. In my mind, the OS versions that are
must not break are >= 10.7 ... I do my best to keep 10.6 working (and test
on it). Anything older than that is just a battle with entropy.
Also, clang-3.3 works great for i386 and x86_64 on Leopard and Snow
Leopard (which don't support Xcode 4.6.x).
> But Clang on PPC is still alpha/beta from my understanding, so I guess
there's really no good fix for users stuck there,
I would urge dropping Tiger and powerpc as even legacy support (it's been
almost a decade now) and use clang++ / libc++ on all supported platforms.
> except maybe ditching the system compilers completely and using a newer
FSF g++ for all of macports.
NO! That will not be done. We will not be going to FSF for compilers.
The goal is to use the host C++ runtime, not a conflicting one.
> I'm not sure how many system libs that would require linking in expose
c++ APIs though, at which point that fails completely...
There are a few C++ frameworks that won't work if you do that, but we're
certainly not going to explore the option of using gcc as the toolchain.
It is not supported by Apple and there are many cases where it outright
fails (eg: If we want to use ObjC++ with host frameworks)
> This was just an excuse to play around with the latest clang a bit, I'm
throwing in the towel on any further attempts. Switching to libc++ is
probably worth sending over to the -dev list for discussion for people
more knowledgeable than me on OS X C++ development. Won't that have the
same incompatible mangling/runtime problems with linking in any required
system frameworks on pre-Mavericks OSs we're having here, though?
If *everything* is using libc++, we will have issues when using the host
C++ frameworks that are using libstdc++, but I don't think any of our
ports actually do that.
> Also, didn't report either of those compilation errors/fixes upstream...
figured should wait until it builds and can be tested first.
I'll give it a whirl. Thanks.
--
Ticket URL: <https://trac.macports.org/ticket/40231#comment:14>
MacPorts <http://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list