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

Re: Using an older libc for one app



I was hoping someone would have a solution to your problem because I
have the same issue but with different applications.  I would like to
run newer glibc than is currently installed.

Cameron Hutchison wrote:
> I'm running unstable and the latest libc upgrade has caused me problems
> with vmware 3.2 (see bug report #205328). The problem is with libc6
> 2.3.2. Vmware runs fine with 2.3.1.

You may need to downgrade.  But let me suggest some things first.  But
beware that on this topic I am the blind leading the blind.

> It looks like there's been some ABI breakage with regard to threads in
> that minor upgrade.

There are a long string of bugs filed against glibc-2.3.2 at this
time.  This is not the only breakage.

> As an attempt to work around this, I've taken libc6 2.3.1 and extracted
> the libraries into /opt/vmware/libc-2.3.1. I then wrote a wrapper script
> to set LD_LIBRARY_PATH so that /opt/vmware/libc-2.3.1 was first, and
> then launch the vmware executable.

libc is the one library that does not work with LD_LIBRARY_PATH.
Although maybe it would in your case of going from 2.3.2 to 2.3.1
since 2.3.2 is a superset of 2.3.1.  But in my case I was trying to go
from 2.2.5 to 2.3.1 and after much frustration gave up.  I do not
believe the current code base will support running an installed older
library and trying to have a program execute using a newer shared
library.

You might have to call the other ld.so that came with the libray.  You
can call that program specifically.

> This does not work, because vmware is setuid root, and LD_LIBRARY_PATH
> is ignored for setuid programs.

If you create a C program wrapper that sets the real uid to the
effective user id then doesn't LD_LIBRARY_PATH work again?  If so then
you could do that as an option.  If you have trouble with the C
program I can furnish some help there as I have several of those types
of wrappers available.

> How can I force vmware to use my older version of libc in
> /opt/vmware/libc-2.3.1?

You might be able to get some information out of LD_DEBUG.  Try:

  LD_DEBUG=help /bin/echo

Then perhaps one of the debug options there will help narrow down what
is happening for you.

Bob

Attachment: pgp4p0VHnBtdA.pgp
Description: PGP signature


Reply to: