Subject: Re: objdirs and readonly /usr/src
To: Valeriy E. Ushakov <uwe@ptc.spbu.ru>
From: Johnny Billquist <bqt@update.uu.se>
List: current-users
Date: 02/22/2004 00:57:34
On Sat, 21 Feb 2004, Valeriy E. Ushakov wrote:

> On Sat, Feb 21, 2004 at 14:36:22 +0100, Johnny Billquist wrote:
>
> > > What you describe is only one way to use objdirs, that indeed requires
> > > write permissions to create obj symlinks in the src tree.  But the
> > > build process can use a method, that doesn't require obj symlinks at
> > > all.
> >
> > Certainly, there are always ways around this problem. Like I said, there
> > is no one right solution to the problem. But the problem he have is
> > exactly that the build process tries to create symlinks in his readonly
> > /usr/src tree.
>
> Ugh.  It does not.  bsd.obj.mk has both modes of operation - with obj
> symlinks in the src dir, and without those symlinks - and for readonly
> src tree you just use the latter.

Ah. Right you are.

> > And the easiest way (in my opinion) is just to create the darn obj
> > symlinks, and then he'll be happy.
>
> The easiest way is not use those symlinks.  bsd.obj.mk can do that.

Your opinion. :-)

> > Your solution, by the way, isn't related to OBJDIR, unless I'm
> > totally mistaken, but actually solves the problem by having a union
> > fs.
>
> No.  The union mount is tangential - there was a bug in FreeBSD null
> mount, and the workaround was to use union, I think that bug is fixed
> and I just never bothered to change my fstab.  That union/null mount
> is there to workaround another FreeBSD limitation - a very short
> ARG_MAX, that some of gnu makefiles in the NetBSD tree overflow
> easily.  So I mount the source tree at a shorter path and mount it
> *read-only*, while at it.  I've been building out of read-only source
> tree for several years now.

So have I. With symlink obj

> > OBJDIR just tells *where* the obj symlinks should point. They
> > are still created in the /usr/src tree.
>
> Again, I just refer to bsd.README, to the part that documents
> bsd.obj.mk.  There *is* a mode of operation without symlinks.

Yes. You're right. And I jumped to a wrong conclusion on your union mount.
Sorry.

> You are trying to solve a problem that doesn't exist.

Hey! I wasn't having a problem. Someone else was, and his problem was that
build.sh bailed out because it, by default tries to create obj symlinks in
the soruce tree, which he had readonly. That was (or is) a problem for
that guy, so don't claim that the problem don't exist. We're talking about
solutions now.

	Johnny

Johnny Billquist                  || "I'm on a bus
                                  ||  on a psychedelic trip
email: bqt@update.uu.se           ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol