# buildworld (don't know how to make libc.a)



## Sartrik (Nov 9, 2013)

Hi,

I am trying to make `make buildworld DESTDIR=/jail/comp-node1 SRCCONF=/etc/src.conf` but receiving the following:


```
--------------------------------------------------------------
>>> Building an up-to-date make(1)
--------------------------------------------------------------
make: don't know how to make /jail/comp-node1/usr/lib/libc.a. Stop
*** [make] Error code 2

Stop in /usr/src.
*** [upgrade_checks] Error code 1

Stop in /usr/src.
```
Environment:

```
FreeBSD xbsdhost 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r255898: Thu Sep 26 22:50:31 UTC 2013     root@bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
```
I updated sources via svn (release/9.2.0). The releng/9.2 also gives the same result.

Using src.conf:

```
# This is src.conf for jails
WITHOUT_ACCT="YES"                    # ok
WITHOUT_ACPI="YES"                    # ok
WITHOUT_AMD="YES"                    # ok
WITHOUT_APM="YES"                    # ok
WITHOUT_ASSERT_DEBUG="YES"                # ok
WITHOUT_AT="YES"                    # ok
WITHOUT_ATM="YES"                    # ok
WITHOUT_AUDIT="YES"                    # ok
WITHOUT_AUTHPF="YES"                    # ok
WITHOUT_BIND="YES"                    # ok
WITHOUT_BIND_DNSSEC="YES"                # ok
WITHOUT_BIND_ETC="YES"                    # ok
WITHOUT_BIND_LIBS_LWRES="YES"                # ok
WITHOUT_BIND_MTREE="YES"                # ok
WITHOUT_BIND_NAMED="YES"                # ok
WITHOUT_BIND_UTILS="YES"                # ok
WITHOUT_BLUETOOTH="YES"                    # ok
WITHOUT_BOOT="YES"                    # ol
WITHOUT_BSD_CPIO="YES"                    # ok
WITHOUT_BSNMP="YES"                    # ok
# WITHOUT_BZIP2="YES"                    # ok
WITHOUT_CALENDAR="YES"                    # ok
WITHOUT_CDDL="YES"                    # ok
# WITHOUT_CPP="YES"                    # ok
# WITHOUT_CRYPT="YES"                    # ok, if uncommented no openssl and no openssh
WITHOUT_CTM="YES"                    # ok
WITHOUT_CVS="YES"                    # ok
# WITHOUT_CXX="YES"                    # ok
WITHOUT_DICT="YES"                    # ok
# WITHOUT_DYNAMICROOT="YES"                # ok
WITHOUT_EXAMPLES="YES"                    # ok
WITHOUT_FLOPPY="YES"                    # ok
WITHOUT_FORTH="YES"                    # ok
# WITHOUT_FP_LIBC="YES"                    # ok
WITHOUT_FREEBSD_UPDATE="YES"                # ok
WITHOUT_GAMES="YES"                    # ok
# WITHOUT_GCOV="YES"                    # ok
WITHOUT_GDB="YES"                    # ok
# WITHOUT_GNU="YES"                    # ok
# WITHOUT_GNU_GREP="YES"                # ok
WITHOUT_GPIB="YES"                    # ok
# WITHOUT_GROFF="YES"                    # pl
WITHOUT_GSSAPI="YES"                    # ok
WITHOUT_HTML="YES"                    # ok
# WITH_IDEA="YES"                    # might be illigal to use
WITHOUT_INET6="YES"                    # ok
# WITHOUT_INFO="YES"                    # Some ports fail to build without
# WITHOUT_INSTALLLIB="YES"                # fails to build if uncommented
WITHOUT_IPFILTER="YES"                    # ok
WITHOUT_IPFW="YES"                    # ok
WITHOUT_IPX="YES"                    # ok
WITHOUT_JAIL="YES"                    # ok
WITHOUT_KERBEROS="YES"                    # ok
WITHOUT_KVM="YES"                    # ok
WITHOUT_LEGACY_CONSOLE="YES"                # ok
WITHOUT_LIB32="YES"                    # ok so far, fails to build if selected, don't know why
# WITHOUT_LIBPTHREAD="YES"                # ok. seams that this can be removed, but ....
# WITHOUT_LIBTHR="YES"                    # ok. seams that this can be removed, but ....
# WITHOUT_LOCALES="YES"                    # ok
WITHOUT_LOCATE="YES"                    # ok
WITHOUT_LPR="YES"                    # ok
# WITHOUT_MAIL="YES"                    # ok
WITHOUT_MAILWRAPPER="YES"                # ok, at least seams so
# WITHOUT_MAKE="YES"                    # ok
WITHOUT_MAN="YES"                    # ok
WITHOUT_NCP="YES"                    # ok
WITHOUT_NDIS="YES"                    # ok
WITHOUT_NETCAT="YES"                    # ok
# WITHOUT_NETGRAPH="YES"                # ok        ???
WITHOUT_NIS="YES"                    # ok
WITHOUT_NLS="YES"                    # ok
WITHOUT_NLS_CATALOGS="YES"                # ok
WITHOUT_NS_CACHING="YES"                # ok
WITHOUT_NTP="YES"                    # ok
# WITHOUT_OBJC="YES"                    # ok
# WITHOUT_OPENSSH="YES"                    # ok
# WITHOUT_OPENSSL="YES"                    # ok
# WITHOUT_PAM="YES"                    # ok
WITHOUT_PF="YES"                    # ok
# WITHOUT_PKGTOOLS="YES"                # ok
WITHOUT_PMC="YES"                    # ok
WITHOUT_PORTSNAP="YES"                    # ok
WITHOUT_PPP="YES"                    # ok
WITHOUT_PROFILE="YES"                    # ok
WITHOUT_QUOTAS="YES"                    # ok
WITHOUT_RCMDS="YES"                    # ok
WITHOUT_RCS="YES"                    # ok
WITHOUT_RESCUE="YES"                    # ok
WITHOUT_ROUTED="YES"                    # ok
WITHOUT_SENDMAIL="YES"                    # ok
# WITHOUT_SETUID_LOGIN="YES"                # ok
WITHOUT_SHAREDOCS="YES"                    # ok
# WITHOUT_SSP="YES"                    # ok, good thing to build
# WITHOUT_SYMVER="YES"                    # ok
WITHOUT_SYSCONS="YES"                    # ok
WITHOUT_SYSINSTALL="YES"                # ok
# WITHOUT_TCSH="YES"                    # ok
WITHOUT_TELNET="YES"                    # ok
# WITHOUT_TEXTPROC="YES"                # ok
# WITHOUT_TOOLCHAIN="YES"                # ok
WITHOUT_USB="YES"                    # ok
WITHOUT_WIRELESS="YES"                    # ok
WITHOUT_WPA_SUPPLICANT_EAPOL="YES"            # ok
WITHOUT_ZFS="YES"                    # ok
# WITHOUT_ZONEINFO="YES"                # ok
```
Any ideas?


----------



## Sartrik (Nov 10, 2013)

Ok, I found the solution. Somehow the `make /jail/comp-node1/usr/lib/libc.a` got into:

```
/usr/obj/usr/src/make.amd64/usr/src/usr.bin/make
      327:.depend
  /usr/obj/usr/src_old/make.amd64/usr/src_old/usr.bin/make
     327:.depend
```


----------



## iddqd (Nov 14, 2013)

It's not really clear what the solution is but I had the same problem. Solved it by NOT setting DESTDIR during buildworld.


----------



## ShelLuser (Nov 14, 2013)

`make buildworld` does exactly that; it only builds the world and nothing more. Ergo it's pretty useless to specify a destination directory because nothing gets installed at this stage. That parameter is best reserved for the moment when you're using `make installworld`.

In general it's best not to define make parameters when they're not needed.


----------



## iddqd (Nov 15, 2013)

Sure. But it's easier to type `make DESTDIR=/whatever buildworld installworld` than `make buildworld; make DESTDIR=/whatever installworld`. And it used to work just fine until recently. Oh and this appears to be a problem with stable/9, stable/10 compiles flawlessly with DESTDIR defined during buildworld.


----------



## ShelLuser (Nov 15, 2013)

iddqd said:
			
		

> Sure. But it's easier to type `make DESTDIR=/whatever buildworld installworld` than `make buildworld; make DESTDIR=/whatever installworld`.


Easier isn't always better, and performing both steps in one run can easily become a recipe for disaster.

If it's ease of use you're after then I'd consider using /etc/make.conf or /etc/src.conf to keep certain often used parameters defined at all times. That way you only need to worry about the commands and can forget about the rest.


----------

