Subject: Re: 1.4.2 to 1.5_BETA and library problems
To: Jeremy C. Reed <firstname.lastname@example.org>
From: Jaromír Dolecek <email@example.com>
Date: 10/26/2000 11:28:15
The a.out ld.so shipped with 1.5 (i.e ALPHA2 or BETA) look
for libraries within /emul/aout tree and ldconfig was changed
to look for /etc/ld.so.conf under that tree also, since /etc/ld.so.conf
is used for something else for ELF.
The upgrade path for you at this stage is:
0. create /emul/aout directory (note that /emul can safely be symlink
to out of root partition)
1. move all former a.out libraries to the respective directory
2. copy /etc/ld.so.conf to /emul/aout/etc/ld.so.conf, remove
the machdep.fpu_present stuff and run ldconfig
3. edit /etc/ld.so.conf, remove the directory names stuff
That should make system working.
It's good to install ELF XFree86 then (should be available
on ftp.netbsd.org & mirrors). You can probably safely copy it
over old X11 a.out tree - binaries included in XFree86 would
be then ELF, the rest of stuff installed within X subtree
would use a.out libraries you previously moved into /emul/aout/usr/X11R6/lib/.
After that, you can either gradually upgrade packages to ELF as needed,
or remove all old a.out packages and install new from scratch.
I did the latter, since that seemed like easier on longer run. Took
me like day or so to do.
You would surely praise binary packages available on
ftp.netbsd.org and mirrors - package system mades the transition
much smoother than it would be otherwise :)
Jeremy C. Reed wrote:
> I updated my 1.4.2 system to 1.5_BETA by grabbing the *.tgz sets and
> overwriting my system (except for etc.tgz which I used my new script for
> updating /etc).
> Using the new /etc/ld.so.conf, I couldn't use cvs, X or various other
> programs. So I rebuilt cvs via pkgsrc and updated the /etc/ld.so.conf.
> I am getting errors like:
> Shared object "libSM.so.6" not found
> /usr/libexec/ld.so: rxvt: libX11.so.6.1: No such file or directory
> /usr/libexec/ld.so: bbkeys: libSM.so.6.0: No such file or directory
> /usr/libexec/ld.so: lynx: libm.so.0.1: No such file or directory
> Now my /etc/ld.so.conf looks like:
> libm.so.0 machdep.fpu_present 1:libm387.so.0,libm.so.0
> When I run ldconfig, I get:
> ldconfig: can't open `/emul/aout//etc/ld.so.conf'
> This /emul/aout didn't exist.
> Now X works, but I am trying to build rxvt from pkgsrc.
> Using a couple week old pkgsrc and a new pkgsrc, when I build
> pkgsrc/graphics/xpm I receive:
> gcc -o sxpm -O2 -L/usr/X11R6/lib sxpm.o -L../lib -L/usr/X11R6/lib
> -lXpm -lXt -lSM -lICE -lXext -lX11 -Wl,-rpath,/usr/X11R6/lib
> sxpm.o: In function `main':
> sxpm.o(.text+0x409): undefined reference to `XpmReadFileToPixmap'
> sxpm.o(.text+0xace): undefined reference to `XpmReadFileToPixmap'
> sxpm.o(.text+0xba3): undefined reference to `XpmCreatePixmapFromData'
> sxpm.o(.text+0xbee): undefined reference to `XpmWriteFileFromPixmap'
> sxpm.o: In function `Punt':
> sxpm.o(.text+0xf7f): undefined reference to `XpmFreeAttributes'
> sxpm.o(.text+0xfea): undefined reference to `XpmFreeAttributes'
> sxpm.o: In function `VersionInfo':
> sxpm.o(.text+0x10e1): undefined reference to `XpmLibraryVersion'
> sxpm.o(.text+0x10f0): undefined reference to `XpmLibraryVersion'
> collect2: ld returned 1 exit status
> *** Error code 1
> I am not sure, but it seems like I read that I changed from a.out to ELF
> (the INSTALL document is unclear -- it thinks it is 1.4) and the
> NetBSD.org ELF webpage says that ld.so.conf is used differently (or not
> really needed) with ELF.
> I think I am missing some xpm files.
> $ ls -l /usr/X11R6/lib/*Xpm*
> -rw-r--r-- 1 root wheel 58478 Feb 9 2000 /usr/X11R6/lib/libXpm.a
> Can anyone point me to the documentation for upgrading libraries? Or does
> anyone have any advice on fixing this problem?
> Jeremy C. Reed
Jaromir Dolecek <jdolecek@NetBSD.org> http://www.ics.muni.cz/~dolecek/
@@@@ Wanna a real operating system ? Go and get NetBSD, damn! @@@@