gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] Re: gcc-3.2: miscompilation on powerpc with -O2 or higher


From: Camm Maguire
Subject: [Gcl-devel] Re: gcc-3.2: miscompilation on powerpc with -O2 or higher
Date: Sun, 02 Mar 2003 07:59:51 -0500


Greetings!  Just a followup note to say that I've reconfirmed this
problem, and have a gdb trace.  All is well with 2.95 -O6
-fomit-frame-pointer, but the following happens with gcc-3.2 with -O2
or greater: (For the time being, GCL lowers its gcc optimization to -O
when using powerpc and >=gcc-3.2. )

=============================================================================
address@hidden:~/gcl1/unixport$ gcc-3.2 -v
gcc-3.2 -v
Reading specs from /usr/lib/gcc-lib/powerpc-linux/3.2.3/specs
Configured with: ../src/configure -v 
--enable-languages=c,c++,java,f77,proto,pascal,objc,ada --prefix=/usr 
--mandir=/usr/share/man --infodir=/usr/share/info 
--with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared --with-system-zlib 
--enable-nls --without-included-gettext --enable-__cxa_atexit 
--enable-clocale=gnu --enable-java-gc=boehm --enable-objc-gc powerpc-linux
Thread model: posix
gcc version 3.2.3 20030210 (Debian prerelease)
=============================================================================


cpp -I../h new_init.c |grep -5 MACROEXP

{ extern object sLfuncall ; sLfuncall = (1 == 1 ? make_ordinary("FUNCALL") : 1 
== 0 ? make_si_ordinary("FUNCALL"): 1 == 2 ? make_keyword("FUNCALL"): 
(error("Bad pack variable in DEF_ORDINARY\n"),(object)0));}
{ extern object sLAmacroexpand_hookA; sLAmacroexpand_hookA = (1 == 1 ? 
make_special("*MACROEXPAND-HOOK*",sLfuncall) : (1 == 0 ? 
make_si_special("*MACROEXPAND-HOOK*",sLfuncall): (error("Bad pack variable in 
DEFVAR\n"),(object)0)));}
=============================================================================

gdb raw_gcl
gdb raw_gcl
GNU gdb 5.3-debian
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "powerpc-linux"...
(gdb) r ./ <foo
r ./ <foo
Starting program: /home/camm/gcl1/unixport/raw_gcl ./ <foo
GCL (GNU Common Lisp)  April 1994  32768 pages
Building symbol table for /home/camm/gcl1/unixport/raw_gcl ..
loading ./../lsp/export.lsp
Initializing defmacro.o
Initializing evalmacros.o
Initializing top.o
Initializing module.o
loading ./../lsp/autoload.lsp

Program received signal SIGSEGV, Segmentation fault.
IapplyVector (fun=0x0, nargs=3, base=0x10264998) at nfunlink.c:197
197       switch(type_of(fun)) {
(gdb) b make_special
b make_special
Breakpoint 1 at 0x1002d1f4: file symbol.d, line 112.
(gdb) r
r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
y

Starting program: /home/camm/gcl1/unixport/raw_gcl ./ <foo
GCL (GNU Common Lisp)  April 1994  32768 pages

Breakpoint 1, make_special (s=0x10249edc "*MACROEXPAND-HOOK*", v=0x0)
    at symbol.d:112
112             x = make_ordinary(s);
(gdb) 
(gdb) bt
bt
#0  make_special (s=0x10249edc "*MACROEXPAND-HOOK*", v=0x0) at symbol.d:112
#1  0x10006f0c in NewInit () at new_init.c:128
#2  0x100032e8 in initlisp () at main.c:464
#3  0x10002d04 in main (argc=270925824, argv=0x10260000, envp=0x10300000)
    at main.c:330
#4  0x0fd08e04 in __libc_start_main () from /lib/libc.so.6
(gdb) p &make_special
p &make_special
$4 = (object (*)(char *, object)) 0x1002d1e0 <make_special>
(gdb) frame 0
frame 0
#0  make_special (s=0x10249edc "*MACROEXPAND-HOOK*", v=0x0) at symbol.d:112
112             x = make_ordinary(s);
(gdb) p &v
p &v
Address requested for identifier "v" which is in register $r29
(gdb) frame 1
frame 1
#1  0x10006f0c in NewInit () at new_init.c:128
128     DEFVAR("*MACROEXPAND-HOOK*",sLAmacroexpand_hookA,LISP,sLfuncall,"")
(gdb) p sLfuncall
p sLfuncall
$5 = 0x10318288
(gdb) p &sLfuncall
p &sLfuncall
$6 = (object *) 0x10262c10
(gdb) i reg
i reg
r0             0x10006f0c       268463884
r1             0x7ffffc50       2147482704
r2             0x0      0
r3             0x10249edc       270835420
r4             0x0      0
r5             0x0      0
r6             0x10249ed4       270835412
r7             0x262f6cd5       640642261
r8             0x1      1
r9             0x10260000       270925824
r10            0x7      7
r11            0x7      7
r12            0x80808080       -2139062144
r13            0x1026a680       270968448
r14            0x0      0
r15            0x0      0
r16            0x0      0
r17            0x0      0
r18            0x0      0
r19            0x0      0
r20            0x10260000       270925824
r21            0xa      10
r22            0x10300000       271581184
r23            0x10260000       270925824
r24            0x10010000       268500992
r25            0x7fffffff       2147483647
r26            0x10290000       271122432
r27            0x10300000       271581184
r28            0x10260000       270925824
r29            0x10300000       271581184
r30            0x10260000       270925824
r31            0x10300000       271581184
pc             0x1002d1f4       268620276
ps             0x2d032  184370
cr             0x48000822       1207961634
lr             0x10006f0c       268463884
ctr            0x1000babc       268483260
xer            0x20000000       536870912
fpscr          0x82024000       -2113781760
vscr           0x0      0
vrsave         0x0      0
(gdb) disassemble

(snip)

0x10006edc <NewInit+2616>:      bl      0x10087e5c <LISP_makefun>
0x10006ee0 <NewInit+2620>:      lis     r3,4133
0x10006ee4 <NewInit+2624>:      addi    r3,r3,-24876
0x10006ee8 <NewInit+2628>:      crclr   4*cr1+eq
0x10006eec <NewInit+2632>:      bl      0x1002d0c8 <make_ordinary>
0x10006ef0 <NewInit+2636>:      lis     r9,4134
0x10006ef4 <NewInit+2640>:      mr      r0,r3
0x10006ef8 <NewInit+2644>:      lwz     r4,11280(r9)
0x10006efc <NewInit+2648>:      lis     r3,4133
0x10006f00 <NewInit+2652>:      stw     r0,11280(r9)
0x10006f04 <NewInit+2656>:      addi    r3,r3,-24868
0x10006f08 <NewInit+2660>:      bl      0x1002d1e0 <make_special>
---Type <return> to continue, or q <return> to quit---
0x10006f0c <NewInit+2664>:      lis     r9,4134
0x10006f10 <NewInit+2668>:      stw     r3,10576(r9)
0x10006f14 <NewInit+2672>:      lis     r3,4133
0x10006f18 <NewInit+2676>:      addi    r3,r3,-24848
0x10006f1c <NewInit+2680>:      crclr   4*cr1+eq
0x10006f20 <NewInit+2684>:      bl      0x1002d258 <make_si_ordinary>
0x10006f24 <NewInit+2688>:      lis     r9,4134
0x10006f28 <NewInit+2692>:      mr      r0,r3
0x10006f2c <NewInit+2696>:      addi    r4,r29,-5488
0x10006f30 <NewInit+2700>:      lis     r3,4133
0x10006f34 <NewInit+2704>:      stw     r0,10348(r9)
0x10006f38 <NewInit+2708>:      addi    r3,r3,-24836


=============================================================================

Take care,

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

[Prev in Thread] Current Thread [Next in Thread]