Re: gdm and xorg from testing...
* BERTRAND Joël [EMAIL PROTECTED], [2007-07-03 14:02 +0200]: Emanuele Rocca a écrit : XineramaIsActive returns TRUE, but XineramaQueryScreens returns a NULL pointer and a number of screens = 0, so maybe the bug is in XineramaQueryScreens? Yes I think, because some other X programs crash. It seems that the problem lies in XineramaIsActive: it should return True only when the video driver actually speaks xinerama (which is not the case for xserver-xorg-video-sunffb). Bug forwarded upstream: https://bugs.freedesktop.org/show_bug.cgi?id=11504 ciao, ema -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: gdm and xorg from testing...
Emanuele Rocca a écrit : Hello BERTRAND, * BERTRAND Joël [EMAIL PROTECTED], [2007-07-02 20:09 +0200]: Xorg works fine, but gdm cannot start. I can see in /var/log/syslog : Jul 2 15:22:08 fermat gdm[7287]: Xinerama active, but = 0 screens? Jul 2 15:22:09 fermat gdm[7286]: gdm_child_action : abandon de l'affichage :0 I don't understand this message. I don't use Xinerama. I have tried to add a ServerFlas section in xorg.conf with Option Xinerama false without any success. It seems that gdm doesn't check the values returned by XineramaQueryScreens. libgtk's approach in a similar situation is to assume there's no Xinerama if the number of monitors returned by XineramaQueryScreen is = 0. Please try the attached patch, works fine here. Thanks a lot, your patch works fine for me. The main question is now : why this bug only occurs on sparc64 ? Regards, JKB -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: gdm and xorg from testing...
Hello, This bug comes from xorg. Indeed, I have tried to start xscreensaver and it returns : munmap(0xf7f82000, 8192)= 0 munmap(0xf77ee000, 286720) = 0 writev(3, [{b\0\0\4\0\10\0, 8}, {XINERAMA, 8}], 2) = 16 read(3, 0xfffa3580, 32) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN, revents=POLLIN}], 1, -1) = 1 read(3, \1\2\0\\0\0\0\0\1\233\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0..., 32) = 32 write(3, \233\4\0\1, 4) = 4 read(3, \1\2\0#\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0..., 32) = 32 write(3, \233\5\0\1, 4) = 4 read(3, 0xfffa36c0, 32) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN, revents=POLLIN}], 1, -1) = 1 read(3, \1\377\0$\0\0\0\0\0\0\0\0\0\31*\240\1\2\0#\1i\207\370\1..., 32) = 32 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Process 9443 detached I suspect all programs that test Xinerama flags will crash. JKB -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: gdm and xorg from testing...
Hi Joël (I'm not sure if your first name is Joël or Bertrand). * BERTRAND Joël [EMAIL PROTECTED], [2007-07-03 13:17 +0200]: I suspect all programs that test Xinerama flags will crash. XineramaIsActive returns TRUE, but XineramaQueryScreens returns a NULL pointer and a number of screens = 0, so maybe the bug is in XineramaQueryScreens? What's your video card? If it's a creator, is there someone with a different video card which can test if gdm works correctly without patches? Thanks. ciao, ema -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: gdm and xorg from testing...
Emanuele Rocca a écrit : Hi Joël (I'm not sure if your first name is Joël or Bertrand). First name is Joël ;-) * BERTRAND Joël [EMAIL PROTECTED], [2007-07-03 13:17 +0200]: I suspect all programs that test Xinerama flags will crash. XineramaIsActive returns TRUE, but XineramaQueryScreens returns a NULL pointer and a number of screens = 0, so maybe the bug is in XineramaQueryScreens? Yes I think, because some other X programs crash. What's your video card? If it's a creator, is there someone with a different video card which can test if gdm works correctly without patches? I only have creator3D (UPA like PCI connectors on U60 and U80, and UPA like mbus on U2). Regards, JKB -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: gdm and xorg from testing...
Hello BERTRAND, * BERTRAND Joël [EMAIL PROTECTED], [2007-07-02 20:09 +0200]: Xorg works fine, but gdm cannot start. I can see in /var/log/syslog : Jul 2 15:22:08 fermat gdm[7287]: Xinerama active, but = 0 screens? Jul 2 15:22:09 fermat gdm[7286]: gdm_child_action : abandon de l'affichage :0 I don't understand this message. I don't use Xinerama. I have tried to add a ServerFlas section in xorg.conf with Option Xinerama false without any success. It seems that gdm doesn't check the values returned by XineramaQueryScreens. libgtk's approach in a similar situation is to assume there's no Xinerama if the number of monitors returned by XineramaQueryScreen is = 0. Please try the attached patch, works fine here. ciao, ema --- gdm-2.18.2.old/daemon/slave.c 2007-07-02 21:22:15.0 +0200 +++ gdm-2.18.2/daemon/slave.c 2007-07-02 21:25:49.0 +0200 @@ -979,30 +979,32 @@ XineramaQueryScreens (display-dsp, screen_num); +if (xscreens) { +if G_UNLIKELY (screen_num = 0) +gdm_fail (Xinerama active, but = 0 screens?); + +if (screen_num = gdm_get_value_int (GDM_KEY_XINERAMA_SCREEN)) +gdm_set_value_int (GDM_KEY_XINERAMA_SCREEN, 0); + +xineramascreen = gdm_get_value_int (GDM_KEY_XINERAMA_SCREEN); + +display-screenx = xscreens[xineramascreen].x_org; +display-screeny = xscreens[xineramascreen].y_org; +display-screenwidth = xscreens[xineramascreen].width; +display-screenheight = xscreens[xineramascreen].height; + +display-lrh_offsetx = +DisplayWidth (display-dsp, + DefaultScreen (display-dsp)) +- (display-screenx + display-screenwidth); +display-lrh_offsety = +DisplayHeight (display-dsp, + DefaultScreen (display-dsp)) +- (display-screeny + display-screenheight); - if G_UNLIKELY (screen_num = 0) - gdm_fail (Xinerama active, but = 0 screens?); - - if (screen_num = gdm_get_value_int (GDM_KEY_XINERAMA_SCREEN)) - gdm_set_value_int (GDM_KEY_XINERAMA_SCREEN, 0); - - xineramascreen = gdm_get_value_int (GDM_KEY_XINERAMA_SCREEN); - - display-screenx = xscreens[xineramascreen].x_org; - display-screeny = xscreens[xineramascreen].y_org; - display-screenwidth = xscreens[xineramascreen].width; - display-screenheight = xscreens[xineramascreen].height; - - display-lrh_offsetx = - DisplayWidth (display-dsp, - DefaultScreen (display-dsp)) - - (display-screenx + display-screenwidth); - display-lrh_offsety = - DisplayHeight (display-dsp, - DefaultScreen (display-dsp)) - - (display-screeny + display-screenheight); +XFree (xscreens); +} - XFree (xscreens); } else #elif HAVE_SOLARIS_XINERAMA /* This code from GDK, Copyright (C) 2002 Sun Microsystems */