libxcb not loading

Rene Ladan r.c.ladan at gmail.com
Wed Nov 15 14:28:44 UTC 2006


Rene Ladan schreef:
> libxcb does not load with today's xorg:
> 
>> /libexec/ld-elf.so.1: /usr/X11R6/lib/libxcb.so.1: Undefined symbol
>> "pthread_equal"
>  
> I have _KPOSIX_PRIORITY_SCHEDULING in my kernel
> 
I also get this error when trying to install x11-toolkits/gtkglext as
dependency of graphics/gnash.

The configure script fails with:
> configure:20442: checking for GTK+ - version >= 2.0.0
> configure:20557: cc -o conftest -O2 -pipe -fno-strict-aliasing -march=pentium4
> m -Wall -D_THREAD_SAFE -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/i
> nclude -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/in
> clude/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/includ
> e -I/usr/X11R6/include -I/usr/local/include/freetype2 -I/usr/local/include    
>  conftest.c -Wl,--rpath -Wl,/usr/local/lib -L/usr/local/lib -L/usr/X11R6/lib -
> lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lXext 
> -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lcairo -lpangoft2-1.0 -
> lfontconfig -lfreetype -lz -lpango-1.0 -lm -lX11 -lgobject-2.0 -lgmodule-2.0 -
> lglib-2.0 -liconv    >&5
> /usr/X11R6/lib/libxcb-xlib.so.0: undefined reference to `pthread_equal'
> configure:20560: $? = 1

I don't see any direct relationship between libxcb and the compile command ?

This is with libxcb-0.9.92_1 and libX11-1.0.3,1

So I guess the real culprit is libxcb and not libX11

I've attached the two scripts which trigger this error.

Regards,
Rene
-- 
GPG fingerprint = E738 5471 D185 7013 0EE0  4FC8 3C1D 6F83 12E1 84F6
(subkeys.pgp.net)

"It won't fit on the line."
		-- me, 2001

-------------- next part --------------
/* confdefs.h.  */

#define PACKAGE_NAME "gtkglext"
#define PACKAGE_TARNAME "gtkglext"
#define PACKAGE_VERSION "1.2.0"
#define PACKAGE_STRING "gtkglext 1.2.0"
#define PACKAGE_BUGREPORT "gtkglext-list at gnome.org"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DLFCN_H 1
#ifdef __cplusplus
extern "C" void std::exit (int) throw (); using std::exit;
#endif
/* end confdefs.h.  */

#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>

int
main ()
{
  int major, minor, micro;
  char *tmp_version;

  system ("touch conf.gtktest");

  /* HP/UX 9 (%@#!) writes to sscanf strings */
  tmp_version = g_strdup("2.0.0");
  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
     printf("%s, bad version string\n", "2.0.0");
     exit(1);
   }

  if ((gtk_major_version != 2) ||
      (gtk_minor_version != 10) ||
      (gtk_micro_version != 6))
    {
      printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
             2, 10, 6,
             gtk_major_version, gtk_minor_version, gtk_micro_version);
      printf ("*** was found! If pkg-config was correct, then it is best\n");
      printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
      printf("*** required on your system.\n");
      printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
      printf("*** to point to the correct configuration files\n");
    }
  else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
	   (gtk_minor_version != GTK_MINOR_VERSION) ||
           (gtk_micro_version != GTK_MICRO_VERSION))
    {
      printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
	     GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
      printf("*** library (version %d.%d.%d)\n",
	     gtk_major_version, gtk_minor_version, gtk_micro_version);
    }
  else
    {
      if ((gtk_major_version > major) ||
        ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
        ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
      {
        return 0;
       }
     else
      {
        printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
               gtk_major_version, gtk_minor_version, gtk_micro_version);
        printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
	       major, minor, micro);
        printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
        printf("***\n");
        printf("*** If you have already installed a sufficiently new version, this error\n");
        printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
        printf("*** being found. The easiest way to fix this is to remove the old version\n");
        printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
        printf("*** correct copy of pkg-config. (In this case, you will have to\n");
        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
        printf("*** so that the correct libraries are found at run-time))\n");
      }
    }
  return 1;
}
-------------- next part --------------
/* confdefs.h.  */

#define PACKAGE_NAME "gtkglext"
#define PACKAGE_TARNAME "gtkglext"
#define PACKAGE_VERSION "1.2.0"
#define PACKAGE_STRING "gtkglext 1.2.0"
#define PACKAGE_BUGREPORT "gtkglext-list at gnome.org"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DLFCN_H 1
#ifdef __cplusplus
extern "C" void std::exit (int) throw (); using std::exit;
#endif
/* end confdefs.h.  */

#include <gtk/gtk.h>
#include <stdio.h>

int
main ()
{
 return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version));
  ;
  return 0;
}


More information about the freebsd-x11 mailing list