Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Jul 2000 21:01:35 -0400
From:      Jay Sachs <jsachs@iclick.com>
To:        Justin Cain <asmo@scully.gothworld.com>
Cc:        freebsd-stable@FreeBSD.ORG, asmo@bck.org, jcain@kivex.com
Subject:   Re: Make Buildkernel Error: answers and questions
Message-ID:  <397B956F.40E9DD4C@iclick.com>
References:  <Pine.BSF.4.21.0007220101200.17702-100000@scully.gothworld.com>

next in thread | previous in thread | raw e-mail | index | archive | help
The answer to your problem, which I finally figured out for myself, is
that

  make buildkernel

only works if you've recently (sometimes immediately) done a

  make buildworld

AND 

  **you still have the /usr/obj tree around**. 

(I don't remember seeing this explicitly stated in the recent threads,
but I definitely could have missed it). If you did a make clean, or
rm-ed /usr/obj, 'make buildkernel' will NOT work.

The clue is early on in the output of buildkernel. You'll see lines

   sh /usr/src/sys/kern/genassym.sh genassym.o > assym.s
   nm: could not exec elf/nm in /usr/obj/usr/src/i386/usr/libexec: No
such file or 
   directory

Turns out Makefile.inc1 sets OBJFORMAT_PATH, which causes the exec that
script to fail. 

My conclusion is that even if I've done a buildworld recently, and blew
away /usr/obj for space reasons, then I should go about building new
kernels via

  cd /usr/src/sys/i386/conf
  config -r MYKERNEL
  make depend && make && make install

Furthermore, as long as I haven't supped since I built world, the
old-fashioned way of building a kernel is not only safe, but necessary,
if /usr/obj is cleaned.

jay

Justin Cain wrote:
> 
> I recieved a suggestion to remove the "wi" entry from the
> /usr/src/sys/modules/Makefile which I did for a test. Instead of stopping
> at wi it stops at vinum which is the previous module to compile before wi
> ...so it appears that the modules makefile is possibly broke. This is the
> output of the break in the make buildkernel:
> 
> ===> vinum
> @ -> /usr/src/sys
> machine -> /usr/src/sys/i386/include
> touch opt_vinum.h
> perl @/kern/vnode_if.pl -h @/kern/vnode_if.src
> rm -f .depend
> mkdep -f .depend -a   -nostdinc -DVINUMDEBUG -D_KERNEL -DKLD_MODULE -I-
> -I. -I@ -I@/../include  /usr/src/sys/modules/vinum/../../dev/vinum/vinum.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumconfig.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumdaemon.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinuminterrupt.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumio.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumioctl.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumlock.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinummemory.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumparser.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumraid5.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumrequest.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumrevive.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumstate.c
> /usr/src/sys/modules/vinum/../../dev/vinum/vinumutil.c
> cc -c -x assembler-with-cpp -DLOCORE -O -pipe -Wall -Wredundant-decls
> -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith
> -Winline -Wcast-qual  -fformat-extensions -ansi  -nostdinc -I-
> -I. -I/usr/src/sys -I/usr/src/sys/../include  -D_KERNEL -include
> opt_global.h -elf  -mpreferred-stack-boundary=2
> /usr/src/sys/i386/i386/locore.s
> {standard input}: Assembler messages:
> {standard input}:1745: Error: .space specifies non-absolute value
> {standard input}:2505: Error: undefined symbol L0 in operation setting
> PTmap
> {standard input}:2505: Error: undefined symbol PDRSHIFT in operation
> setting PTmap

[snip]


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?397B956F.40E9DD4C>