Re: mplayer borked with libpthread + feb4th Current

From: Andrew Thompson <andy_at_fud.org.nz>
Date: Fri, 6 Feb 2004 21:15:42 +1300
> > > > dri-4.3.0,1                             png-1.2.5_3
> > > > expat-1.95.6_1                          popt-1.6.4_2
> > > > fontconfig-2.2.90_4                     racoon-20040116a
> > > > freetype2-2.1.5_2                       rc_subr-1.16
> > > > gettext-0.12.1                          rpm-3.0.6_9
> > > > gettext-0.13.1                          ruby-1.6.8.2003.10.15
> > > > glib-1.2.10_10                          unzip-5.50_2
> > > > gmake-3.80_1                            win32-codecs-2.0.90_1,1
> > > > gtk-1.2.10_11                           wrapper-1.0_3
> > > > imake-4.3.0_2                           zip-2.3_1
> > > > jpeg-6b_1
> > > > 
> > > > The only kernel config change i've made was to disable i486 and i586
> > > > and add the following.
> > > > # no reason to trust wep ;)
> > > > options         IPSEC
> > > > options         IPSEC_ESP
> > > > _______________________________________________
> > > > freebsd-current_at_freebsd.org mailing list
> > > > http://lists.freebsd.org/mailman/listinfo/freebsd-current
> > > > To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> > > -- 
> > > PGP Key : http://www.marcuscom.com/pgp.asc
> > 
> > sure does, don't know why i didn't think about that ;).
> 
> By using ldd on mplayer, then all of its dependencies, you can track
> down which library is bringing in the libc_r dependency (it maybe
> mplayer itself).  Note: you should do this after doing a forced
> reinstall of all of mplayer's dependencies:
> 
> portupgrade -Rf mplayer\*
> 

Would anything like this help tracking programs linking to libc_r? (in
semi psudo code)


[ from rtld.c ]
static char *
find_library(const char *xname, const Obj_Entry *refobj)
{
    char *pathname;
    char *name;

    if (strchr(xname, '/') != NULL) {   /* Hard coded pathname */
        if (xname[0] != '/' && !trust) {
            _rtld_error("Absolute pathname required for shared object \"%s\"",
              xname);
            return NULL;
        }
        return xstrdup(xname);
    }

+   if (strncmp(xname, "libc_r", 6) == 0)
+       <print some warning to user>

    if (libmap_disable || (refobj == NULL) ||
        (name = lm_find(refobj->path, xname)) == NULL)
        name = (char *)xname;

...


Andy
Received on Thu Feb 05 2004 - 23:20:13 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:41 UTC