Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I built Firefox 26 on Mint 16 because the Ubuntu 10.04 build utilities are too old to build it. It does need to run on 10.04, however, since that's the target OS I'm building for. It built and runs just fine on Mint 16.

When moving the package over to 10.04 and attempting to run, I get errors because the OS uses a different libc version than Firefox was built against.

The actual error is:

/lib/libc.so.6: version `GLIBC_2.17' not found

I've been doing a lot of research trying to solve this, and so far have discovered the following:

I can point a binary at an alternate path for library files with

export LD_LIBRARY_PATH="/opt/lib"

I placed the libc.so.6 from Mint 16 into /opt/lib on 10.04 and ran the above command. But after changing that variable, i get:

error while loading shared libraries: __vdso_time:
   invalid mode for dlopen(): Invalid argument

Not just for firefox, but for every command, including things like ls. A bit more research suggests that I need a set of library files to make this work, not just libc.so.6. The problem is, I don't know which ones I need to copy over?

Then I discovered ldd. ldd ./firefox shows:

./firefox: /lib/libc.so.6: version `GLIBC_2.17' not found (required by ./firefox)
    linux-vdso.so.1 =>  (0x00007fffe9289000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007f80ee456000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007f80ee252000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f80edf3d000)
    libm.so.6 => /lib/libm.so.6 (0x00007f80edcba000)
    libc.so.6 => /lib/libc.so.6 (0x00007f80ed934000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f80ee68b000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f80ed71c000)

And I thought, "maybe I just need to copy all of those on the list". Except I couldn't find a linux-vdso anywhere on Mint 16, and it's vdso that is being complained about.

So my question is, which libraries do I need to move from Mint 16 to Ubuntu 10.04 into /opt/var, to make Firefox run on 10.04?

share|improve this question

1 Answer 1

linux-vdso (and linux-gate) are in-kernel libraries that handle the loading of ELF binaries; if you have a (relatively recent) Linux kernel, it has those. A probably-complete list would be:

ld.so
libSegFault
libanl
libc
libicdn
libcrypt
libdl
libieee
libnsl
libnss
libpcprofile
libpthread
libresolv
librpcsvc
librt
libutil

Some of those you may not think you need, but dependencies have a way of sneaking up on you.

share|improve this answer
    
Thanks for the info. I'm locating the files now to move over and have 2 questions. It looks like many of the files, such as libutil.so.1 are symlinks to others, like libutil-2.17.so. If I take the real file is the binary smart enough to find it? Or should I rename the file to the same as the symlink? Or recreate the symlinks in my /opt/lib? Are the numbers after the .so relevant? Will it work if libutil.so.1 becomes libutil.so? –  Nick Jan 8 at 8:48
    
Also, I could not find libicdn, libieee, or librpcsvc... –  Nick Jan 8 at 8:51
    
I added the libraries to /opt/lib/ but am still getting the error error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument. –  Nick Jan 8 at 9:17
    
On my mobile; will answer more when I get home if nobody else has.... –  Bandrami Jan 8 at 11:12

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.