Blacklisting compiler versions or build numbers
Craig Treleaven
ctreleaven at cogeco.ca
Sun Nov 25 12:10:03 PST 2012
At 11:48 AM -0500 11/25/12, Jeremy Huddleston Sequoia wrote:
>On Nov 25, 2012, at 8:54 AM, Bradley Giesbrecht <pixilla at macports.org> wrote:
>
>> On Nov 24, 2012, at 8:10 PM, Ryan Schmidt wrote:
>>
>>> One idea that occurs to me is modifying the compiler.blacklist
>>>syntax. For example:
>>>
>>> "compiler.blacklist clang" would blacklist all versions of clang,
>>>as it does now.
>>>
>>> "compiler.blacklist clang<318.0.61" would blacklist clang builds
>>>less than 318.0.61 (cairo might use this).
>>>
>>> "compiler.blacklist clang>=421.11.66" would blacklist clang
>>>builds greater than or equal to 421.11.66 (mpich might use this).
>>>
>>> "compiler.blacklist 421.11.66<=clang<444" would blacklist clang
>>>builds greater than or equal to 421.11.66 and less than 444 (mpich
>>>might use this, if whatever clang bug it hit is fixed in some
>>>hypothetical future clang build 444).
>>
>>
>> Would the last example be easier to write, read, debug and
>>document as key/value pairs over two line?
>> compiler.blacklist clang<444
>> compiler.blacklist clang>=421.11.66
>
>Unfortunately that won't work as the first would be overwritten by
>the second ... even with the use of -append, the default logic of
>the blacklist is "or" for each element. I'd suggest that if the
>element is a list, then it is examined for versions. If it is a
>literal, then the entire family is blacklisted. I like something
>like this:
>
># All clang versions blacklisted
>compiler.blacklist-append clang
>
># clang < 308 blacklisted:
>compiler.blacklist-append {clang < 308}
>
># clang >= 421.11.66 and < 444 blacklisted
>compiler.blacklist-append {clang >= 421.11.16 < 444}
Not sure how the parsing works for the last example. For
mythtv-core.25, I tested a bunch of compilers to find a few that
worked. Eg:
# See https://trac.macports.org/ticket/35934
compiler.blacklist llvm-gcc-4.2 macports-llvm-gcc-4.2 macports-clang-3.1 \
dragonegg-3.0 dragonegg-3.1 apple-gcc-4.2
compiler.fallback-append macports-clang-3.0
# Run time failures with XCode 4.4.x and 4.5.0
if {[vercmp $xcodeversion 4.4] >= 0} {
compiler.blacklist-append clang
}
# TODO: This should be done by base
# https://trac.macports.org/ticket/32542
if {${configure.compiler} == "macports-clang-3.0"} {
depends_build-append port:clang-3.0
depends_skip_archcheck-append clang-3.0
}
Assuming that some future version of Apple clang starts working (say
the "444", above), how would this be expressed?
Craig
More information about the macports-dev
mailing list