See the tracker. The FILESDIR directory currently can't be used in pkg_pretend() according to PMS.
Any recommendations on how to perform a check for compiler bugs that wouldn't violate the PMS?
i don't think we need to be so specific in the checks. just reject gcc versions older than 4.9, and 5.[0123]. we don't support <=4.8 anymore, and will never stabilize 5.[0123]. so instead of compiling files, just check the `gcc-version`.
(In reply to SpanKY from comment #2) > i don't think we need to be so specific in the checks. just reject gcc > versions older than 4.9, and 5.[0123]. we don't support <=4.8 anymore, and > will never stabilize 5.[0123]. > > so instead of compiling files, just check the `gcc-version`. I'm not sure I follow. The issue is with compilers that don't have backported patches. These patches were added to GCC without revision bumps, so the only way to detect whether GCC is patched is to either test compile, or have it die during compilation when the triggering event occurs. Example: The original release of gcc-5.1 suffered from a bug with ms_abi. Eventually, that was backported, but without a revbump, so we can only determine whether the user has a patched GCC during compilation of a piece of code that would trigger the compiler bug. We have two instances of this the ms_abi issue (GCC #PR66838) and the stack reallignment issue (GCC #PR69140). I agree that we can probably do a strict version check for the 3rd check, for builtin_ms_va_list, but I'm not sure how we'd handle the other two.
Do an approximate version check in pkg_pretend, and more specific tests in one of the src_* phases (like src_configure). If the upstream build system was doing such tests, it would be in the configure phase too. Also, pkg_pretend should be reserved for quick sanity checks, but (IMHO) not do expensive tasks like compiling files.
(In reply to NP-Hardass from comment #3) > I agree that we can probably do a strict version check for the 3rd check, > for builtin_ms_va_list, but I'm not sure how we'd handle the other two. if [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then die "GCC 5.0 - 5.3 not supported" fi
(In reply to Ulrich Müller from comment #4) > Do an approximate version check in pkg_pretend, and more specific tests in > one of the src_* phases (like src_configure). If the upstream build system > was doing such tests, it would be in the configure phase too. > > Also, pkg_pretend should be reserved for quick sanity checks, but (IMHO) not > do expensive tasks like compiling files. Alright, we'll do the processing in src_configure. Thanks.
(In reply to NP-Hardass from comment #3) which is why i said you should just reject 5.[0123] entirely. the toolchain team doesn't accept any new reports for those versions, so wine shouldn't either. we only support 5.4+ now.
(In reply to SpanKY from comment #7) > (In reply to NP-Hardass from comment #3) > > which is why i said you should just reject 5.[0123] entirely. the toolchain > team doesn't accept any new reports for those versions, so wine shouldn't > either. we only support 5.4+ now. Ah, I misunderstood that. Got it now. Thanks for explaining.
Fixed in 5829502de752852949c11138e6a472a7a043ee58. Checks compiler versions where previously we checked compilation, and compilation checks moved to src_configure