Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 07 Apr 2009 21:57:59 +0400
From:      Boris Samorodov <bsam@ipt.ru>
To:        David Banning <david@skytracker.ca>
Cc:        David Banning <david+dated+1239553110.eb108f@skytracker.ca>, questions@freebsd.org
Subject:   Re: libc.so.6: ELF file OS ABI invalid
Message-ID:  <80520280@bb.ipt.ru>
In-Reply-To: <49DB8D36.7040605@skytracker.ca> (David Banning's message of "Tue\, 07 Apr 2009 13\:28\:22 -0400")
References:  <20090407161830.GA92526@skytracker.ca> <46603826@bb.ipt.ru> <49DB8D36.7040605@skytracker.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 07 Apr 2009 13:28:22 -0400 David Banning wrote:
> Boris Samorodov wrote:
> > On Tue, 7 Apr 2009 12:18:30 -0400 David Banning wrote:
> >   
> >> I get this error when I attempt to run acroread8;
> >   
> >> /compat/linux/bin/sh: error while loading shared libraries: /usr/local/lib/libc.so.6: ELF file OS ABI invalid
> >>     
> >> I get the impression maybe acroread is attempting run a linux binary
> >> using a freebsd library - but I am not sure if this is so, or how to fix
> >> it. Any pointers would be appreciated.
> >
> > If you install it from ports/packages that definitely shouldn't happen.
> > Do you have some non-default environment like LD_LIBRARY_PATH?
> > You may use ktrace/kdump to diagnose the problem.
> >   
> ktrace/kdump appear to show an attempted access of libc.so.6 first
> from /usr/lib and then from /usr/lib/compat as well as some other lib
> directories.

That's bad. If you use native FreeBSD ktrace, then you should see
only using native libc. And if native ktrace tries to use /compat...
that's too bad. It shouldn't.

For tracing linux libs one sjould use linux_kdump. But that's another
story.

> There is not such a file in any of those directories. I have attempted
> to run ldconfig -R to rescan the directory and rebuild the hints file,
> but I am going astray here...

Well, that may be the curprit. Yur should never use ldconfig until
you *know* what you do. For linux libs only linux ldconfig is used
and with chroot (-r /compat/linux).

> the linux version of libc.so.6 -is- located in /usr/compat/linux/lib
> where is does not appear to look.

You shoudn't see it with native ktrace.

Seems that you rewrote your linux(?) ldconfig database. It's not so hard
to restore. Remove /compat/linux/etc/ld.so.cache and rebuild it by
"sudo /compat/linux/sbin/ldconfig -r /compat/linux".


HTH & WBR
-- 
Boris Samorodov (bsam)
Research Engineer, http://www.ipt.ru Telephone & Internet SP
FreeBSD Committer, http://www.FreeBSD.org The Power To Serve



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?80520280>