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: