Why do I need a bunch of mappings for ld-elf.so in FreeBSD 8?

Paul Hoffman phoffman at proper.com
Tue Dec 8 16:04:18 UTC 2009


At 11:05 AM +0100 12/8/09, Ruben de Groot wrote:
>On Mon, Dec 07, 2009 at 05:35:47PM -0800, Paul Hoffman typed:
> > Greetings. I upgraded a 7.2 system to 8.0 using 'freebsd-update install'. At some time during the process, I could no longer log ...
>...snip...
>>... t remove the lines from /etc/libmap.conf.
>>
>> How do I get a /libexec/ld-elf.so that has up-to-date mappings internal to it?
>
>These mappings are not internal to ld-elf.so.

Ah, I interpreted that from the error message.

>Could you post the contents of your libmap.conf

These are the four I needed to get the normal packages working on my system. My concern is that there may be more:
libcrypt.so.4   libcrypt.so.5
libncurses.so.7 libncurses.so.8
libutil.so.7    libutil.so.8
libcrypto.so.5  libcrypto.so.6

>and the output of
>ldd /usr/local/bin/bash ?

/usr/local/bin/bash:
        libncurses.so.7 => not found (0x0)
        libintl.so.8 => /usr/local/lib/libintl.so.8 (0x2811f000)
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28131000)
        libc.so.7 => /lib/libc.so.7 (0x28227000)

>Also the errors bash gives when started without the mappings in libmap.conf.

Just commenting out the libncurses line, then trying to log in as a user whose shell is bash:
/libexec/ld-elf.so.1: Shared object "libncurses.so.7" not found, required by "bash"
Removing the commmenting immediately changes this back to working.

In looking more closely, I can see that bash was *not* remade by 'portupgrade -af'. I suspect it is because I installed it from binary during the initial installation. If that's true, it completely sucks and is a serious bug in portupgrade.

There was no work directory in /usr/ports/shells/bash. Doing a 'make; make deinstall; make reinstall' makes it so I don't need the map any more.


At 1:45 PM +0300 12/8/09, Odhiambo Washington wrote:
>I usually think that including COMPAT_FREEBS7 in your new kernel during the upgrade process would save one from such agony. I have never used freebsd-update ever, and might never, because I prefer to build a new system from scratch, but perhaps you could try it and see if it does resolve your problem.

I'm using the GENERIC kernel, never re-built.

>There is always this instruction that you need to recompile all installed ports, which I think you did not do. That instruction makes me sick, given the time it would take on a critical server.

I *did* do it, as I said in my earlier message. It takes forever, but it doesn't cause any interruption on the server (which, in my case, is only semi-critical).

--Paul Hoffman


More information about the freebsd-questions mailing list