Port-macppc archive

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

Xorg versus -current



Still trying to beat Xorg into submission.  I'm running -current from
mid-December with jemalloc disabled, and Xorg from "server-1.3-branch"
in git.  When I run /usr/local/bin/Xorg it segfaults.  Backtrace:

#0  0xeffe5924 in dlsym (handle=0xfffffffe, name=0xefa6f26c 
"gRADEONEntityIndex") at /media/e/netbsd/src/libexec/ld.elf_so/rtld.c:826
#1  0x018631d4 in DLFindSymbol (name=0xefa6f26c "gRADEONEntityIndex") at 
dlloader.c:116
#2  0x018605ac in LoaderSymbol (sym=0xd324968 <Address 0xd324968 out of 
bounds>) at loader.c:409
#3  0xefa1dd08 in getRADEONEntityIndex () at radeon_driver.c:383
#4  0xefa1dd94 in RADEONEntPriv (pScrn=0x19f4000) at radeon_driver.c:428
#5  0xefa1f9e8 in RADEONGetClockInfo (pScrn=0x19f4000) at radeon_driver.c:1001
#6  0xefa23ef0 in RADEONPreInitControllers (pScrn=0x19f4000) at 
radeon_driver.c:2537
#7  0xefa24a00 in RADEONPreInit (pScrn=0x19f4000, flags=0) at 
radeon_driver.c:2791
#8  0x0185f5e8 in InitOutput (pScreenInfo=0x19e28ec, argc=1, argv=0xffffcdc4) 
at xf86Init.c:601
#9  0x018242a8 in main (argc=1, argv=0xffffcdc4, envp=<value optimized out>) at 
main.c:370

The exact line in dlsym is:

                retaddr = __builtin_return_address(0); /* __GNUC__ only */

This line corresponds to the instructions, the middle one being the
cause of the segfault:

0xeffe5920 <dlsym+88>:  lwz     r9,64(r31)
0xeffe5924 <dlsym+92>:  lwz     r0,4(r9)
0xeffe5928 <dlsym+96>:  stw     r0,60(r31)

The complete disassembly of dlsym is attached.  My knowledge of PowerPC
assembler and the ABI is quite rusty, but it seems to me that dlsym
reserves 80 bytes on the stack, accesses the word at the 64th byte -
which has not been initialized, and contains 1 in this case - and tries
to follow it, which obviously fails.  Or did I miss something?

Magnus

(gdb) disas dlsym
Dump of assembler code for function dlsym:
0xeffe58c8 <dlsym+0>:   stwu    r1,-80(r1)
0xeffe58cc <dlsym+4>:   mflr    r0
0xeffe58d0 <dlsym+8>:   stw     r30,72(r1)
0xeffe58d4 <dlsym+12>:  stw     r31,76(r1)
0xeffe58d8 <dlsym+16>:  stw     r0,84(r1)
0xeffe58dc <dlsym+20>:  mr      r31,r1
0xeffe58e0 <dlsym+24>:  bl      0xefff106c <bltn+3024>
0xeffe58e4 <dlsym+28>:  mflr    r30
0xeffe58e8 <dlsym+32>:  stw     r3,28(r31)
0xeffe58ec <dlsym+36>:  stw     r4,24(r31)
0xeffe58f0 <dlsym+40>:  lwz     r3,24(r31)
0xeffe58f4 <dlsym+44>:  bl      0xeffe6858 <_rtld_elf_hash>
0xeffe58f8 <dlsym+48>:  mr      r0,r3
0xeffe58fc <dlsym+52>:  stw     r0,52(r31)
0xeffe5900 <dlsym+56>:  li      r0,0
0xeffe5904 <dlsym+60>:  stw     r0,56(r31)
0xeffe5908 <dlsym+64>:  li      r0,0
0xeffe590c <dlsym+68>:  stw     r0,44(r31)
0xeffe5910 <dlsym+72>:  lwz     r9,28(r31)
0xeffe5914 <dlsym+76>:  addi    r0,r9,3
0xeffe5918 <dlsym+80>:  cmplwi  cr7,r0,3
0xeffe591c <dlsym+84>:  bgt-    cr7,0xeffe5a6c <dlsym+420>
0xeffe5920 <dlsym+88>:  lwz     r9,64(r31)
0xeffe5924 <dlsym+92>:  lwz     r0,4(r9)
0xeffe5928 <dlsym+96>:  stw     r0,60(r31)
0xeffe592c <dlsym+100>: lwz     r3,60(r31)
0xeffe5930 <dlsym+104>: bl      0xeffe5fa4 <_rtld_obj_from_addr>
0xeffe5934 <dlsym+108>: mr      r0,r3
0xeffe5938 <dlsym+112>: stw     r0,48(r31)
0xeffe593c <dlsym+116>: lwz     r0,48(r31)
0xeffe5940 <dlsym+120>: cmpwi   cr7,r0,0
0xeffe5944 <dlsym+124>: bne-    cr7,0xeffe595c <dlsym+148>
0xeffe5948 <dlsym+128>: lwz     r3,92(r30)
0xeffe594c <dlsym+132>: bl      0xeffe5d0c <_rtld_error>
0xeffe5950 <dlsym+136>: li      r0,0
0xeffe5954 <dlsym+140>: stw     r0,16(r31)
0xeffe5958 <dlsym+144>: b       0xeffe5b30 <dlsym+616>
0xeffe595c <dlsym+148>: lwz     r9,28(r31)
0xeffe5960 <dlsym+152>: stw     r9,20(r31)
0xeffe5964 <dlsym+156>: li      r0,-2
0xeffe5968 <dlsym+160>: lwz     r9,20(r31)
0xeffe596c <dlsym+164>: cmpw    cr7,r9,r0
0xeffe5970 <dlsym+168>: beq-    cr7,0xeffe5a40 <dlsym+376>
0xeffe5974 <dlsym+172>: li      r0,-2
0xeffe5978 <dlsym+176>: lwz     r9,20(r31)
0xeffe597c <dlsym+180>: cmpw    cr7,r9,r0
0xeffe5980 <dlsym+184>: bgt-    cr7,0xeffe5998 <dlsym+208>
0xeffe5984 <dlsym+188>: li      r0,-3
0xeffe5988 <dlsym+192>: lwz     r9,20(r31)
0xeffe598c <dlsym+196>: cmpw    cr7,r9,r0
0xeffe5990 <dlsym+200>: beq-    cr7,0xeffe5a30 <dlsym+360>
0xeffe5994 <dlsym+204>: b       0xeffe5a68 <dlsym+416>
0xeffe5998 <dlsym+208>: li      r0,-1
0xeffe599c <dlsym+212>: lwz     r9,20(r31)
0xeffe59a0 <dlsym+216>: cmpw    cr7,r9,r0
0xeffe59a4 <dlsym+220>: beq-    cr7,0xeffe59e0 <dlsym+280>
0xeffe59a8 <dlsym+224>: lwz     r0,20(r31)
0xeffe59ac <dlsym+228>: cmpwi   cr7,r0,0
0xeffe59b0 <dlsym+232>: beq-    cr7,0xeffe59b8 <dlsym+240>
0xeffe59b4 <dlsym+236>: b       0xeffe5a68 <dlsym+416>
0xeffe59b8 <dlsym+240>: lwz     r3,24(r31)
0xeffe59bc <dlsym+244>: lwz     r4,52(r31)
0xeffe59c0 <dlsym+248>: lwz     r5,48(r31)
0xeffe59c4 <dlsym+252>: li      r6,0
0xeffe59c8 <dlsym+256>: bl      0xeffe6a54 <_rtld_symlook_obj>
0xeffe59cc <dlsym+260>: mr      r0,r3
0xeffe59d0 <dlsym+264>: stw     r0,56(r31)
0xeffe59d4 <dlsym+268>: lwz     r0,48(r31)
0xeffe59d8 <dlsym+272>: stw     r0,44(r31)
0xeffe59dc <dlsym+276>: b       0xeffe5af4 <dlsym+556>
0xeffe59e0 <dlsym+280>: lwz     r9,48(r31)
0xeffe59e4 <dlsym+284>: lwz     r0,8(r9)
0xeffe59e8 <dlsym+288>: stw     r0,48(r31)
0xeffe59ec <dlsym+292>: b       0xeffe5a30 <dlsym+360>
0xeffe59f0 <dlsym+296>: lwz     r3,24(r31)
0xeffe59f4 <dlsym+300>: lwz     r4,52(r31)
0xeffe59f8 <dlsym+304>: lwz     r5,48(r31)
0xeffe59fc <dlsym+308>: li      r6,0
0xeffe5a00 <dlsym+312>: bl      0xeffe6a54 <_rtld_symlook_obj>
0xeffe5a04 <dlsym+316>: mr      r0,r3
0xeffe5a08 <dlsym+320>: stw     r0,56(r31)
0xeffe5a0c <dlsym+324>: lwz     r0,56(r31)
0xeffe5a10 <dlsym+328>: cmpwi   cr7,r0,0
0xeffe5a14 <dlsym+332>: beq-    cr7,0xeffe5a24 <dlsym+348>
0xeffe5a18 <dlsym+336>: lwz     r0,48(r31)
0xeffe5a1c <dlsym+340>: stw     r0,44(r31)
0xeffe5a20 <dlsym+344>: b       0xeffe5af4 <dlsym+556>
0xeffe5a24 <dlsym+348>: lwz     r9,48(r31)
0xeffe5a28 <dlsym+352>: lwz     r0,8(r9)
0xeffe5a2c <dlsym+356>: stw     r0,48(r31)
0xeffe5a30 <dlsym+360>: lwz     r0,48(r31)
0xeffe5a34 <dlsym+364>: cmpwi   cr7,r0,0
0xeffe5a38 <dlsym+368>: bne+    cr7,0xeffe59f0 <dlsym+296>
0xeffe5a3c <dlsym+372>: b       0xeffe5af4 <dlsym+556>
0xeffe5a40 <dlsym+376>: addi    r0,r31,44
0xeffe5a44 <dlsym+380>: lwz     r3,24(r31)
0xeffe5a48 <dlsym+384>: lwz     r4,52(r31)
0xeffe5a4c <dlsym+388>: lwz     r5,48(r31)
0xeffe5a50 <dlsym+392>: mr      r6,r0
0xeffe5a54 <dlsym+396>: li      r7,0
0xeffe5a58 <dlsym+400>: bl      0xeffe6e58 <_rtld_symlook_default>
0xeffe5a5c <dlsym+404>: mr      r0,r3
0xeffe5a60 <dlsym+408>: stw     r0,56(r31)
0xeffe5a64 <dlsym+412>: b       0xeffe5af4 <dlsym+556>
0xeffe5a68 <dlsym+416>: bl      0xeffedeb0 <abort>
0xeffe5a6c <dlsym+420>: lwz     r3,28(r31)
0xeffe5a70 <dlsym+424>: bl      0xeffe4ff4 <_rtld_dlcheck>
0xeffe5a74 <dlsym+428>: mr      r0,r3
0xeffe5a78 <dlsym+432>: stw     r0,48(r31)
0xeffe5a7c <dlsym+436>: lwz     r0,48(r31)
0xeffe5a80 <dlsym+440>: cmpwi   cr7,r0,0
0xeffe5a84 <dlsym+444>: bne-    cr7,0xeffe5a94 <dlsym+460>
0xeffe5a88 <dlsym+448>: li      r0,0
0xeffe5a8c <dlsym+452>: stw     r0,16(r31)
0xeffe5a90 <dlsym+456>: b       0xeffe5b30 <dlsym+616>
0xeffe5a94 <dlsym+460>: lwz     r9,48(r31)
0xeffe5a98 <dlsym+464>: lwz     r0,160(r9)
0xeffe5a9c <dlsym+468>: rlwinm  r0,r0,0,0,0
0xeffe5aa0 <dlsym+472>: cmpwi   cr7,r0,0
0xeffe5aa4 <dlsym+476>: beq-    cr7,0xeffe5ad0 <dlsym+520>
0xeffe5aa8 <dlsym+480>: addi    r0,r31,44
0xeffe5aac <dlsym+484>: lwz     r3,24(r31)
0xeffe5ab0 <dlsym+488>: lwz     r4,52(r31)
0xeffe5ab4 <dlsym+492>: lwz     r5,480(r30)
0xeffe5ab8 <dlsym+496>: mr      r6,r0
0xeffe5abc <dlsym+500>: li      r7,0
0xeffe5ac0 <dlsym+504>: bl      0xeffe6928 <_rtld_symlook_list>
0xeffe5ac4 <dlsym+508>: mr      r0,r3
0xeffe5ac8 <dlsym+512>: stw     r0,56(r31)
0xeffe5acc <dlsym+516>: b       0xeffe5af4 <dlsym+556>
0xeffe5ad0 <dlsym+520>: lwz     r3,24(r31)
0xeffe5ad4 <dlsym+524>: lwz     r4,52(r31)
0xeffe5ad8 <dlsym+528>: lwz     r5,48(r31)
0xeffe5adc <dlsym+532>: li      r6,0
0xeffe5ae0 <dlsym+536>: bl      0xeffe6a54 <_rtld_symlook_obj>
0xeffe5ae4 <dlsym+540>: mr      r0,r3
0xeffe5ae8 <dlsym+544>: stw     r0,56(r31)
0xeffe5aec <dlsym+548>: lwz     r0,48(r31)
0xeffe5af0 <dlsym+552>: stw     r0,44(r31)
0xeffe5af4 <dlsym+556>: lwz     r0,56(r31)
0xeffe5af8 <dlsym+560>: cmpwi   cr7,r0,0
0xeffe5afc <dlsym+564>: beq-    cr7,0xeffe5b1c <dlsym+596>
0xeffe5b00 <dlsym+568>: lwz     r9,44(r31)
0xeffe5b04 <dlsym+572>: lwz     r11,40(r9)
0xeffe5b08 <dlsym+576>: lwz     r9,56(r31)
0xeffe5b0c <dlsym+580>: lwz     r0,4(r9)
0xeffe5b10 <dlsym+584>: add     r11,r11,r0
0xeffe5b14 <dlsym+588>: stw     r11,16(r31)
0xeffe5b18 <dlsym+592>: b       0xeffe5b30 <dlsym+616>
0xeffe5b1c <dlsym+596>: lwz     r3,96(r30)
0xeffe5b20 <dlsym+600>: lwz     r4,24(r31)
0xeffe5b24 <dlsym+604>: bl      0xeffe5d0c <_rtld_error>
0xeffe5b28 <dlsym+608>: li      r0,0
0xeffe5b2c <dlsym+612>: stw     r0,16(r31)
0xeffe5b30 <dlsym+616>: lwz     r0,16(r31)
0xeffe5b34 <dlsym+620>: mr      r3,r0
0xeffe5b38 <dlsym+624>: lwz     r11,0(r1)
0xeffe5b3c <dlsym+628>: lwz     r0,4(r11)
0xeffe5b40 <dlsym+632>: mtlr    r0
0xeffe5b44 <dlsym+636>: lwz     r30,-8(r11)
0xeffe5b48 <dlsym+640>: lwz     r31,-4(r11)
0xeffe5b4c <dlsym+644>: mr      r1,r11
0xeffe5b50 <dlsym+648>: blr
End of assembler dump.


Home | Main Index | Thread Index | Old Index