Some changes in libc.so and libthread.so break the way libthread is
linked with libX11.so. The most noticeable symptoms are failing
signal handling in xinit, xterms that don't die after the inferior
shell process exits and emacs-19 hanging after starting dired.
Apply all fixes upto fix-12 to the X11R6 sources. Remember to
change OSMinorVersion to 4 in xc/config/cf/sun.cf as well and use
"make Everything" or "make World", not just "make". Make sure you
change the right OSMinorVersion in sun.cf, the first one is the x86
minor version, the second one is SPARC one. Change the one
appropriate for your system or change both.
The resulting R6 will not run on Solaris 2.3 or earlier.
If you want to have the same set of binaries for Solaris 2.3
and 2.4, you need to disable threaded X altogether by changing
"#define ThreadedX YES" to "#define ThreadedX NO" in sun.cf.
Note that you must reinstall the X libraries with "make install"
before things start working. There is no need to reinstall
anything but libX11.so. Xterm, emacs etc., should start working
after the change to libX11 is installed. Check your newly
installed libX11 with dump -Lv libX11.so.6. If it still shows
libthread as "NEEDED", the rebuild didn't work correctly. Double
check your changes. (If you previously used the patch from the FAQ,
make sure you remove it before applying fix-12.)
For multi-threaded X to work it necessary to install patch 101925-02
to fix problems in header files [2.4]. Unless you are running
gcc 2.8.0 or later, you need to reinstall gcc or re-run just-fixinc
after installing that patch.