Summary: | [4.3/4.4/4.5 regression] m68k-linux bootstrap error during stage2 | ||
---|---|---|---|
Product: | gcc | Reporter: | Debian GCC Maintainers <debian-gcc> |
Component: | target | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gcc-bugs, pinskia, schwab, tbm |
Priority: | P5 | Keywords: | assemble-failure, build |
Version: | 4.2.0 | ||
Target Milestone: | 4.3.5 | ||
Host: | Target: | m68k-linux | |
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | ||
Attachments: |
test case from application torcs
test case from application grace test case from application synfig |
Description
Debian GCC Maintainers
2006-02-22 12:25:46 UTC
Could you submit a preprocessed testcase? Many of us do not have m68k hardware that can be used for bootstrap. Thanks, m68k is not a primary or secondary platform. This is a very common error on m68k. We got another bug report, see http://bugs.debian.org/359281, which says: > torcs, grace, and rscheme all fail with variations on the theme of > track.s: Assembler messages: > track.s:10716: Error: value out of range > This bug appears in at least gcc-4.0 4.0.2-3 - 4.0.2-10. > Works fine with latest binutils and gcc-3.3. > torcs (g++) and grace (gcc) can be made to compile with -O1 for > both 4.1 and 4.0. > rscheme works with gcc-4.0 -O1 and gcc-4.1 -O2 (in other words, > it seems to be fixed in 4.1 although the error seems the same). > None of these look easy to reduce. > Please let me know what else I can provide. I have been running some testcases through delta and while they got smaller, they're still fairly large. However, I'll attach them and hope that someone can make sense of what's going on here. Created attachment 11713 [details]
test case from application torcs
572:tbm@reyes: ~] /usr/local/bin/m68k-linux-gnu-g++ -c -O2 track.cc
...
/tmp/ccoFyyHa.s: Assembler messages:
/tmp/ccoFyyHa.s:9603: Error: value out of range
The offending line is:
fbnlt .L297
Created attachment 11714 [details]
test case from application grace
577:tbm@reyes: ~] /usr/local/bin/m68k-linux-gnu-gcc -c -O2 pars.c
...
/tmp/ccaiWxu4.s: Assembler messages:
/tmp/ccaiWxu4.s:11586: Error: value out of range
The offending line is:
fbngt .L6
I can provide more testcases on request but I think the general pattern is clear from these two: 23:00 < apinski> tbm: what is on the line which the assembler is complaining about 23:01 < tbm> fbnlt .L297 23:03 < apinski> the only thing I can think of is the distance is just too long 23:05 < apinski> tbm: so reducing the testcase is not going to help as you are just going to end up with a big testcase no matter what BTW, going from -O2 to -O1 makes both of these testcases compile. Created attachment 11715 [details]
test case from application synfig
This test case is probably also interesting because it shows a slightly different error:
7184:tbm@reyes: ~] /usr/local/bin/m68k-linux-gnu-gcc -c -O2 -S random.ii
7185:tbm@reyes: ~] m68k-linux-as random.s
random.s: Assembler messages:
random.s:581: Error: value out of range
random.s:581: Error: value of 71734 too large for field of 2 bytes at 2144
random.s:590: Error: value out of range
random.s:590: Error: value of 71680 too large for field of 2 bytes at 2188
The problem with the attached testcases is that gcc is using fbCC instead of fjCC. The former set of insns is interpreted by GAS as fixed length branches with 16 bit offset, whereas the latter is handled as variable sized branch with either 16 bit or 32 bit offset. But the bootstrap error is a different problem, since a floating point branch does not have a 8 bit field. Please move the test cases to a new bug, and instead attach a testcase for the original problem. > But the bootstrap error is a different
> problem, since a floating point branch does not have a 8 bit field. Please
> move the test cases to a new bug, and instead attach a testcase for the
> original problem.
I don't see that bootstrap error anymore so I suggest this PR to be retitled for the other testcases. Or is the 3rd testcase an example of the original problem?
If so, let's keep that and I'll move the first two testcases to another PR.
How should I proceed?
Will not be fixed in 4.2.0; retargeting at 4.2.1. Change target milestone to 4.2.3, as 4.2.2 has been released. How is the status here? we had successful builds for gcc-4.2 from the branch; no testresults / build logs for gcc-4.3 yet. Matthias 4.2.3 is being released now, changing milestones of open bugs to 4.2.4. 4.2.4 is being released, changing milestones to 4.2.5. Closing 4.2 branch. What is the status now on the three testcases? GCC 4.3.4 is being released, adjusting target milestone. Fixed by: 2007-09-18 Roman Zippel <zippel@linux-m68k.org> * config/m68k/m68k.md (beq, bne, bgt, blt, bge, ble, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, beq_rev, bne_rev, bgt_rev, blt_rev, bge_rev, ble_rev, bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Replace all fbcc with fjcc. |