2009/7/6 Alan Coopersmith <Alan.Coopersmith at sun.com>: > J?rgen Keil wrote: >> Alan wrote: >>> jason wrote: >>>> Recently live upgraded from b115 to b116. New X looks nice and sharp on >>>> Lenovo T60 >>>> notebook with ATI Radeon Mobility X1400, yet the mouse keeps jumping to >>>> upper left >>>> corner. >>>> ... >>>> Anyone else see this issue? Thanks >>> I've not seen it yet, but had other people report it. >> >> One change with Xorg 1.6.1 seems to be the switch to compile it >> with Sun Studio 12. What is the exact version (patches?) of that >> Studio 12 compiler? > > Same as the current Nevada CBE used by ON and other consolidations.
Hmm, the Xorg that I tried to compile from fox-gate source is much smaller when looking at the file size, and is bigger than the original 32-bit b117 Xorg when looking at size output -bash-3.2$ ls -l /usr/X11/bin/i386/Xorg* -r-sr-xr-x 1 root bin 2636632 Jun 23 21:44 /usr/X11/bin/i386/Xorg -rwxr-xr-x 1 jk usr 2090712 Jul 3 17:39 /usr/X11/bin/i386/Xorg.jk -r-sr-xr-x 1 root bin 2636632 Jun 23 21:44 /usr/X11/bin/i386/Xorg.orig -bash-3.2$ size /usr/X11/bin/i386/Xorg* /usr/X11/bin/i386/Xorg: 1714545 + 51204 + 44240 = 1809989 /usr/X11/bin/i386/Xorg.jk: 1818609 + 36344 + 47584 = 1902537 /usr/X11/bin/i386/Xorg.orig: 1714545 + 51204 + 44240 = 1809989 I also noticed that the file that might be relevant with the mouse pointer jumping bug (ptrveloc.c) is compiled with gcc under fox-gate: /usr/sfw/bin/gcc -DHAVE_CONFIG_H -I. -I../include -I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/X11/include -I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/include -I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/include/freetype2 -I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/include -I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/include/pixman-1 -I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/X11/include -I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/X11/include/drm -I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/X11/include/X11/dri -I/files2/X-src/fox-gate/XW_NV/open-src/xserver/xorg/../../../proto-i386-svr4/usr/X11/include/X11/extensions -DDEFAULT_STANDBY_TIME=900000 -DDEFAULT_SUSPEND_TIME=1080000 -DDEFAULT_OFF_TIME=1260000 -DSUNSOFT -DTSOL -DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DXTHREADS -DXUSE_MTSAFE_API -I../include -I../include -I../Xext -I../composite -I../damageext -I../xfixes -I../Xi -I../mi -I../miext/shadow -I../miext/damage -I../render -I../randr -I../fb "-DVENDOR_NAME=\"Sun Microsystems, Inc.\"" "-DVENDOR_RELEASE=(((1) * 10000000) + ((6) * 100000) + ((1) * 1000) + 901)" -O3 -fno-omit-frame-pointer -Wall -Wno-unknown-pragmas -march=i686 -m32 -MT ptrveloc.lo -MD -MP -MF .deps/ptrveloc.Tpo -c ptrveloc.c -fPIC -DPIC -o .libs/ptrveloc.o xserver/xorg/build_32/xorg-server-1.6.1.901/dix/ptrveloc.c: 355 /* 356 * cvelocity is not a real velocity yet, more a motion delta. constant 357 * acceleration is multiplied here to make the velocity an on-screen 358 * velocity (pix/t as opposed to [insert unit]/t). This is intended to 359 * make multiple devices with widely varying ConstantDecelerations respond 360 * similar to acceleration controls. 361 */ 362 cvelocity = (float)sqrt(dx*dx + dy*dy) * s->const_acceleration; Looking at the compiled code, my binary seems to have been compiled to quite different code when compared to the b117 Xorg binary: My Xorg (32-bit, compiled with gcc, no mouse pointer jumping): acceleratePointerPredictable+0x206: imull %eax,%eax acceleratePointerPredictable+0x209: imull %edx,%edx acceleratePointerPredictable+0x20c: movl %eax,-0x40(%ebp) acceleratePointerPredictable+0x20f: addl %edx,%eax acceleratePointerPredictable+0x211: pushl %eax acceleratePointerPredictable+0x212: fildl (%esp) acceleratePointerPredictable+0x215: addl $0x4,%esp acceleratePointerPredictable+0x218: fld %st(0) acceleratePointerPredictable+0x21a: fsqrt acceleratePointerPredictable+0x21c: fucomi %st(0) acceleratePointerPredictable+0x21e: jp +0x35d <acceleratePointerPredictable+0x581> acceleratePointerPredictable+0x224: jne +0x357 <acceleratePointerPredictable+0x581> acceleratePointerPredictable+0x22a: fstp %st(1) acceleratePointerPredictable+0x22c: fstps -0x1c(%ebp) acceleratePointerPredictable+0x22f: movl 0x18(%ebp),%eax acceleratePointerPredictable+0x232: movswl 0xa8(%edi),%ecx acceleratePointerPredictable+0x239: flds -0x1c(%ebp) acceleratePointerPredictable+0x23c: fmuls 0xa0(%edi) acceleratePointerPredictable+0x242: movl %eax,0x88(%edi) b117 Xorg (32-bit, compiled with ???, mouse pointer jumps): acceleratePointerPredictable+0x1ba: imull %eax,%eax acceleratePointerPredictable+0x1bd: movl -0x40(%ebp),%edx acceleratePointerPredictable+0x1c0: imull %edx,%edx acceleratePointerPredictable+0x1c3: addl %edx,%eax acceleratePointerPredictable+0x1c5: movl %eax,-0x60(%ebp) acceleratePointerPredictable+0x1c8: fildl -0x60(%ebp) acceleratePointerPredictable+0x1cb: fsqrt acceleratePointerPredictable+0x1cd: fstpl -0x60(%ebp) acceleratePointerPredictable+0x1d0: fldl -0x60(%ebp) acceleratePointerPredictable+0x1d3: fstps -0x60(%ebp) acceleratePointerPredictable+0x1d6: flds -0x60(%ebp) acceleratePointerPredictable+0x1d9: fmuls 0xa0(%esi) acceleratePointerPredictable+0x1df: fstps -0x60(%ebp) acceleratePointerPredictable+0x1e2: flds -0x60(%ebp) acceleratePointerPredictable+0x1e5: fwait
