Summary: | [4.0/4.1/4.2/4.3 regression] assembler error "FATAL: can't close x.o" on m68k with new binutils | ||
---|---|---|---|
Product: | gcc | Reporter: | Martin Michlmayr <tbm> |
Component: | target | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | debian-gcc, gcc-bugs, schwab, wouter |
Priority: | P5 | Keywords: | wrong-code |
Version: | 4.1.1 | ||
Target Milestone: | 4.0.4 | ||
Host: | Target: | m68k-linux-gnu | |
Build: | m68k-linux-gnu | Known to work: | 3.4.6 |
Known to fail: | 4.0.4 4.1.1 4.2.0 | Last reconfirmed: | |
Attachments: | preprocessed source |
Description
Martin Michlmayr
2006-06-27 21:17:14 UTC
Created attachment 11766 [details]
preprocessed source
What I said about binutils might be wrong. It seems it's not due to a difference in the version, but due to one being native and one being cross. I just upgraded the binutils-m68k on i386 to the same version as that on m68k native and strangely enough the same .s file works on i386 with m68k-as but fails on m68k: native: crest% as test.s a.out: No error test.s: Assembler messages: test.s:18960: FATAL: can't close a.out : No error crest% as --version GNU assembler 2.16.91 20060413 Debian GNU/Linux Copyright 2005 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. This assembler was configured for a target of `m68k-linux-gnu'. crest% i386: 1173:tbm@reyes: ~] /usr/local/bin/m68k-linux-gnu-as test.s 1174:tbm@reyes: ~] /usr/local/bin/m68k-linux-gnu-as --version GNU assembler 2.16.91 20060413 Debian GNU/Linux Copyright 2005 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. This assembler was configured for a target of `m68k-linux-gnu'. 1175:tbm@reyes: ~] (In reply to comment #2) That would almost mean as is being miscompiled on m68k. The removed comment says: - /* If will do cse, generate all results into pseudo registers - since 1) that allows cse to find more things - and 2) otherwise cse could produce an insn the machine - cannot support. An exception is a CONSTRUCTOR into a multi-word - MEM: that's much more likely to be most efficient into the MEM. - Another is a CALL_EXPR which must return in memory. */ So it looks like point 2 is true. Sorry, wrong bug. This bug can be closed, it's really a bug in binutils triggered by some inline assembly in cln. Here is a bit more info: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=388000 Marking as invalid as requested. |