Why is one compiler on 10.6 able to generate PPC binaries and not the other?
Jeremy Huddleston Sequoia
jeremyhu at macports.org
Fri Mar 11 00:35:13 PST 2016
> On Mar 10, 2016, at 17:20, Mojca Miklavec <mojca at macports.org> wrote:
> On 10 March 2016 at 21:26, Ryan Schmidt wrote:
>>> On Mar 10, 2016, at 1:00 PM, Mojca Miklavec wrote:
>>> While following
>>> on 10.6/x86_64 I tried to install clang 3.7 (thinking that version 3.7
>>> might have an even better support for PPC than 3.6).
>>> The problem is that clang-mp-3.7 doesn't want to produce ppc binaries,
>>> so I wasn't able to install libcxx. I get:
>>>> clang++-mp-3.7 a.cc -arch ppc
>>> ld: unknown/unsupported architecture name for: -arch ppc
>>> clang: error: linker command failed with exit code 1 (use -v to see invocation)
The linker you have installed doesn't support ppc. You need to install ld64 with the +ld64_127 variant to get the last version of the linker that supported ppc.
>>> At the same time clang++-mp-3.4 works fine even though both clang 3.4
>>> and 3.7 are x86_64 only.
That's because it's actually just acting a s front-end to gcc for -arch ppc.
>>> I'm now trying to rebuild everything as +universal (with ppc included
>>> in the list of universal architectures) and hope that it will work
Nope. That has nothing to do with it. That just means what architectures the clang executable will run on, not which architectures and platforms it will target.
>>> But I would be grateful for ideas about why clang 3.4
>>> would be able to create ppc binaries and clang 3.7 not.
3.7 does, but you didn't have the correct linker.
>>> Thank you,
>>> PS: I'm not actually using the PPC, I'm doing this all for fun and as
>>> a challenge. But I don't have any VM with 10.5, so I wanted to do the
>>> cross-compiling step on VM with 10.6.
> Weird. This changes predates the initial version of
> that suggests cross-compiling libcxxabi with ppc support.
> Judging from
> I would imagine that there must be a way to compile libc++ (even on
> 10.4 and even if from another repository). The problem is a bit of a
> chicken-and-egg, requiring a working clang-3.6 (3.7?) compiler to
> build libc++; but 3.7 would refuse to do the linking step. Maybe I'll
> need to do that in multiple stages as described on that website.
> I'm waiting for the universal build of clang 3.4 to finish first. I
> don't know if that will make any difference, but let's see.
More information about the macports-dev