*BSD News Article 61224


Return to BSD News archive

Newsgroups: comp.bugs.2bsd
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!nntp.coast.net!news.kei.com!newsfeed.internetmci.com!gatech!newsfeed.pitt.edu!CTCnet!news.math.psu.edu!news.iag.net!news.new-york.net!wlbr!sms
From: sms@wlv.iipo.gtegsc.com (Steven M. Schultz)
Subject: libkern/Makefile VPATH error (Opus 300)
Sender: news@wlbr.iipo.gtegsc.com (Steven M. Schultz)
Organization: GTE Government Systems, Thousand Oaks CA USA
Message-ID: <DM8IsE.IM3@wlbr.iipo.gtegsc.com>
X-Nntp-Posting-Host: wlv.iipo.gtegsc.com
Date: Sun, 4 Feb 1996 04:50:36 GMT
Lines: 141

Subject: libkern/Makefile VPATH error (Opus 300)
Index:	lib/libkern/Makefile 2.11BSD

Description:
	Use of the VPATH in the libkern Makefile causes the wrong
	objects to be included.

Repeat-By:
	cd /usr/src/lib
	make

	NOTE that libkern.a is built last.  At that time all of the .o
	files which make up libkern.a already exist in the directories 
	which are part of the VPATH.  Thus nothing gets assembled with
	"-DKERNEL" defined.

Fix:
	Cut where indicated, saving to a file (/tmp/300).  Then:

		patch -p0 < /tmp/300

---------------------------cut here---------------------------
*** /usr/src/lib/libkern/Makefile.old	Thu Jan 11 11:10:00 1996
--- /usr/src/lib/libkern/Makefile	Sat Feb  3 20:32:04 1996
***************
*** 1,20 ****
  #
! #	@(#)Makefile	1.0 (2.11BSD GTE) 1995/1/10
  #
  # This is the Makefile for 'libkern.a'.  These are the specially compiled
  # versions of libc.a routines which the kernel and network use.
  #
! # There are no source files in this directory.  The VPATH capability is
! # used instead.  libkern.a needs to be installed only once (usually when the 
  # C library is installed) rather than compiling the sources each time 
  # a kernel is compiled..
  
  DEFS=	-DKERNEL
! CFLAGS=	 -O ${DEFS}
! CPP=	/lib/cpp -P ${DEFS}
  AS=	/bin/as -u
! PREFIX=	/usr/src/lib/libc
! VPATH= ${PREFIX}/pdp/crt:${PREFIX}/pdp/gen:${PREFIX}/pdp/net
  
  SRCS=	bcmp.s bcopy.s bzero.s ffs.s htonl.s htons.s insque.s \
  	ldiv.s lmul.s lrem.s remque.s strlen.s udiv.s uldiv.s ulsh.s
--- 1,20 ----
  #
! #	@(#)Makefile	1.1 (2.11BSD GTE) 1996/2/3
  #
  # This is the Makefile for 'libkern.a'.  These are the specially compiled
  # versions of libc.a routines which the kernel and network use.
  #
! # There are no source files in this directory.  Links are made to the files.
! #
! # libkern.a needs to be installed only once (usually when the 
  # C library is installed) rather than compiling the sources each time 
  # a kernel is compiled..
  
  DEFS=	-DKERNEL
! CFLAGS=	 -O ${DEFS} -I../libc/pdp/gen
! CPP=	/lib/cpp -P ${DEFS} -I../libc/pdp/gen
  AS=	/bin/as -u
! PREFIX=	/usr/src/lib/libc/pdp
  
  SRCS=	bcmp.s bcopy.s bzero.s ffs.s htonl.s htons.s insque.s \
  	ldiv.s lmul.s lrem.s remque.s strlen.s udiv.s uldiv.s ulsh.s
***************
*** 32,38 ****
  	ld -X -r $*.o
  	mv a.out $*.o
  
! all: libkern.a
  
  libkern.a: ${OBJS}
  	rm -f libkern.a
--- 32,38 ----
  	ld -X -r $*.o
  	mv a.out $*.o
  
! all: FRC libkern.a
  
  libkern.a: ${OBJS}
  	rm -f libkern.a
***************
*** 39,45 ****
  	ar rv libkern.a ${OBJS}
  
  clean:
! 	rm -f ${OBJS} libkern.a
  
  depend: ${SRCS}
  	mkdep ${CFLAGS} ${SRCS}
--- 39,45 ----
  	ar rv libkern.a ${OBJS}
  
  clean:
! 	rm -f ${OBJS} ${SRCS} libkern.a
  
  depend: ${SRCS}
  	mkdep ${CFLAGS} ${SRCS}
***************
*** 47,52 ****
--- 47,70 ----
  install: libkern.a
  	install -o root -g bin -m 644 libkern.a ${DESTDIR}/usr/lib/libkern.a
  	ranlib ${DESTDIR}/usr/lib/libkern.a
+ 
+ FRC:
+ 	rm -f ${SRCS}
+ 	ln ${PREFIX}/gen/bcmp.s bcmp.s 
+ 	ln ${PREFIX}/gen/bcopy.s bcopy.s
+ 	ln ${PREFIX}/gen/bzero.s bzero.s
+ 	ln ${PREFIX}/gen/ffs.s ffs.s
+ 	ln ${PREFIX}/gen/insque.s insque.s
+ 	ln ${PREFIX}/gen/remque.s remque.s
+ 	ln ${PREFIX}/gen/strlen.s strlen.s
+ 	ln ${PREFIX}/crt/ldiv.s ldiv.s
+ 	ln ${PREFIX}/crt/lmul.s lmul.s
+ 	ln ${PREFIX}/crt/lrem.s lrem.s
+ 	ln ${PREFIX}/crt/udiv.s udiv.s
+ 	ln ${PREFIX}/crt/uldiv.s uldiv.s
+ 	ln ${PREFIX}/crt/ulsh.s ulsh.s
+ 	ln ${PREFIX}/net/htonl.s htonl.s
+ 	ln ${PREFIX}/net/htons.s htons.s
  
  # DO NOT DELETE THIS LINE -- mkdep uses it.
  # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
*** /VERSION.old	Tue Jan 30 19:48:38 1996
--- /VERSION	Sat Feb  3 20:41:25 1996
***************
*** 1,4 ****
! Current Patch Level: 299
  
  2.11 BSD
  ============
--- 1,4 ----
! Current Patch Level: 300
  
  2.11 BSD
  ============