Compiling linux kernel 2.6.25.7 with gcc cross compiler for cris 4.3.1 produces internal compiler error in net/core/stream.c sk_stream_wait_connect().
Created attachment 15808 [details] preprocessed source that caused the internal compiler error (with gcc4.3.1)
hinkok@alala /work/stage/git.br/project_build_cris/uclibc/linux-2.6.25.7 $ /work/stage/git.br/build_cris/staging_dir/usr/bin/cris-linux-uclibc-gcc -Wp,-MD,net/core/.stream.o.d -nostdinc -isystem /work/stage/git.br/build_cris/staging_dir/usr/bin/../lib/gcc/cris-linux-uclibc/4.3.1/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -fno-stack-protector -mlinux -march=v10 -pipe -Iinclude/asm/arch/mach -Iinclude/asm/arch -fomit-frame-pointer -Wdeclaration-after-statement -Wno-pointer-sign --sysroot=/work/stage/git.br/build_cris/staging_dir/ -isysroot /work/stage/git.br/build_cris/staging_dir -I=/usr/include -Os -pipe -I/work/stage/git.br/build_cris/staging_dir/usr/include -mtune=v10 -march=v10 -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(stream)" -D"KBUILD_MODNAME=KBUILD_STR(stream)" -c -o net/core/stream.o net/core/stream.c (const_int -13 [0xfffffff3]) net/core/stream.c: In function 'sk_stream_wait_connect': net/core/stream.c:78: internal compiler error: output_operand: invalid operand for 'p' modifier Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. {standard input}: Assembler messages: {standard input}:488: Warning: partial line at end of file ignored hinkok@alala /work/stage/git.br/project_build_cris/uclibc/linux-2.6.25.7 $ /work/stage/git.br/build_cris/staging_dir/usr/bin/cris-linux-uclibc-gcc --version cris-linux-uclibc-gcc (GCC) 4.3.1 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I can NOT reproduce the error with i686 toolchain. hinkok@alala /work/stage/git.br/project_build_i686/uclibc/linux-2.6.25.7 $ /work/stage/git.br/build_i686/staging_dir/usr/bin/i686-linux-uclibc-gcc --version i686-linux-uclibc-gcc (GCC) 4.3.1 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I can NOT reproduce the error with cris toolchain based on gcc 4.2.3. hinkok@alala /work/stage/git.br/project_build_cris/uclibc/linux-2.6.25.7 $ /work/stage/git.br/build_cris/staging_dir/usr/bin/cris-linux-uclibc-gcc --version cris-linux-uclibc-gcc (GCC) 4.2.3 Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I can reproduce the error with cris toolchain based on gcc 4.4-20080620 snapshot. hinkok@alala /work/stage/git.br/project_build_cris/uclibc/linux-2.6.25.7 $ /work/stage/git.br/build_cris/staging_dir/usr/bin/cris-linux-uclibc-gcc -Wp,-MD,net/core/.stream.o.d -nostdinc -isystem /work/stage/git.br/build_cris/staging_dir/usr/bin/../lib/gcc/cris-linux-uclibc/4.4.0/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -fno-stack-protector -mlinux -march=v10 -pipe -Iinclude/asm/arch/mach -Iinclude/asm/arch -fomit-frame-pointer -Wdeclaration-after-statement -Wno-pointer-sign --sysroot=/work/stage/git.br/build_cris/staging_dir/ -isysroot /work/stage/git.br/build_cris/staging_dir -I=/usr/include -Os -pipe -I/work/stage/git.br/build_cris/staging_dir/usr/include -mtune=v10 -march=v10 -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(stream)" -D"KBUILD_MODNAME=KBUILD_STR(stream)" -c -o net/core/stream.o net/core/stream.c (const_int -13 [0xfffffff3]) net/core/stream.c: In function 'sk_stream_wait_connect': net/core/stream.c:78: internal compiler error: output_operand: invalid operand for 'p' modifier Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. {standard input}: Assembler messages: {standard input}:488: Warning: partial line at end of file ignored hinkok@alala /work/stage/git.br $ /work/stage/git.br/build_cris/staging_dir/usr/bin/cris-linux-uclibc-gcc --version cris-linux-uclibc-gcc (GCC) 4.4.0 20080620 (experimental) Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Created attachment 15809 [details] preprocessed source that caused the internal compiler error (with gcc4.4-20080620)
Thanks for th report, I hope you don't feel bad that I have to close it as a duplicate: your work is appreciated. There's a hint in PR35492 if you want a local patch. (I guess I should up the priority for fixing PR35492; I thought we'd only ever see this problem locally at Axis. A solution that works is quite simple; the correct solution is harder.) *** This bug has been marked as a duplicate of 35492 ***
I have no problem with that - if it is a duplicate it is a duplicate.. The PR35492 is explaining something but I'm too lame to understand the compiler talk. I guess I'll wait for the trunk fix. OTOH if someone could provide the 'quick' fix for 4.3 I could stress test it right now..