# make buildkernel keeps dying



## ph0enix (Nov 7, 2013)

I currently have 9.2-STABLE (i386) on a VirtualBox VM.  I wanted to go to 9.2-RELEASE-p1 so I did the following:


```
rm -rf /usr/src
svn  co https://svn0.us-east.freebsd.org/base/releng/9.2 /usr/src
cd /usr/src
make buildworld
make buildkernel KERNCONF="GENERIC"
```

but buildkernel keeps dying in the same spot (tried it several times):


```
cc -c -O -pipe  -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  --option   -nostdinc  -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --parn-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror  /usr/src/sys/dev/random/ivy.c
{standard input}: Assembler messages:
{standard input}:84: Error: no such instruction: `rdrand %eax'
*** [ivy.o] Error code 1

Stop in /usr/obj/usr/src/sys/JackS.
*** [buildkernel] Error code 1

Stop in /usr/src.
*** [buildkernel] Error code 1

Stop in /usr/src.
```

My make.conf looks like this:

```
#WITH_PKGNG=yes
# added by use.perl 2013-09-17 14:47:15
PERL_VERSION=5.12.5
```

I updated to the latest source via `svn update /usr/src` but that didn't help. Kernel build still fails in the same spot. What am I doing wrong?


----------



## kisscool-fr (Nov 7, 2013)

I'm not sure the double quotes are necessary. 

Can you try with just `make buildkernel KERNCONF=GENERIC`

or because you are using the GENERIC kernel you can do `make buildkernel`


----------



## ph0enix (Nov 7, 2013)

kisscool-fr said:
			
		

> I'm not sure the double quotes are necessary.
> 
> Can you try with just `make buildkernel KERNCONF=GENERIC`
> 
> or because you are using the GENERIC kernel you can do `make buildkernel`



Thanks.  I never had a problem with the double quotes before but I did try compiling without the KERNCONF option at all which basically builds GENERIC and the build failed as well.


----------



## wblock@ (Nov 7, 2013)

Have you done a buildworld first?


----------



## ShelLuser (Nov 7, 2013)

I couldn't help noticing that your port collection seems a bit out of date. I also had those Perl lines in my /etc/make.conf but some time ago they've been removed by the system during an update.

Now; I was using lang/perl5.14 so it is possible that there's something different between them, but I still wonder if this could be of some influence.

Another thing; you've shown us your make.conf but do you perhaps also have a /etc/src.conf file present? If so it might help to show that one as well.

*Edit*:

Something occurred to me. You mentioned removing /usr/src so I assume something was already in place there. Does /usr/obj also exist, and if so: does it have any contents?

Because if that's the case then my advice would be to clean out /usr/obj and try again.


----------



## ph0enix (Nov 7, 2013)

wblock@ said:
			
		

> Have you done a buildworld first?



Yes, I did.


----------



## ph0enix (Nov 7, 2013)

ShelLuser said:
			
		

> I couldn't help noticing that your port collection seems a bit out of date. I also had those Perl lines in my /etc/make.conf but some time ago they've been removed by the system during an update.
> 
> Now; I was using lang/perl5.14 so it is possible that there's something different between them, but I still wonder if this could be of some influence.
> 
> Another thing; you've shown us your make.conf but do you perhaps also have a /etc/src.conf file present? If so it might help to show that one as well.



I don't have  src.conf.  I'll try updating ports.


----------



## wblock@ (Nov 7, 2013)

The reason for asking about buildworld is that it builds tools that are needed for building the kernel.  If /usr/src has been updated since the last time a kernel was built, buildworld should be done again before trying to build a kernel.


----------



## youngunix (Nov 7, 2013)

Correct me if I'm wrong, but this `# rm -rf /usr/src` removes /src and everything in it.
So, does checking out a new source recreates the folder?

It's best to use `# rm -rf /usr/src/*` to remove everything inside /src and not the folder itself.


----------



## ph0enix (Nov 7, 2013)

youngunix said:
			
		

> Correct me if I'm wrong, but this `# rm -rf /usr/src` removes /src and everything in it.
> So, does checking out a new source recreates the folder?
> 
> It's best to use `# rm -rf /usr/src/*` to remove everything inside /src and not the folder itself.



Yes, checking out new source recreates the directory.


----------



## ph0enix (Nov 11, 2013)

Solved.  Explanation here. (My own fault)


----------

