FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian GCC

 
 
LinkBack Thread Tools
 
Old 04-19-2012, 05:57 AM
 
Default Bug#669330: Internal compiler error on i586

Package: gcc-4.7
Architecture: i386
Version: 4.7.0-3

The compiler blows up on an Intel Pentium, because it uses cmove
internally. (I.e. is compiled for i686+)

I realize running current Debian experimental packages on a Pentium
166 is perhaps more an exercise in retrocomputing than practicality,
but I thought it was supposed to work. Certainly most other binaries do.

(Note that gcc-4.6_4.6.3-1 has the same problem which may be demonstrated
on a 0-byte null.c file.)

Running gcc normally reports illegal instruction and internal compiler
error; cc1 under the debugger makes it clearer:
(The Linux kernel source tree is v3.3.2, if it matters.)

Script started on Thu Apr 19 04:32:24 2012
[/usr/src/linux]$ gdb --args `cat /tmp/command`
GNU gdb (GDB) 7.4-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/gcc/i486-linux-gnu/4.7/cc1...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/lib/gcc/i486-linux-gnu/4.7/cc1 -E -lang-asm -quiet -nostdinc -v -I /usr/src/linux/arch/x86/include -I arch/x86/include/generated -I include -imultiarch i386-linux-gnu -D __KERNEL__ -D __ASSEMBLY__ -D CONFIG_AS_CFI=1 -D CONFIG_AS_CFI_SIGNAL_FRAME=1 -D CONFIG_AS_CFI_SECTIONS=1 -isystem /usr/lib/gcc/i486-linux-gnu/4.7/include -include /usr/src/linux/include/linux/kconfig.h arch/x86/kernel/entry_32.S -o /tmp/entry_32.s -m32 -mtune=generic -march=i586 -fno-directives-only
#include "..." search starts here:
#include <...> search starts here:
/usr/src/linux/arch/x86/include
arch/x86/include/generated
include
/usr/lib/gcc/i486-linux-gnu/4.7/include
End of search list.

Program received signal SIGILL, Illegal instruction.
0x088abfa7 in cpp_avoid_paste(cpp_reader*, cpp_token const*, cpp_token const*)
()
(gdb) disassemble
Dump of assembler code for function _Z15cpp_avoid_pasteP10cpp_readerPK9cpp_tokenS3_:
0x088abf80 <+0>: sub $0xc,%esp
0x088abf83 <+3>: mov $0x35,%edx
0x088abf88 <+8>: mov 0x14(%esp),%ecx
0x088abf8c <+12>: mov %ebx,(%esp)
0x088abf8f <+15>: mov 0x18(%esp),%ebx
0x088abf93 <+19>: mov %edi,0x8(%esp)
0x088abf97 <+23>: mov %esi,0x4(%esp)
0x088abf9b <+27>: movzbl 0x4(%ecx),%eax
0x088abf9f <+31>: testb $0x10,0x6(%ecx)
0x088abfa3 <+35>: movzbl 0x4(%ebx),%edi
=> 0x088abfa7 <+39>: cmove %eax,%edx
0x088abfaa <+42>: movzwl 0x6(%ebx),%eax
0x088abfae <+46>: test $0x10,%al
0x088abfb0 <+48>: jne 0x88ac008 <_Z15cpp_avoid_pasteP10cpp_readerPK9cpp_tokenS3_+1 36>
0x088abfb2 <+50>: and $0xff,%edi
0x088abfb8 <+56>: mov %edi,%esi
0x088abfba <+58>: test $0x2,%al
0x088abfbc <+60>: je 0x88abfe8 <_Z15cpp_avoid_pasteP10cpp_readerPK9cpp_tokenS3_+1 04>
0x088abfbe <+62>: mov 0x8aaf7dc(,%esi,4),%eax
0x088abfc5 <+69>: movzbl (%eax),%esi
0x088abfc8 <+72>: cmp $0x3d,%esi
0x088abfcb <+75>: jne 0x88abff8 <_Z15cpp_avoid_pasteP10cpp_readerPK9cpp_tokenS3_+1 20>
0x088abfcd <+77>: cmp $0xd,%edx
0x088abfd0 <+80>: mov $0x1,%eax
0x088abfd5 <+85>: jg 0x88abff8 <_Z15cpp_avoid_pasteP10cpp_readerPK9cpp_tokenS3_+1 20>
0x088abfd7 <+87>: mov (%esp),%ebx
0x088abfda <+90>: mov 0x4(%esp),%esi
0x088abfde <+94>: mov 0x8(%esp),%edi
0x088abfe2 <+98>: add $0xc,%esp
0x088abfe5 <+101>: ret
0x088abfe6 <+102>: xchg %ax,%ax
0x088abfe8 <+104>: mov 0x8aaf5e0(,%esi,8),%eax
0x088abfef <+111>: test %eax,%eax
0x088abff1 <+113>: je 0x88ac020 <_Z15cpp_avoid_pasteP10cpp_readerPK9cpp_tokenS3_+1 60>
0x088abff3 <+115>: mov $0xffffffff,%esi
0x088abff8 <+120>: cmp $0x3c,%edx
0x088abffb <+123>: jbe 0x88ac018 <_Z15cpp_avoid_pasteP10cpp_readerPK9cpp_tokenS3_+1 52>
0x088abffd <+125>: xor %eax,%eax
0x088abfff <+127>: jmp 0x88abfd7 <_Z15cpp_avoid_pasteP10cpp_readerPK9cpp_tokenS3_+8 7>
0x088ac001 <+129>: lea 0x0(%esi,%eiz,1),%esi
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) quit
A debugging session is active.

Inferior 1 [process 16796] will be killed.

Quit anyway? (y or n) y
[/usr/src/linux]$ exit

Script done on Thu Apr 19 04:38:54 2012



--
To UNSUBSCRIBE, email to debian-gcc-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20120419055750.24212.qmail@science.horizon.com">ht tp://lists.debian.org/20120419055750.24212.qmail@science.horizon.com
 
Old 05-01-2012, 11:11 AM
Matthias Klose
 
Default Bug#669330: Internal compiler error on i586

On 19.04.2012 07:57, sacrificial-spam-address@horizon.com wrote:
> Package: gcc-4.7
> Architecture: i386
> Version: 4.7.0-3
>
> The compiler blows up on an Intel Pentium, because it uses cmove
> internally. (I.e. is compiled for i686+)
>
> I realize running current Debian experimental packages on a Pentium
> 166 is perhaps more an exercise in retrocomputing than practicality,
> but I thought it was supposed to work. Certainly most other binaries do.

both packages are configured with

--with-arch-32=i586
--with-tune=generic
--build=i486-linux-gnu
--host=i486-linux-gnu
--target=i486-linux-gnu

as seen on
https://buildd.debian.org/status/fetch.php?pkg=gcc-4.7&arch=i386&ver=4.7.0-6&stamp=1335799687



--
To UNSUBSCRIBE, email to debian-gcc-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 4F9FC4E2.3000602@debian.org">http://lists.debian.org/4F9FC4E2.3000602@debian.org
 

Thread Tools




All times are GMT. The time now is 04:59 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org