From owner-cvs-all Sat Oct 10 04:07:37 1998 Return-Path: Received: (from daemon@localhost) by hub.freebsd.org (8.8.8/8.8.8) id EAA25646 for cvs-all-outgoing; Sat, 10 Oct 1998 04:07:37 -0700 (PDT) (envelope-from owner-cvs-all) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.15.68.22]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id EAA25588; Sat, 10 Oct 1998 04:07:24 -0700 (PDT) (envelope-from bde@godzilla.zeta.org.au) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.7/8.8.7) id VAA25894; Sat, 10 Oct 1998 21:07:14 +1000 Date: Sat, 10 Oct 1998 21:07:14 +1000 From: Bruce Evans Message-Id: <199810101107.VAA25894@godzilla.zeta.org.au> To: bde@zeta.org.au, peter@netplex.com.au Subject: Re: cvs commit: src/sys/boot/i386 Makefile Cc: committers@FreeBSD.ORG, rnordier@FreeBSD.ORG, rnordier@nordier.com, skynyrd@opus.cts.cwu.edu Sender: owner-cvs-all@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >> Only the setting of LIBDIR in bsd.own.mk is wrong if a Makefile[.inc] >> changes OBJFORMAT. This is fairly harmless except for installng libraries. > >And dependencies.. It could mean that binaries were depending on the >wrong libraries. If the environment format was a.out, and a makefile >reset it to (say) elf, then you end up with your elf binaries depending on >/usr/lib/aout/libfoo.a etc. LIBDIR is not used for dependencies in the a.out case (dependencies on libraries are generated by ld -f). Thus there are no dependency problems for forcing OBJFORMAT to aout. Dependencies on libraries are mostly broken anyway for the elf case (ld -f doesn't work and the names in bsd.libnames.mk only work for static libraries). The main danger is conflicts between library paths set by `make world' and gcc's search for libraries (based on ${OBJFORMAT}). Nothing appends /aout to externally specified library paths, so for an elf world with an aout override, stale libraries in /usr/lib/aout will probably get used instead of new libraries in ${WORLDTMP}/usr/lib[/aout]. I think current world building already has bugs in this area - the -aout override in CFLAGS doesn't actually work for `make world' when the default OBJFORMAT is elf. Bruce