Am 28.10.2011 um 00:45 schrieb Jeremy Huddleston:

> In r86535, I added new ports for {clang,llvm}-{2.9,3.0,3.1}.  This will allow 
> us to support multiple versions of llvm and clang in a similar fashion to how 
> we currently support multiple versions of gcc.  Additionally, this will allow 
> dependent projects to rely on a *specific* version of llvm.
> 
> Once everything is flushed out, we will obsolete the old ports and have them 
> redirect to -2.9 (for clang and llvm) or -3.1 (for clang-devel and 
> llvm-devel).
> 
> I want to create a port select group for llvm and clang, and I'm curious what 
> we should do.  Should we create just clang and llvm groups, or should we also 
> create a cc group which will let someone set ${prefix}/bin/cc and 
> ${prefix}/bin/c++?


I see you followed the advice to create versioned ports and to realize this by 
installing into subdirectories in ${prefix}/libexec/. I just didnt expect you'd 
go ahead and commit that to the main repository immediately. Well, I'll add 
myself as a co-maintainer.

One thing you missed is link-time-optimization. I briefly mentioned libLTO in 
our private discussion: The ld64 linker can not find libLTO.dylib in a 
subdirectory in ${prefix}/libexec. Thus it can not support 
link-time-optimization. Luckily ld64 searches libLTO.dylib relative to its 
location, even if it is executed through a symlink (see ticket #29173 for 
reference). My plan is to create a symlink to ld64 in 
${prefix}/libexec/llvm-${version}/bin/ and to redirect the relevant compilers 
to use ld64 through that symlink. This will enable link-time-optimization using 
the matching version of libLTO. And it should be far safer than requiring a 
specific setting of an llvm port group (or a hypothetical llvm_select tool) or 
relying on a mismatched libLTO. Compilers that ignore this will simply not have 
LTO support.

Regards, Michael

_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Reply via email to