Subject: kern/4361: libkern.[ao] gets built to wrong place?
To: None <>
From: None <>
List: netbsd-bugs
Date: 10/27/1997 08:38:12
>Number:         4361
>Category:       kern
>Synopsis:       libkern.[ao] gets built to wrong place?
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Oct 26 22:50:00 1997
Clinet Ltd
>Release:        sups from last week (at least)
System: NetBSD 1.3_ALPHA NetBSD 1.3_ALPHA (CLINETALPHA) #19: Thu Oct 23 22:40:22 EEST 1997 alpha


make build fails with the following:

cc -Wall -Werror -mno-fp-regs -g -pipe -g -I. -I/usr/src/sys/arch/alpha/stand/boot/..
/.. -I/usr/src/sys/arch/alpha/stand/boot/../../../.. -DALPHA_BOOT_ECOFF -DALPHA_BOOT_
ELF -I/usr/src/sys/arch/alpha/stand/boot -DPRIMARY_LOAD_ADDRESS="0x20000000" -DSECOND
ARY_LOAD_ADDRESS="0x20004000" -nostdinc -idirafter /usr/build/usr/include  -D_ZLIB_PR
IVATE -nostdinc -idirafter /usr/build/usr/include -c /usr/src/sys/lib/libz/inftrees.c
cc -Wall -Werror -mno-fp-regs -g -pipe -g -I. -I/usr/src/sys/arch/alpha/stand/boot/..
/.. -I/usr/src/sys/arch/alpha/stand/boot/../../../.. -DALPHA_BOOT_ECOFF -DALPHA_BOOT_
ELF -I/usr/src/sys/arch/alpha/stand/boot -DPRIMARY_LOAD_ADDRESS="0x20000000" -DSECOND
ARY_LOAD_ADDRESS="0x20004000" -nostdinc -idirafter /usr/build/usr/include  -D_ZLIB_PR
IVATE -nostdinc -idirafter /usr/build/usr/include -c /usr/src/sys/lib/libz/infutil.c
building standard z library
ranlib libz.a
making sure the kern library is up to date...
`libkern.a' is up to date.
sh /usr/src/sys/arch/alpha/stand/boot/ /usr/src/sys/arch/alpha/stand/boot/v
cc -Wall -Werror -mno-fp-regs -g -pipe -g  -I/usr/src/sys/arch/alpha/stand/boot/../..
 -I/usr/src/sys/arch/alpha/stand/boot/../../../..  -DALPHA_BOOT_ECOFF -DALPHA_BOOT_EL
F -I/usr/src/sys/arch/alpha/stand/boot -DPRIMARY_LOAD_ADDRESS="0x20000000" -DSECONDAR
Y_LOAD_ADDRESS="0x20004000" -nostdinc -idirafter /usr/build/usr/include -c vers.c
ld -Ttext 20004000 -N -e start -o boot.sym  start.o boot.o loadfile.o disk.o conf.o p
rom.o prom_disp.o OSFpal.o devopen.o filesystem.o prom_swpal.o vers.o /usr/src/sys/ar
ch/alpha/stand/boot/lib/sa/libsa.a /usr/src/sys/arch/alpha/stand/boot/lib/z/libz.a /u
sr/src/sys/arch/alpha/stand/boot/lib/sa/libsa.a /usr/src/sys/arch/alpha/stand/boot/li
ld: cannot open /usr/src/sys/arch/alpha/stand/boot/lib/kern/libkern.o: No such file o
r directory
*** Error code 1


The problem seems to be that libkern.[ao] is built to wrong place:


#       Configuration variables (default values are below):
#       S       must be set to the top of the 'sys' tree.
#       KERNDST may be set to the location of the directory where library
#               objects are to be built.  Defaults to ${.OBJDIR}/lib/kern.
#       KERN_AS may be set to 'obj' to build a object from the library's
#               object files.  (Otherwise, a library will be built.)
#               Defaults to 'library'.
#               Miscellaneous cpp flags to be passed to the library's Makefile
#               when building.
#               Miscellaneous flags to be passed to the library's Makefile when
#               building.  See library's Makefile for more details about
#               supported flags and their default values.

# Default values:
KERNDST?=       ${.OBJDIR}/lib/kern
KERN_AS?=       library

KERNDIR=        $S/lib/libkern
.if (${KERN_AS} == "obj")
KERNLIB=        ${KERNDST}/libkern.o
KERNLIB_PROF=   ${KERNDST}/libkern.po
KERNLIB=        ${KERNDST}/libkern.a
KERNLIB_PROF=   ${KERNDST}/libkern_p.a

The Makefile generates the libkern.[ao] to KERNDIR, while Makefiles using this
seem to expect it to be built to KERNDST derived from .OBJDIR.
I'm not quite sure how the Makefiles should be here.


try make build or making kernels.  It might work for DESTDIR=/, but I do not dare
to try it before I can get it built with something else as DESTDIR.