[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

libgtk1.2 is broken

The libgtk1.2 package from unstable, libgtk1.2_1.2.8-3.0.1, is unusable:

  error while loading shared libraries:
  /usr/lib/libgtk-1.2.so.0: undefined symbol: lstat

This problem will prevent ANY program dynamically linked with GTK+
from running.

Here's a relevant quote from /usr/include/sys/stat.h
(packaged in libc6.1-dev_2.2.1-1):

/* To allow the `struct stat' structure and the file type `mode_t'
   bits to vary without changing shared library major version number,
   the `stat' family of functions and `mknod' are in fact inline
   wrappers around calls to `xstat', `fxstat', `lxstat', and `xmknod',
   which all take a leading version-number argument designating the
   data structure and bits used.  <bits/stat.h> defines _STAT_VER with
   the version number corresponding to `struct stat' as defined in
   that file; and _MKNOD_VER with the version number corresponding to
   the S_IF* macros defined therein.  It is arranged that when not
   inlined these function are always statically linked; that way a
   dynamically-linked executable always encodes the version number
   corresponding to the data structures it uses, so the `x' functions
   in the shared library can adapt without needing to recompile all
   callers.  */

Further inspection of this header file reveals that lstat() is an
external reference only under the following conditions:

#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
# ifndef __USE_FILE_OFFSET64
/* Get file attributes about FILE and put them in BUF.
   If FILE is a symbolic link, do not follow it.  */
extern int lstat (__const char *__restrict __file,
                  struct stat *__restrict __buf) __THROW;
# else
# endif

The library libc-2.2.1.so does not contain the symbol lstat, but does
define the symbols __lxstat and __lxstat64, as suggested by the header
file.  I'm not sure exactly what's going on here, but clearly
something is wrong. It looks like it might be related to the large
file (>4GB) support in glibc-2.2.

Hasn't anyone else had this problem?

Ian Bruce

Get free email and a permanent address at http://www.netaddress.com/?N=1

Reply to: