UsingTheRightCompiler
Chris Jones
jonesc at hep.phy.cam.ac.uk
Tue Apr 17 15:11:19 PDT 2012
No one else seems to be having the issues you are. I personally compiler a lot of ports with clang, no problem. Doesn't that tell you something ?
Your rants below are useless. Unless you intend to actually start posting useful bug reports, build logs etc. then please take your outburst elsewhere.
Chris
On 17 Apr 2012, at 9:16pm, Jeff Singleton wrote:
> Nope. Sorry. But the "it works for me" argument just isn't going to work.
>
> I have tried both i386 (32 bit) and x86_64…and have the same issues (eventually) and IT IS because of Clang. I have never had so many problems compiling with GCC, and then maintaining them through normal upgrades. I use Macports for the convenience, and because its supported…but having to rebuild from scratch over and over is becoming not-so-convenient.
>
> If its not Clang as you suggest, and you think its a linking issue, then it is a Macports problem. I don't mix my architectures. My macports.conf either says build_arch i386 or it says build_arch x86_64. I don't add anything to the command line other than the occasional variant.
>
> So how do x86_64 binaries/libraries get into an i386 Prefix and vice versa? Whenever I switch in an effort to troubleshoot a compile issue like this, I *ALWAYS* clean/delete the entire folder, and reinstall Macports before commencing. So if there is mixed arch linking going on, then Macports is the problem.
>
> configure.compiler does not work on the command line as stated before. I have tried it several times, and Clang seems to be preferred and chosen every time despite it. I end up having to edit Portfiles to force the compiler I want to use, and that gets to be to much work to maintain.
>
> All I am asking for is to be able to choose my preferred compiler and not be forced to use whatever Macport devs prefer. I mean, its not really open if I have to use the compiler you tell me to, is it?
>
> If Macports was a sponsored, non-free package management distribution, I would understand having to use the developer chosen compiler. But its not, so therefore we should have more flexibility in choosing things like what compiler to use.
>
> Jeff
>
> On Mon, Apr 16, 2012 at 8:35 PM, Jeremy Huddleston <jeremyhu at macports.org> wrote:
>
> On Apr 15, 2012, at 9:04 PM, Jeff Singleton <gvibe06 at gmail.com> wrote:
>
> > I just can't say a lot for Clang. I have mentioned this before. I have
> > taken many suggestions. Tried Tried and Tried some more to like Clang.
>
> clang is awesome. What problems do you have? Give specifics. Your entire rambling email does not actually describe a single issue with clang, nor UsingTheRightCompiler (which is about getting ports to respect ${configure.compiler}, not about you setting what you want for configure.compiler.
>
> > Its ugly. It causes more problems between ports that depend on one
> > another, yet some are built with Clang, other built with GCC.
>
> There are no problems here. Binaries built with clang are compatible with those built by other compilers. What specific issues are you seeing?
>
> > I am simply fed up with Clang and I don't really want to use it anymore.
> > Clang does't respect architecture settings, no matter which I use (i386 or
> > x86_64).
>
> Yes it does. It respects them better than gcc (which doesn't btw, it's Apple's driver-driver that parses those).
>
> > Case and point - Pango crashes during compile no matter which Arch I use:
>
> That's not a crash.
>
> > *libtool: link: /usr/bin/clang -o .libs/pango-basic-coretext.so -bundle
> > .libs/basic-coretext.o -framework Carbon -L/opt/local/lib -O2 -arch
> > x86_64 -arch x86_64 -framework Carbon
> > -Wl,-exported_symbols_list,.libs/pango-basic-coretext-symbols.expsym*
> >
> > *Undefined symbols for architecture x86_64:*
> >
> > *<snip unnecessary error output>*
> >
> > *ld: symbol(s) not found for architecture x86_64*
> >
> > *clang: error: linker command failed with exit code 1 (use -v to see
> > invocation)*
>
>
> Yous snipped out necessary output. This is not a clang issue. It's a linking issue. The problem has *NOTHING* to do with clang. You probably have an i386 library installed that you're trying to link into an x86_64 binary.
>
> > I am just sick of running into linking errors -- either they happen now, or
> > they happen eventually during an upgrade. Either way, I usually end up
> > getting frustrated, and wiping out my whole ports tree, and attempt to
> > rebuild from scratch.
>
> Ok, that's one way to deal with it, but this has nothing to do with clang, and you should report individual linking issues separately. There's probably a missing dependency somewhere, or something was built +universal but it actually is thinned to i386 because the *port* doesn't support +universal (again, nothing to do with clang).
>
> > In this case…I still hit that link error with Pango.
>
> Please file a bug with the full output (including the relevant sections that you commented out as unnecessary)
>
> > Would someone PLEASE just tell me how I can force the default compiler to
> > be GCC.
>
> Use trunk base, but there's no way I'm going to support you using anything other than clang on modern systems.
>
> > No configure.compiler does not work
>
> yes it does.
>
> > , and no environment variables
> > CC CPP CXX do not work.
>
> No, they don't
>
> > I have both set to gcc-4.2 and yet Pango still
> > defaults to use Clang and crashes no matter what I try.
>
> It doesn't crash. Also the fact that it fails despite you setting it to gcc-4.2 should prove to you that it has NOTHING to do with clang.
>
> > I don't want to edit every single Portfile when I hit this issue, because
> > when I sync again, my changes go away.
>
> That would be stupid.
>
> > There simply HAS to be some way of forcing Macports to use the compiler
> > that I want to use and not argue and not make changes whenever and just do
> > what I tell it to.
>
> There is.
>
> > Is that so much to ask? Can I please just use GCC and never EVER have to
> > see another Clang linking error again.
>
> clang doesn't have linking errors. clang doesn't link. ld64 links, and guess what, gcc-4.2 uses the same linker as clang.
>
> --Jeremy
>
>
>
>
> _______________________________________________
> macports-users mailing list
> macports-users at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macports-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-users/attachments/20120417/4a46e58d/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2966 bytes
Desc: not available
URL: <http://lists.macosforge.org/pipermail/macports-users/attachments/20120417/4a46e58d/attachment.bin>
More information about the macports-users
mailing list