compiler.blacklist

Craig Treleaven ctreleaven at cogeco.ca
Sun May 4 06:57:24 PDT 2014


At 10:28 PM -0500 5/3/14, Ryan Schmidt wrote:
>On May 3, 2014, at 07:28, Craig Treleaven wrote:
>>  At 8:34 PM -0500 5/2/14, Ryan Schmidt wrote:
>>>  On May 2, 2014, at 20:20, Craig Treleaven wrote:
>>>>
>>>>  For my mythtv-core.xx ports, I want to blacklist clang prior to 
>>>>XCode 5, so I added:
>>>>
>>>>  compiler.blacklist-append { clang <= 500.2.79 } \
>>>  >    macports-clang*
>>>>
>>>>  That doesn't work when I build on Lion with XCode 4.3.3 (clang 
>>>>318.0.61)--it tries to build with clang and falls over.
>>>
>>>  That sounds like you may not have included the 
>>>compiler_blacklist_versions 1.0 portgroup. If you do that, it 
>>>should do what you say: blacklist all MacPorts clangs, and Xcode 
>>>clangs less than 500. So on Macs with Xcode 4 or earlier, you'll 
>>>be building with llvm-gcc-4.2 or gcc-4.2. Is that really what you 
>>>want? If Xcode 5's clang is ok, presumably MacPorts clang 3.5 
>>>would work too, maybe even 3.4, and those would probably be 
>>>preferable to the old llvm-gcc or gcc.
>>
>>  You are indeed correct; the line to add the 
>>compiler_blacklist_versions portgroup got dropped somewhere along 
>>the way.  And the buildbots were down when the change was committed.
>>
>>  Is this something that lint could be made to pick up?  ie a 
>>compiler version comparison used but required PortGroup missing?
>
>Good idea. Done in r119714.
>
>Ultimately the workings of the compiler_blacklist_versions portgroup 
>should be incorporated into base instead.
>
>
>>  Pre-XCode 5, Myth builds and runs fine with gcc and llvm-gcc.  The 
>>the upstream project only recently put in some fixes that allow it 
>>to build with later versions of clang.
>>
>>  Re MacPorts-supplied versions of clang, I simply haven't tried to 
>>build with them.  I cribbed that section from qt4-mac port since it 
>>had the same issue with LIBRARY_PATH that I had.  The 
>>'macports-clang*' exclusion is probably extraneous but I wanted to 
>>be sure to use know-working compilers, only.
>
>There may be some small difference between MacPorts clang and Xcode 
>clang, but the primary difference is the version numbering.
>
>According to our XcodeVersionInfo wiki page, Xcode 5.0 came with 
>"Apple LLVM version 5.0 (clang-500.2.75) (based on LLVM 3.3svn)". 
>"LLVM 3.3svn" means that this version corresponds to some version of 
>LLVM that is greater than 3.3 and less than 3.4. So if you already 
>know that Xcode 5's clang works, and earlier Xcodes' clangs don't 
>work, then you also know that MacPorts clang 3.3 and earlier won't 
>work either, and MacPorts clang 3.4 and later should work.

Thanks, I'll add this to the list of things to test.  I'm a bit 
gunshy about compilers.  After XCode 4.4 came out, the port would 
compile with certain compilers but threw runtime failures (seemingly 
deep in libunwind).  I never did find the cause of the problem, but 
with help, we found certain combinations that worked and stuck with 
them.  Don't want to re-awaken the monsters!  ;)

Craig


More information about the macports-dev mailing list