Bug 1422456
| Summary: | Optimisation generates incorrect code on armv7hl | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Tom Hughes <tom> | ||||||
| Component: | boost | Assignee: | Jonathan Wakely <jwakely> | ||||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
| Severity: | unspecified | Docs Contact: | |||||||
| Priority: | unspecified | ||||||||
| Version: | 26 | CC: | dakingun, davejohansen, denis.arnaud_fedora, jakub, jwakely, law, me, mpolacek | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2017-07-01 11:07:39 UTC | Type: | Bug | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Attachments: |
|
||||||||
Created attachment 1250552 [details]
Compressed preprocessed source for test case
This changed with http://gcc.gnu.org/r235622 aka http://gcc.gnu.org/PR13962 fix. Unfortunately the source is way too large and that optimization makes a lot of changes in the huge source. This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle. Changing version to '26'. This is actually a boost bug, see the upstream PR for details. I've patched boost in rawhide to workaround this. Not in f26 yet. This got fixed by a change in gcc-7 instead, so I'm going to close this and remove the patch from rawhide's boost.spec, as it's no longer needed. |
Created attachment 1250551 [details] Test case I have a package (mapnik) that is failing some tests on armv7hl since the switch to gcc 7 in rawhide while still passing on all other platforms. I have extracted the relevant code and narrowed it down as best I can but unfortunately as it involves a boost::spirit parser the 50 lines of source expands to about 6Mb of preprocessed source :-( Test case and preprocessed source are attached - the resulting code should not assert when run but will on armv7hl if compiled with both -O2 and -fstack-protector-strong options. Bisecting the optimisation flags has narrowed it down to the -ftree-pre option, so this produces failing code: g++ -Wall -std=c++11 -O2 -fstack-protector-strong while this produces working code: g++ -Wall -std=c++11 -O2 -fno-tree-pre -fstack-protector-strong