# Source upgrade 12.0-STABLE to 12.1-RELEASE fails



## rowan194 (Oct 19, 2020)

Attempting to buildworld of 12.1-RELEASE under 12.0-STABLE (r348286) fails with a compile error.

Source was fetched via SVN, https://svn.freebsd.org/base/releng/12.1

I've tried make cleanworld, rm /usr/obj, single threaded make (no -jX) ... same error each time.

Unsure whether config.h is supposed to be part of FreeBSD 12, or it's generated during buildworld [edit: based on the lex and yacc calls, possibly the latter]. Either way, it doesn't exist.

I guess one other thing to try is updating the STABLE src, then attempting to compile RELEASE again, but failing that... any ideas?

Thanks.


```
# make buildworld
[...]

===> lib/libunbound (all)
cp -f /usr/src/contrib/unbound/util/configlexer.lex configlexer.l
lex -Pub_c_ -oconfiglexer.c configlexer.l
yacc -pub_c_ -d -o configparser.c /usr/src/contrib/unbound/util/configparser.y
echo libprivateunbound.so.5.full: /usr/obj/usr/src/amd64.amd64/tmp/usr/lib/libssl.a /usr/obj/usr/src/amd64.amd64/tmp/usr/lib/libcrypto.a /usr/obj/usr/src/amd64.amd64/tmp/usr/lib/libpthread.a >> .depend
cc -target x86_64-unknown-freebsd12.1 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin  -O2 -pipe -I/usr/src/contrib/unbound -I/usr/src/contrib/ldns -I/usr/obj/usr/src/amd64.amd64/lib/libunbound -I/usr/src/usr.sbin/unbound   -g -MD  -MF.depend.alloc.o -MTalloc.o -std=gnu99 -fstack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef -Wno-address-of-packed-member -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter  -Qunused-arguments  -c /usr/src/contrib/unbound/util/alloc.c -o alloc.o
/usr/src/contrib/unbound/util/alloc.c:42:10: fatal error: 'config.h' file not found
#include "config.h"
         ^~~~~~~~~~
1 error generated.
*** Error code 1

Stop.
make[5]: stopped in /usr/src/lib/libunbound
```


----------



## Emrion (Oct 19, 2020)

All I know is that /usr/src/contrib/unbound/config.h is generated by `autoconf` with /usr/src/contrib/unbound/configure.ac as argument (I read that in the sources). Is `autoconf` present on your system? Well, I suppose it isn't that simple but...


----------



## T-Daemon (Oct 19, 2020)

```
find /usr/src -name config.h | grep unbound
/usr/src/usr.sbin/unbound/config.h
```
Check if that file exists.


----------



## chrcol (Oct 19, 2020)

Hi

what is contents of src.conf and make.conf.

Also did you wipe /usr/obj and before you started.

Also made sure /usr/src clean before new source downloaded?


----------



## rowan194 (Oct 20, 2020)

*LATER EDIT:* Despite saying I had a clean /usr/src, it looks like I may have missed usr.sbin - which is where unbound lives. I'll try again.

*****


To answer the subsequent questions:

- autoconf is present and appears to be working.

- config.h does not exist referencing unbound anywhere under /usr/src/

- /usr/obj was deleted before each buildworld attempt (tried both `make cleanworld` and `rm -R /usr/obj`)

- /usr/src was clean before the SVN download (but I'm going to try again, just in case)

- src.conf does not exist.

- make.conf has only the line "*DEFAULT_VERSIONS+=ssl=base*"

I also tried `env -i make buildworld` (on a clean world) as suggested in UPDATING, but that makes no difference.

----

The current 12.0-STABLE version was (obviously) compiled from source, without any issues, but that was last year. The only system level stuff that has changed since then should be package upgrades.


----------



## rowan194 (Oct 20, 2020)

(Sheepish look) Missing the stale user.sbin from the delete was the problem. A buildworld has now successfully completed. Sorry for wasting everyone's time.


----------

