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, µ) != 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