libpthread shared library version number
Dan Nelson
dnelson at allantgroup.com
Thu Nov 2 18:47:37 UTC 2006
In the last episode (Nov 02), Wesley Morgan said:
> I swapped a few e-mails with Maxime Henrion, but the gist of things
> was that after enabling symbol versioning, I immediately rebuilt
> everything -- world, ports, kernel. The random crashes I experienced
> were most apparent with two applications, csup and games/uqm from
> ports. Xorg would also crash every now and then... An example of what
> gdb showed me is:
>
> Updating collection ports-all/cvs
> Checkout ports/devel/ccrtp/Makefile
> Error set: No such file or directory
> Updater failed: Cannot create directories leading to
> "/usr/ports/devel/ccrtp/Makefile": Unknown error: 0
>
> Breakpoint 1, mkdirhier (path=0x8c40180 "/usr/ports/devel/ccrtp",
> mask=18) at misc.c:293
> 293 errno = 0;
> (gdb) n
> 294 if (access(path, F_OK) == 0) {
> (gdb)
> 298 perror("Error set");
> (gdb)
> Error set: No such file or directory
> 299 if (errno != ENOENT) {
> (gdb)
> 300 path[i] = '/';
> (gdb) print errno
> $1 = 0
> (gdb)
>
> It seems that errno is being changed somewhere else?? I'm getting all
> kinds of wild results checking errno during execution in gdb.
> Sometimes it claims to be 2 or 22, sometimes 0. I'll have to build a
> UP kernel and see if that fixes the problem. Trying to use libthr
> instead of libpthread dies strangely in thr_getscheduler(). Ugh.
That sort of looks like the perror() call zeroed out errno, which it
may do, since it calls a bunch of stdio functions. Try saving errno in
another variable before calling perror.
--
Dan Nelson
dnelson at allantgroup.com
More information about the freebsd-current
mailing list