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>