Subject: Re: Strange build failures
To: None <port-alpha@NetBSD.ORG, shmit@kublai.com>
From: Ross Harvey <ross@teraflop.com>
List: port-alpha
Date: 05/28/1998 17:59:55
> From port-alpha-owner-ross=teraflop.com@NetBSD.ORG Thu May 28 16:22:01 1998
> Date: Thu, 28 May 1998 19:18:59 -0400
> From: Brian Cully <shmit@kublai.com>
> To: port-alpha@NetBSD.ORG
> Subject: Strange build failures
> X-PGP-Info: finger shmit@kublai.com for my public key.
>
> Here's the output from `make build DESTDIR=/usr/obj':
> ... ... ...
> depend ===> alpha
> all ===> alpha
> install ===> alpha
> install -c -o root -g wheel -m 444 crt0.o gcrt0.o crtbegin.o crtend.o  /usr/obj/usr/lib
> install: crt0.o: No such file or directory
> ... ... ...
> The file exists, and if I run the command by hand, everything is okay:
>
> ---[SNIP]---
> lart:/usr/src# cd lib/csu/alpha
> lart:/usr/src/lib/csu/alpha# install -c -o root -g wheel -m 444 crt0.o gcrt0.o crtbegin.o crtend.o  /usr/obj/usr/lib
> lart:/usr/src/lib/csu/alpha# 
> ---[SNIP]---
>
> WTF is going on here?




This is kind of a wild guess, but I suspect you have confused
make(1) by building into /usr/obj as a DESTDIR. /usr/obj is the
default MAKEOBJDIR and BSDOBJDIR and if it exists, make(1) and
/usr/share/mk/* do a number of things differently.

It's kind of a neat feature that lets you build multiple targets
from a single source tree, and lets you allocate space (and backup
policies, local cpu access, ownerships, etc...) separately for the
source tree and for the binary work directories. Certainly you
get some speed improvements by mounting the obj tree on your local
machine.

Anyway, mv /usr/obj /usr/dest, clean out that directory by hand,
and try it again with a DESTDIR=/usr/dest.