Date: Sat, 10 Oct 1998 21:07:14 +1000 From: Bruce Evans <bde@zeta.org.au> To: bde@zeta.org.au, peter@netplex.com.au Cc: committers@FreeBSD.ORG, rnordier@FreeBSD.ORG, rnordier@nordier.com, skynyrd@opus.cts.cwu.edu Subject: Re: cvs commit: src/sys/boot/i386 Makefile Message-ID: <199810101107.VAA25894@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810101107.VAA25894>
