Blacklisting gcc

Mojca Miklavec mojca at macports.org
Tue Mar 27 11:41:28 UTC 2018


On 27 March 2018 at 08:31, Ryan Schmidt wrote:
>
> > On Mar 26, 2018, at 01:25, Mojca Miklavec wrote:
> >> On 26 March 2018 at 02:49, Ryan Schmidt wrote:
> >>> On Mar 25, 2018, at 14:37, David B. Evans wrote:
> >>>
> >>>> +# blacklist compilers that do not support C11 (redefinition of typedef ‘GtkSourceTag’ at gtksourceview/gtksourcetag.h:35)
> >>>> +compiler.blacklist  *gcc* {clang < 300}
> >>>
> >>> Please be more specific here, such as "*gcc-3.* *gcc-4.*". Newer versions of gcc do support C11, and a change was already committed to MacPorts base which will let PowerPC systems fall back to gcc6 instead of clang (since clang doesn't work on PowerPC). Other ports may need more-specific blacklists too.
> >>
> >> Is there any chance to implement something like
> >>   compiler.blacklist {gcc < 4.7} {macports-clang < 3.7}
> >> ?
>
> There is no code currently written that would allow that to work. If we were to add code to the compilers_blacklist_versions for that, how should it work?

I don't know how the current implementation works, but from the
functional point of view ...

> Currently, the above line would mean "blacklist versions of the compiler named 'gcc' that are earlier than 4.7" and "blacklist versions of the compiler named 'macports-clang' that are earlier than 3.7". There are no compilers in MacPorts named "gcc" or "macports-clang" so these statements would currently have no effect. Are you proposing that the names "gcc" and "macports-clang" be special-cased in the portgroup, and taken to mean "the set of ports whose names start with 'gcc'" (or maybe even "...whose names contain 'gcc'"?) and "the set of ports whose names start with 'macports-clang'"? That's a plausible solution, I'm just pointing out that it would be special-case code.

Yes, that's the meaning that I would like to convey through that syntax.

The list for {gcc < 4.7} should cover (using
https://trac.macports.org/wiki/UsingTheRightCompiler as reference):
- apple-gcc-4.[02]
- gcc-3.3
- gcc-4.[02]
- llvm-gcc-4.2
- macports-gcc-4.[3456]
- macports-llvm-gcc-4.2
- macports-dragonegg-3.[45]-gcc-4.[56]

List of problematic compilers which should probably always be blacklisted :)
- cc
- gcc (/usr/bin/gcc)
- macports-gcc

For macports-clang I would have suggested using {clang < 3.7}, but
that one has already been taken :)

Mojca


More information about the macports-dev mailing list