# Getting /usr/lib32/libc.so into 9.1 amd64, virtualbox-ose port



## ejr2122 (Jan 24, 2013)

A /usr/var/libc.so is required by the makefile for the virtualbox-ose port. Without it, the makefile fails. I've been looking for a way to get this /usr/var/libc.so into my new 9.1-RELEASE amd64 machine so that I can compile the virtualbox-ose port. It appears that the file is missing. Should it be there and if so, how do I get it there? Perhaps the problem exists in the virtualbox-ose makefile?

I found a solution that worked in the past on an 8.X installation. Basically, it is possible to download a number of lib32 files from here and then install using an install.sh script. As of now, the FTP site has an archive file containing many lib files, none of which include the libc.so I'm looking for. See the directory for yourself here.

Below is the output from the make-fetch command which determined I needed /usr/lib32/libc.so.

```
root@:/mnt/zstormirror/portsnap/ports/emulators/virtualbox-ose # make fetch-recursive
===> Fetching all distfiles for virtualbox-ose-4.2.6 and dependencies
Requires 32-bit libraries installed under /usr/lib32.
Do: cd /usr/src; make build32 install32; /etc/rc.d/ldconfig restart
*** [pre-everything] Error code 1

Stop in /mnt/zstormirror/portsnap/ports/emulators/virtualbox-ose.
*** [fetch-recursive] Error code 1

Stop in /mnt/zstormirror/portsnap/ports/emulators/virtualbox-ose.
root@:/mnt/zstormirror/portsnap/ports/emulators/virtualbox-ose #
```

Also, the lines of the makefile which perform this checking:

```
193 pre-everything::
194 .if ${ARCH} == "amd64"
195 .if !exists(/usr/lib32/libc.so)
196         @${ECHO} 'Requires 32-bit libraries installed under /usr/lib32.'
197         @${ECHO} 'Do: cd /usr/src; make build32 install32; /etc/rc.d/ldconfig restart'
198         @${FALSE}
199 .endif
```

I am using a different directory than the default ports directory. As such, I've adjusted the ports directory environmental variable via setenv $PORTSDIR /mnt/zstormirror/portsnap/ports as needed. This shouldn't be effecting the situation, correct?


----------



## wblock@ (Jan 24, 2013)

Did you turn off the 32-bit libraries when installing FreeBSD?  They are useful to have on a 64-bit system.  Why not just install them as it shows?

```
# cd /usr/src; make build32 install32; /etc/rc.d/ldconfig restart
```


----------



## ejr2122 (Jan 24, 2013)

This installation has no files in that directory.

Instead of installing the system through the sysinstall program, I followed another guide which had me unpack the archives /usr/freebsd-dist/base.txz and /usr/freebsd-dist/kernel.txz as the bulk of the install. I missed whatever options are usually present in sysinstall.

Is that the only simple way to get these files where they need to be?


----------



## wblock@ (Jan 24, 2013)

It's the right way.  But there should be a tar file of the lib32 files that can be unpacked in the same way and will also give the right files.


----------



## ejr2122 (Jan 24, 2013)

wblock@ you were exactly right. I don't know why I didn't make the connection earlier that those files I extracted during installation were the same files available from the FreeBSD FTP site. I think after I saw that there was no install.sh script like there is in the 8.X-RELEASE files I saw on the FreeBSD FTP site, I just assumed I would have to jump though hoops to make use of them. I'm sure that difference is documented in a changelog somewhere.

Last night I hit another road block on the road to having virtualbox-ose compiled - something about python missing which is odd because I know it's required by two of the ports I'm already using - but I'm grateful for your reply. Thank you.


----------



## wblock@ (Jan 24, 2013)

Some things need lang/python27 and some need lang/python32.  But that's a different problem, which should be asked in a new thread.


----------

