|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>|
|Severity:||normal||CC:||debian-gcc, gcc-bugs, schwab, wouter|
|Build:||m68k-linux-gnu||Known to work:||3.4.6|
|Known to fail:||4.0.4 4.1.1 4.2.0||Last reconfirmed:|
Description Martin Michlmayr 2006-06-27 21:17:14 UTC
Comment 1 Martin Michlmayr 2006-06-27 22:08:58 UTC
Created attachment 11766 [details] preprocessed source
Comment 2 Martin Michlmayr 2006-06-27 22:21:22 UTC
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: ~]
Comment 3 Andrew Pinski 2006-06-28 11:15:41 UTC
(In reply to comment #2) That would almost mean as is being miscompiled on m68k.
Comment 4 Andreas Schwab 2006-08-07 23:12:40 UTC
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.
Comment 5 Andreas Schwab 2006-08-07 23:13:15 UTC
Sorry, wrong bug.
Comment 6 Roman Zippel 2007-01-31 18:20:34 UTC
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
Comment 7 Andrew Pinski 2007-01-31 18:27:25 UTC
Marking as invalid as requested.