Subject: bin/1528: bsd.lib.mk builds foo.o.o for libc ?
To: None <gnats-bugs@gnats.netbsd.org>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: netbsd-bugs
Date: 09/27/1995 01:48:18
>Number:         1528
>Category:       bin
>Synopsis:       bsd.lib.mk builds foo.o.o for libc ?
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    bin-bug-people (Utility Bug People)
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Wed Sep 27 05:05:02 1995
>Last-Modified:
>Originator:     Jonathan Stone
>Organization:
	Stanford Distributed Systems Group
>Release:        NetBSD-current supp'ed at 1:40am 27 Sept 1995 PST
>Environment:
	
System: NetBSD Reno.Stanford.EDU 1.0A NetBSD 1.0A (NEWCONF) #596: Tue Sep 26 17:27:54 PDT 1995 jonathan@Reno.Stanford.EDU:/usr/src/sys/arch/pmax/compile/NEWCONF pmax


>Description:
	`make -n libc.a'' in src/lib/libc makes <foo>.o.o and then does ld -r
	<foo>.o.o -o <foo>.o
	Which may well produce the desired results, but is, to say
	the least, disconcerting, and may be an unwanted side-effect of
	today's fix to /usr/share/mk/bsd.lib.mk.

	This may also break cross-compilation with other make variants,
	or older versions of Berkeley make, which I think *is* a real concern.

>How-To-Repeat:
	``(cd /usr/src/lib/libc; make -n -k)''
	on a suitably out-of-date libc tree.
e.g:
echo "cc -O -DNLS -DYP -DLIBC_SCCS -DSYSLIBC_SCCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DFLOATING_POINT  -c /usr/src/lib/libc/db/hash/ndbm.c"
cc -O -DNLS -DYP -DLIBC_SCCS -DSYSLIBC_SCCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DFLOATING_POINT  -c /usr/src/lib/libc/db/hash/ndbm.c  -o ndbm.o.o
ld -x -r ndbm.o.o -o ndbm.o
rm -f ndbm.o.o
echo "cc -O -DNLS -DYP -DLIBC_SCCS -DSYSLIBC_SCCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DFLOATING_POINT  -c /usr/src/lib/libc/gen/getcap.c"
cc -O -DNLS -DYP -DLIBC_SCCS -DSYSLIBC_SCCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DFLOATING_POINT  -c /usr/src/lib/libc/gen/getcap.c  -o getcap.o.o
ld -x -r getcap.o.o -o getcap.o
rm -f getcap.o.o
echo "cc -O -DNLS -DYP -DLIBC_SCCS -DSYSLIBC_SCCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DFLOATING_POINT  -c /usr/src/lib/libc/gen/getgrent.c"
cc -O -DNLS -DYP -DLIBC_SCCS -DSYSLIBC_SCCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DFLOATING_POINT  -c /usr/src/lib/libc/gen/getgrent.c  -o getgrent.o.o
ld -x -r getgrent.o.o -o getgrent.o
rm -f getgrent.o.o
echo "cc -O -DNLS -DYP -DLIBC_SCCS -DSYSLIBC_SCCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DFLOATING_POINT  -c /usr/src/lib/libc/gen/getlogin.c"
cc -O -DNLS -DYP -DLIBC_SCCS -DSYSLIBC_SCCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DFLOATING_POINT  -c /usr/src/lib/libc/gen/getlogin.c  -o getlogin.o.o
ld -x -r getlogin.o.o -o getlogin.o
rm -f getlogin.o.o
echo "cc -O -DNLS -DYP -DLIBC_SCCS -DSYSLIBC_SCCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DFLOATING_POINT  -c /usr/src/lib/libc/gen/getpass.c"
cc -O -DNLS -DYP -DLIBC_SCCS -DSYSLIBC_SCCS -I/usr/src/lib/libc/include -D__DBINTERFACE_PRIVATE -DPOSIX_MISTAKE -DFLOATING_POINT  -c /usr/src/lib/libc/gen/getpass.c  -o getpass.o.o
ld -x -r getpass.o.o -o getpass.o
rm -f getpass.o.o

[[more deleted]]

>Fix:
	I dunno.  A warning, somewhere in a README file, would be adequate,
	if the above is the intended behaviour.
>Audit-Trail:
>Unformatted: