title: Why are static X11 apps failing on other machines?
body: <p>I built X11R5 libs statically on a 32-bit Fedora Core 9 machine. Then I built an app which uses X11 and linked it statically. So far, so good. ldd reports it's a statically-linked app. I can run it locally just fine. But when I copy it over to a 64-bit FC9 machine, it fails as follows:</p>
  
  <p>assistant.static: xcb_io.c:228: _XSend: Assertion `!dpy->xcb->request_extra' failed.
  <br>
  Aborted</p>
  
  <p>When I run strace, it seems to be trying to open libXfixes.so:</p>
  
  <pre><code>...
  access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
  open("/lib/libXfixes.so", O_RDONLY)     = -1 ENOENT (No such file or directory)
  open("/usr/lib/libXfixes.so", O_RDONLY) = -1 ENOENT (No such file or directory)
  munmap(0xf7bf9000, 123447)              = 0
  open("libXfixes", O_RDONLY)             = -1 ENOENT (No such file or directory)
  open("/etc/ld.so.cache", O_RDONLY)      = 8
  fstat64(0x8, 0xff86a9e8)                = 0
  mmap2(NULL, 123447, PROT_READ, MAP_PRIVATE, 8, 0) = 0xfffffffff7bf9000
  close(8)                                = 0
  access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
  open("/lib/libXfixes", O_RDONLY)        = -1 ENOENT (No such file or directory)
  open("/usr/lib/libXfixes", O_RDONLY)    = -1 ENOENT (No such file or directory)
  munmap(0xf7bf9000, 123447)              = 0
  open("libXfixes.so.4", O_RDONLY)        = -1 ENOENT (No such file or directory)
  open("/etc/ld.so.cache", O_RDONLY)      = 8
  fstat64(0x8, 0xff86a9e8)                = 0
  mmap2(NULL, 123447, PROT_READ, MAP_PRIVATE, 8, 0) = 0xfffffffff7bf9000
  close(8)                                = 0
  access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
  open("/lib/libXfixes.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)
  open("/usr/lib/libXfixes.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
  munmap(0xf7bf9000, 123447)              = 0
  open("libXfixes", O_RDONLY)             = -1 ENOENT (No such file or directory)
  open("/etc/ld.so.cache", O_RDONLY)      = 8
  fstat64(0x8, 0xff86a9e8)                = 0
  mmap2(NULL, 123447, PROT_READ, MAP_PRIVATE, 8, 0) = 0xfffffffff7bf9000
  close(8)                                = 0
  access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
  open("/lib/libXfixes", O_RDONLY)        = -1 ENOENT (No such file or directory)
  open("/usr/lib/libXfixes", O_RDONLY)    = -1 ENOENT (No such file or directory)
  munmap(0xf7bf9000, 123447)              = 0
  write(2, "assistant.static: xcb_io.c:228: "..., 85assistant.static: xcb_io.c:228: _XSend: Assertion `!dpy-&gt;xcb-&gt;request_extra' failed.
  </code></pre>
  
  <p>I don't understand why a statically-linked application would be trying to open shared X libs. Shouldn't everything needed to run the app be included via static linking (except of course for any Linux system calls the app makes, which need to be handled externally).</p>
  
  <p>Thanks for any explanations!</p>