Bug 901750
Summary: | gcc internal compiler error in extract_insn, at recog.c:2084 on x86_64 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 5 | Reporter: | Ondrej Mikle <ondrej.mikle> | ||||||||
Component: | gcc | Assignee: | Jakub Jelinek <jakub> | ||||||||
Status: | CLOSED ERRATA | QA Contact: | Martin Cermak <mcermak> | ||||||||
Severity: | medium | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | 5.8 | CC: | law, mcermak, mpolacek, ohudlick | ||||||||
Target Milestone: | rc | ||||||||||
Target Release: | --- | ||||||||||
Hardware: | x86_64 | ||||||||||
OS: | Linux | ||||||||||
URL: | https://trac.torproject.org/projects/tor/ticket/7975 | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | gcc-4.1.2-55.el5 | Doc Type: | Bug Fix | ||||||||
Doc Text: |
Previously, GCC might crash when compiling code with arithmetics on TImode (a sixteen-byte integer) values on x86_64 architecture. The code has been fixed so that the crash does not occur anymore. Note that the 128-bit integer support in 4.1 has several deficiencies; the support is better in gcc44.
|
Story Points: | --- | ||||||||
Clone Of: | Environment: | ||||||||||
Last Closed: | 2014-09-16 00:28:26 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: | |||||||||||
Bug Depends On: | |||||||||||
Bug Blocks: | 1049888 | ||||||||||
Attachments: |
|
Description
Ondrej Mikle
2013-01-19 00:04:37 UTC
Created attachment 682822 [details]
Script with gcc invocation to trigger the bug
This script contains all necessary gcc compilation flags to trigger the bug.
Created attachment 682823 [details]
Build log when using mock on FC17 with epel-5-x86_64 config
Note: EL6 with gcc.x86_64 4.4.6-4.el6 is unaffected by this bug. FC16's and FC17's current gcc versions are unaffected as well. I'd guess some fix would need to be backported (no idea which one). Filled out bugzilla fields to match platform as precisely as possible (sorry if this causes too many notifications, this should be last for today). Reduced testcase for -O2: typedef unsigned uint128_t __attribute__ ((mode (TI))); void bar (uint128_t); void foo (uint128_t t[2]) { t[0] += 0x8000000000000 - 1; bar ((t[0] >> 26) | (t[1] << 25)); } I don't think 128-bit integer support in 4.1 is good enough to even try something like that. Anyway, seems the bug went away somewhere in between r122000 and r124000, will bisect to see if the fix might be backportable or not. If not, just use gcc44 to compile code that needs 128-bit integers instead. Ok, seems to be backportable, http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124900 fixes this (the trunk commit was r122945). Setting to proper component. This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux release for currently deployed products. This request is not yet committed for inclusion in a release. Verified for gcc-4.1.2-55.el5. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2014-1209.html |