Summary: | SBCL 0.8.21: hardened USE flag error message misleading | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Tyler Berry <loki> |
Component: | [OLD] Development | Assignee: | Gentoo Lisp Project <lisp> |
Status: | VERIFIED TEST-REQUEST | ||
Severity: | normal | CC: | bugs.gentoo.org |
Priority: | High | ||
Version: | 2005.0 | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Tyler Berry
2005-04-08 13:12:11 UTC
Thanks for this information, I going to add pkg_setup() { if gcc-config -c |grep hardened; then while read line; do einfo "${line}"; done <<EOF So-called "hardened" compiler features are incompatible with SBCL. You must use gcc-config to select a profile with non-hardened features and "source /etc/profile" before continuing. EOF fi } Do you think thats reasonable? typo: missing "die" after "fi" That will miss certain cases actually. From my system: % gcc-config -l [1] i686-pc-linux-gnu-3.3.4 [2] i686-pc-linux-gnu-3.4.3-20050110 * [3] i686-pc-linux-gnu-3.4.3-20050110-hardenednopie [4] i686-pc-linux-gnu-3.4.3-20050110-hardenednossp [5] i686-pc-linux-gnu-3.4.3-20050110-vanilla The -vanilla is the only one that will work with SBCL (and for that matter, CMUCL too). But AFAIK that option will only exist if the gcc was compiled with hardened in the first place. Maybe something like: use hardened && if `gcc-config -c | grep -q vanilla` ; then ... fi Which assumes that hardened wasn't altered between the compilation of gcc and SBCL, but really I don't see a way around that assumption. Looking for an update; the ebuild currently in portage has the version you suggested, which misdiagnoses the gcc status. Is this logic correct... use hardened && if `gcc-config -c | grep -q vanilla` ; then ... fi "If the user has "hardened" in thier USE flag set, and their corrently selected gcc-config profile has "vanilla" in it, then show the error message and die". I'm a bit confused because in Comment #3 you mentioned that -vanilla is the only profile which works with SBCL and CMUCL. Did you mean: use hardened && if `gcc-config -c | grep -qv vanilla`; then ... fi Which is true for when hardened is in USE *and* their gcc-config profile *doesn't* contain "vanilla" in it. *** Bug 64452 has been marked as a duplicate of this bug. *** I added the above check to the ebuild for sbcl-0.9.1. Please check my logic. I'll resolve this bug for now with a test request. Sorry for the delay, RL reared its ugly head this weekend. Either of those two formulations should work, just as long as you're sensitive to which case is 'OK' and which one is 'Evil', and do the right thing inside the conditional as appropriate. The way you have it in the ebuild right now seems to behave correctly for me. Thanks. I will resolve this bug as verified then. |