GCC Bugzilla – Bug 35073
illegal opcode movw for mcu avr3
Last modified: 2014-02-16 13:14:50 UTC
Building/bootstrapping today's gcc-trunk (rev. 132088/2008-02-04) for avr-rtems4.9 fails
/users/rtems/src/toolchains/BUILD/avr-rtems4.9/./gcc/xgcc -B/users/rtems/src/toolchains/BUILD/avr-rtems4.9/./gcc/ -nostdinc -B/users/rtems/src/toolchains/BUILD/avr-rtems4.9/avr-rtems4.9/newlib/ -isystem /users/rtems/src/toolchains/BUILD/avr-rtems4.9/avr-rtems4.9/newlib/targ-include -isystem /users/rtems/src/toolchains/gcc-trunk/newlib/libc/include -B/opt/rtems-4.9/avr-rtems4.9/bin/ -B/opt/rtems-4.9/avr-rtems4.9/lib/ -isystem /opt/rtems-4.9/avr-rtems4.9/include -isystem /opt/rtems-4.9/avr-rtems4.9/sys-include -O2 -g -g -O2 -mmcu=avr35 -O2 -I../../../gcc-trunk/gcc/../newlib/libc/sys/rtems/include -O2 -g -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -DDF=SF -Dinhibit_libc -mcall-prologues -Os -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../.././gcc -I../../../../../gcc-trunk/libgcc -I../../../../../gcc-trunk/libgcc/. -I../../../../../gcc-trunk/libgcc/../gcc -I../../../../../gcc-trunk/libgcc/../include -o _mulsi3.o -MT _mulsi3.o -MD -MP -MF _mulsi3.dep -DL_mulsi3 -xassembler-with-cpp \
../../../../../gcc-trunk/libgcc/../gcc/config/avr/libgcc.S: Assembler messages:
../../../../../gcc-trunk/libgcc/../gcc/config/avr/libgcc.S:281: Error: illegal opcode movw for mcu avr3
../../../../../gcc-trunk/libgcc/../gcc/config/avr/libgcc.S:283: Error: illegal opcode movw for mcu avr3
make: *** [_mulsi3.o] Error 1
make: Leaving directory `/users/rtems/src/toolchains/BUILD/avr-rtems4.9/avr-rtems4.9/avr35/libgcc'
*** Bug 35128 has been marked as a duplicate of this bug. ***
Sent privately... wanted to log this .. untested at this point.
Please excuse me, I could not reply earlier.
Use patch for binutils:
This seems confirmed
The binutils patch mentioned in comment#2 seems to fix this issue.
Today's gcc-trunk using binutils-2.18 with the patch applied doesn't expose this breakdown anymore.
=> The cause for this breakdown was using insufficient binutils.
Bootstrapping/building gcc-4.3 for the avr requires binutils > 2.18.
Subject: Re: illegal opcode movw for mcu avr3
Please note, that this bug is also apparent in the production
version of gcc 4.2.3. This is the specific reason why I posted
a supposed copy of the original bug report: the original bug
report mentioned version 4.3, and I was unable to add version 4.2.3
to the list of affected gcc releases.
Hopefully I can get around to try out the patch tonight. Please
note that while it's perfectly acceptable for a snapshot release
like gcc 4.3 to require patched binutils, this should not happen
for a standard release version of gcc IMHO. AFAIK there is no
binutils production release newer than 2.18 at the moment.
Am 11.02.2008 um 18:17 schrieb corsepiu at gcc dot gnu dot org:
> ------- Comment #4 from corsepiu at gcc dot gnu dot org 2008-02-11
> 17:17 -------
> The binutils patch mentioned in comment#2 seems to fix this issue.
> Today's gcc-trunk using binutils-2.18 with the patch applied
> doesn't expose
> this breakdown anymore.
> => The cause for this breakdown was using insufficient binutils.
> Bootstrapping/building gcc-4.3 for the avr requires binutils >
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
I just tried the suggested patch against binutils 2.18, gcc 4.2.3 still does not compile. Also, the suggested patch does not apply cleanly against 2.18, although this only affects a .texi file which is not needed for compilation. It does indicate, though, that the patch wa snot meant for binutils 2.18 but some preversion of binutils 2.19 instead.
I hope this new version comes of binutils out soon, since 2.18 doesn't know of a platform avr35 :-( Hence gcc 4.2.3 uses avr3 which causes touble.
Note: I don't fully understand why the patch doesn't work. I clearly see a line which defines the AVR3 platform to support MOVW, I did a make clean && make && make install of the manually patched binutils before trying gcc again (also with make clean && configure --target=avr && make)
Maybe I have to wait for binutils 2.19 before this gets cleared up ...
You can also try the patch set for binutils 2.18 at the WinAVR project's CVS: <http://winavr.cvs.sourceforge.net/winavr/>. Under the "patches" module.
*** Bug 35506 has been marked as a duplicate of this bug. ***
*** Bug 36845 has been marked as a duplicate of this bug. ***
Closed as resolved+fixed.
avr-gcc builds fine as of 4.7.0 snapshot from 2011-04-16.
Both avr-binutils 2.20 and 2.21 work.
*** Bug 260998 has been marked as a duplicate of this bug. ***
Seen from the domain http://volichat.com
Page where seen: http://volichat.com/adult-chat-rooms
Marked for reference. Resolved as fixed @bugzilla.