Communication
Contacts
Offering
Investors
Careers
Sesame
Embedded memories
Logic virtual components
Analog virtual components
Test structures
Virtual test & diagnostic
 Hardware/Software Codesign
 Hardware/Software Codesign
Layout verification
Quadrant of skills
SoC Integration
Custom Fabless Supplier
 
 

Search dolphin:

XFree 4.2.0 Patch

 

Problem starting SMASH on a Linux X Window server

On some Linux X Window servers, in particular Linux workstations with European keyboards, both the Solaris and the Linux versions of SMASH™ hang when launched and the main Viewer window is never displayed.

In this case, typing CTRL-C or killing the SMASH™ processes and restarting SMASH™ solves the problem until the user logs out. At every login, the same problem appears. In some cases, the problem appears every time SMASH™ is launched and is therefore quite problematic.

 

XFree defect description

This defect is neither a SMASH issue nor a Mainwin issue.

Mainsoft indeed found that the defect is inside libX and XFree. The defect was reported to the XFree developers and has been fixed in newer releases of XFree. The references of this hang in the X Window server, fixed by Mainsoft, are the following:

http://www.mail-archive.com/devel@xfree86.org/msg00402.html

http://cvsweb.xfree86.org/cvsweb/xc/lib/X11/XKBGetMap.c

 

Dolphin XFree patch

Dolphin has recompiled the XFree server releases 4.2.0-8 (for Red Hat Linux) and 4.2.0-107 (for SuSE Linux) with the correction indicated by MainWin applied and has confirmed that this fix does solve the problem. This problem is apparently fixed in XFree 4.3.

Red Hat Linux:

The XFree420_redhat_patch.tar.gz patch contains the following RPM files:

XFree86-libs-4.2.0-8dolphin.i386.rpm
XFree86-devel-4.2.0-8dolphin.i386.rpm

Both RPM files must be installed in replacement of the standard XFree86 4.2.0 RPMs using the following command:

rpm -Uvh --force XFree86-libs-4.2.0-8dolphin.i386.rpm XFree86-devel-4.2.0-8dolphin.i386.rpm

You can check which version of the RPMs are installed by using the commands:

rpm -q XFree86-libs
rpm -q XFree86-devel

As you will notice, the Dolphin patch uses a specific release number, e.g. 4.2.0-8dolphin, so that you can easily identify on which systems the patch has been installed.

SuSE Linux:

The XFree420_suse_patch.tar.gz patch contains the following RPM files:

xshared-4.2.0-107dolphin.i386.rpm
xdevel-4.2.0-107dolphin.i386.rpm

Both RPM files must be installed in replacement of the standard XFree86 4.2.0 RPMs using the following command:

rpm -Uvh --force xshared-4.2.0-107dolphin.i386.rpm xdevel-4.2.0-107dolphin.i386.rpm

You can check which version of the RPMs are installed by using the commands:

rpm -q xshared
rpm -q xdevel

As you will notice, the Dolphin patch uses a specific release number, e.g. 4.2.0-107dolphin, so that you can easily identify on which systems the patch has been installed.

 

Compiling your own XFree patch for Red Hat Linux

If you prefer to compile and install your own patch for XFree on a Red Hat Linux system instead of using the one provided by Dolphin, you can follow the steps below.

Install the source RPM:

rpm -i XFree86-4.2.0-8.src.rpm

cd /usr/src/redhat/SOURCES
cat << EOF > XFree86-4.2.0-jose-xkb.patch

*** xc/lib/X11/XKBGetMap.c Mon Feb   3 17:51:13 2003
--- xc/lib/X11/XKBGetMap.c.old Mon Feb   3 19:31:13 2003
***************
*** 974,979 ****
--- 974,980 ----
   UnlockDisplay(dpy);
   return status;
      }
+      UnlockDisplay(dpy);
      return Success;
  }
EOF

cd /usr/src/redhat/SPECS

Add a reference to Jose's patch in the file XFree86.spec :

  • Search for xkb-is and find a line beginning with Patch803.
  • Add a similar line, keeping patch numbers ordered, which is the same but with ' jose-xkb ' instead of ' xkb-is ' and 810 instead of 803. For example:

Patch810: XFree86-4.2.0-jose-xkb.patch

  • Search again for xkb-is and find a line beginning with %patch
  • Add a similar line, again keeping the patch numbers ordered:

%patch810 -p0 -b .jose-xkb

  • Or on Red Hat Linux 8.0 (the format should again be similar to the line with xkb-is ):

%patch810 -p0 %{?with_bk:-b .jose-xkb}

  • Rebuild the RPMs using the following command (this will take some time - about an hour) :

rpmbuild -bb XFree86.spec

  • Install the newly built RPMs using the following commands :

    cd /usr/src/redhat/RPMS/i386
    rpm -Uvh --force XFree86-libs-4.2.0-8.rpm XFree86-devel-4.2.0-8.rpm

 

Compiling your own XFree patch for SuSE Linux

If you prefer to compile and install your own patch for XFree on a SuSE Linux system instead of using the one provided by Dolphin, you can follow the steps below.

Install the source RPM:

rpm -i xf86-4.2.0-107.src.rpm

cd /usr/src/packages/SOURCES
cat << EOF > p_jose-xkb.diff

*** lib/X11/XKBGetMap.c Mon Feb   3 17:51:13 2003
--- lib/X11/XKBGetMap.c.old Mon Feb   3 19:31:13 2003
***************
*** 974,979 ****
--- 974,980 ----
   UnlockDisplay(dpy);
   return status;
      }
+      UnlockDisplay(dpy);
      return Success;
  }
EOF

cd /usr/src/packages/SPECS

Add a reference to Jose's patch in the file xf86.spec :

  • Search for mouse-misc and find a line beginning with Patch820.
  • Add a similar line, keeping patch numbers ordered, which is the same but with 'jose-xkb' instead of 'mouse-misc' and 810 instead of 820. For example:

Patch810: p_jose-xkb.diff

  • Search for a line beginning with %patch820
  • Add a line just before for Jose's patch:

%patch810

  • Rebuild the RPMs using the following command (this will take some time - about an hour) :

rpmbuild -bb xf86.spec

  • Install the newly built RPMs using the following commands :

cd /usr/src/packages/RPMS/i386
rpm -Uvh --force xshared-4.2.0-107.rpm xdevel-4.2.0-107.rpm