From owner-freebsd-current Tue Jun 6 15:11:39 1995 Return-Path: current-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id PAA17465 for current-outgoing; Tue, 6 Jun 1995 15:11:39 -0700 Received: from reinfra.regent.e-technik.tu-muenchen.de (root@reinfra.regent.e-technik.tu-muenchen.de [129.187.230.226]) by freefall.cdrom.com (8.6.10/8.6.6) with SMTP id PAA17457 for ; Tue, 6 Jun 1995 15:11:36 -0700 Received: from vector.eikon.e-technik.tu-muenchen.de ([129.187.142.36]) by reinfra.regent.e-technik.tu-muenchen.de with SMTP id <51624>; Wed, 7 Jun 1995 00:11:31 +0200 Received: (from jhs@localhost) by vector.eikon.e-technik.tu-muenchen.de (8.6.11/8.6.9) id XAA10449 for current@freebsd.org; Tue, 6 Jun 1995 23:00:39 +0200 Date: Tue, 6 Jun 1995 23:00:39 +0200 From: Julian Howard Stacey Message-Id: <199506062100.XAA10449@vector.eikon.e-technik.tu-muenchen.de> To: current@FreeBSD.ORG Subject: obj sym links, & nfs & share/mk: usage with 2 processors and 1 tree Sender: current-owner@FreeBSD.ORG Precedence: bulk This is for those who like to think about obj sym links, & nfs & share/mk; those who prefer not to worry about those things should skip this :-) ..... I'd welcome suggestions for a puzzle I'm working on: ( perhaps I haven't realised an env. var. exists, or perhaps the mk/ files could do with enhancement ? ) I'm trying (with current) to compile different subdirs of 1 common src/ and 1 common obj/ tree on 2 different nfs mounted hosts simultaneously ... & failing so far ... either I've not got something right, or perhaps no one else has tried this ? (& yes I know I need to keep my /usr/include in step etc) I have previously succeeded with 1 nfs mounted src & 2 seperate obj trees, when compiling on 2 hosts, but I thought it'd be nice to be able to do a fast check compile of the tree using power of 2 processors in parallel ... My set up: 2 hosts: vector & lion vector /etc/exports: / -maproot=root -alldirs /usr -maproot=root -alldirs /usr1 -maproot=root -alldirs /usr2 -maproot=root -alldirs mount: lion:/ on /net/lion lion:/usr on /net/lion/usr lion:/usr1 on /net/lion/usr1 /usr/src@ -> ../usr1/src ../usr1/src -> /usr/public/freebsd/compile/src /usr/obj@ -> ../usr2/data/obj /usr2/data/obj/net/lion@ -> .. /usr2/data/obj/net/vector@ -> .. /usr/ftp@ -> ../usr1/ftp lion /etc/exports: / -maproot=root -alldirs /usr -maproot=root -alldirs /usr1 -maproot=root -alldirs mount: vector:/ on /net/vector vector:/usr on /net/vector/usr vector:/usr1 on /net/vector/usr1 vector:/usr2 on /net/vector/usr2 /usr/src@ -> ../net/vector/usr/src /usr/obj@ -> ../net/vector/usr/obj /usr/ftp@ -> ../net/vector/usr/ftp I did the initial compile on vector, & acquired obj links such as: /usr1/ftp/public/freebsd/compile/src/sbin/adjkerntz/obj@ -> \ /usr/obj/usr1/ftp/public/freebsd/compile/src/sbin/adjkerntz but couldnt use this on lion: make: don't know how to make /usr1/ftp/public/freebsd/compile/src/\ sbin/adjkerntz/adjkerntz.c. Stop ( I'm not sure where this rooted path /usr1/.... is coming from, ? ) On lion I tried: make clean make obj /net/vector/usr1/ftp/public/freebsd/compile/src/sbin/adjkerntz \ -> /usr/obj/net/vector/usr1/ftp/public/freebsd/\ compile/src/sbin/adjkerntz make This then worked for vector & lion, but means I can't use all the obj links created by future make worlds run on vector, & that in future I must do my make obj run on src from any host other than the one running the make world, (& must meantime on lion do a find src -type l -name obj | xargs rm) I have cludged the thing on lion for now by doing ln -s ../usr/ftp /usr1/ftp but /usr1 on lion is not always there (sometimes unmounted for other stuff), (OK I could create a /usr1/... on lion:/usr while /usr1 unmounted too). Is there an elegant solution ? (apart from a mega fast Pentium ;-) & where's that rooted /usr1/.... coming from ? Julian S jhs@freebsd.org