Bug 484658
Summary: | Error: operand out of range on ppc64 | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Than Ngo <than> |
Component: | gcc | Assignee: | Jakub Jelinek <jakub> |
Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | jakub |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | ppc64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2009-02-09 11:45:15 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Than Ngo
2009-02-09 10:48:51 UTC
I can reproduce it with doxygen-1.5.8, but it looks like doxygen maintainers' fault. language.cpp is simply too large for the ppc64 limitations. If I count right, there are 39 translator_*.h files included in language.cpp, each of them having virtual functions with ~ 500 strings. That's almost 20000 unique string literals used throughout that compilation unit, times 8 bytes pointer size is well over the 64KB .toc or .toc1 (with -mminimal-toc) limit. Split language.cpp into smaller compilation units (either one per translation, or at least split them into half), or put all or most strings into an array or something similar. yes, language.cpp is to large, split them into half fixes the build problem Or alternatively compile language.cpp with -fno-merge-constants, while that means string constants can't be merged between language.o and other *.o files, -fsection-anchors then can kick in as all string literals are then at known offsets within one .rodata block. |