This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/53386] Bad assembly code produced for m68000
- From: "mikpe at it dot uu.se" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 17 May 2012 11:31:35 +0000
- Subject: [Bug target/53386] Bad assembly code produced for m68000
- Auto-submitted: auto-generated
- References: <bug-53386-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53386
--- Comment #7 from Mikael Pettersson <mikpe at it dot uu.se> 2012-05-17 11:31:35 UTC ---
gcc-4.3.x changed gcc/config.gcc:
--- gcc-4.2.4/gcc/config.gcc 2008-03-13 20:11:43.000000000 +0100
+++ gcc-4.3.6/gcc/config.gcc 2011-02-25 00:02:14.000000000 +0100
...
-m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with
uClibc
- tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h
m68k/uclinux.h"
- tm_defines="${tm_defines} MOTOROLA USE_GAS"
- tmake_file=m68k/t-uclinux
+m68k-*-uclinuxoldabi*) # Motorola m68k/ColdFire running uClinux
+ # with uClibc, using the original
+ # m68k-elf-based ABI
+ default_m68k_cpu=68020
+ default_cf_cpu=5206
+ tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h
m68k/uclinux-oldabi.h"
+ tm_defines="${tm_defines} MOTOROLA=1"
+ tmake_file="m68k/t-floatlib m68k/t-uclinux"
+ use_fixproto=no
+ ;;
+m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
+ # with uClibc, using the new GNU/Linux-style
+ # ABI.
+ default_m68k_cpu=68020
+ default_cf_cpu=5206
+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h flat.h m68k/linux.h
m68k/uclinux.h ./sysroot-suffix.h"
+ tm_defines="${tm_defines} MOTOROLA=1 UCLIBC_DEFAULT=1"
+ extra_options="${extra_options} linux.opt"
+ tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
use_fixproto=no
;;
Upping the default m68k cpu to 020 is suspicious, but the real problem is the
inclusion of m68k/linux.h in tm_files, as that disables strict-alignment
support, even when compiling with an explicit -m68000 option.
I don't know anthing about the uClinux m68k "old" and "new" ABIs, but it looks
like you will get correct behaviour if you build for m68k-uclinuxoldabi
--with-cpu=m68000.