As usual, the X server has found new and interesting ways to abuse the linker, and I'm now getting a new crash in the 64-bit SPARC binaries of Xorg when trying to dlopen it's .so loadable modules.
The stack trace as recorded by dbx is: ---- called from signal handler with signal 4 (SIGILL) ------ [7] 0xffffffff7c300004(0x1, 0x1, 0xffffffff7f734530, 0xffffffffffffffff, 0x200000, 0xffffffff7f734460), at 0xffffffff7c300004 [8] dlmopen_intn(0xffffffff7fffb06c, 0x1, 0xffffffff7fffb06c, 0xffffffff7f738d60, 0x16, 0xffffffff7c7015f8), at 0xffffffff7f61c68c [9] dlmopen_check(0xffffffff7f7341b8, 0x10042f410, 0xd01, 0xffffffff7f738d60, 0xffffffff7fffb06c, 0x1), at 0xffffffff7f61c7dc [10] _dlopen(0x10042f410, 0x101, 0xffffffffffffffff, 0xffffffff7f7341b8, 0xffffffffffffffe0, 0x1), at 0xffffffff7f61c81c [11] DLLoadModule(0x10042f3d0, 0x1, 0x10043d338, 0x6d6f75736500, 0xff0000, 0x8080808080808080), at 0x1000b7cd8 [12] LoaderOpen(0x10042ef50, 0x10043d2f0, 0x8, 0xffffffff7fffb57c, 0xffffffff7fffb578, 0x8), at 0x1000b4798 [13] doLoadModule(0x10043d030, 0x0, 0x0, 0x10043f280, 0x0, 0x100347750), at 0x1000b6ec0 [14] LoadModule(0x10043d030, 0x0, 0x0, 0x0, 0x0, 0xffffffff7fffb578), at 0x1000b7284 [15] InitOutput(0xffffffff7fffb57c, 0x100353758, 0x1003476d0, 0x10043d030, 0xffffffff7fffb578, 0x1003538d8), at 0x1000af714 [16] main(0x2, 0xffffffff7ffffd18, 0x8, 0x10041d6e0, 0x100342000, 0x100424170), at 0x100075c0c Probably not a coincidence, the address it crashed at is just inside the mapping of the module it's in the middle of dlopen'ing: FFFFFFFF7C300000 56K r-x-- /usr/X11/lib/modules/input/mouse_drv.so FFFFFFFF7C40E000 8K rwx-- /usr/X11/lib/modules/input/mouse_drv.so It successfully dlopened 6 other modules before this one, so I'm not sure what's different about this one. Any clues where to look? -- -Alan Coopersmith- alan.coopersmith at sun.com Sun Microsystems, Inc. - X Window System Engineering