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