[Bug c/40803] New: Optimization generates bad assembly causing compile to fail

net147 at gmail dot com gcc-bugzilla@gcc.gnu.org
Sun Jul 19 08:18:00 GMT 2009


Can't compile Linux 2.6.29.6 kernel with
grsecurity-2.1.14-2.6.29.6-200907122214 patch using GCC 4.4.0.

$ gcc -Wp,-MD,drivers/staging/meilhaus/.memain.o.d  -nostdinc -isystem
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.4.0/include -Iinclude 
-I/home/net147/gccbug/linux-2.6.29/arch/x86/include -include
include/linux/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes
-Wno-trigraphs -fno-strict-aliasing -fno-common
-Werror-implicit-function-declaration -O2 -m64 -mtune=generic -mno-red-zone
-mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI=1
-DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare
-fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
-Iarch/x86/include/asm/mach-default -Wframe-larger-than=2048
-fno-stack-protector -fomit-frame-pointer -Wdeclaration-after-statement
-Wno-pointer-sign -fwrapv -fno-dwarf2-cfi-asm -DMODULE -D"KBUILD_STR(s)=#s"
-D"KBUILD_BASENAME=KBUILD_STR(memain)"  -D"KBUILD_MODNAME=KBUILD_STR(memain)" 
-c -o drivers/staging/meilhaus/memain.o drivers/staging/meilhaus/memain.c
/home/net147/gccbug/linux-2.6.29/arch/x86/include/asm/uaccess_64.h: Assembler
messages:
/home/net147/gccbug/linux-2.6.29/arch/x86/include/asm/uaccess_64.h:92: Error:
suffix or operands invalid for `movq'

The compiler outputs the assembly instruction "movq $4294967295,(%rbp)" which
causes the compile to fail. Compiling with -O0 or with GCC 4.3.3 works.

$ gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr --enable-shared
--enable-languages=c,c++,fortran,objc,obj-c++ --enable-threads=posix
--mandir=/usr/share/man --infodir=/usr/share/info --enable-__cxa_atexit
--disable-multilib --libdir=/usr/lib --libexecdir=/usr/lib --enable-clocale=gnu
--disable-libstdcxx-pch --with-tune=generic
Thread model: posix
gcc version 4.4.0 20090630 (prerelease) (GCC)

Related bug: http://bugs.archlinux.org/task/15498.


-- 
           Summary: Optimization generates bad assembly causing compile to
                    fail
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: blocker
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: net147 at gmail dot com
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40803



More information about the Gcc-bugs mailing list