Solved Source upgrade from 8.4 to 10.1 fails

I have my (remote) work machine on 8.4, specifically:

Code:
FreeBSD freshwater 8.4-STABLE FreeBSD 8.4-STABLE #13 r278381: Mon Feb  9
14:12:01 EST 2015  trev@freshwater:/usr/obj/usr/src/sys/FRESHWATER  amd64

And I have /usr/src up to:

Code:
Working Copy Root Path: /usr/src
URL: http://svn0.us-west.freebsd.org/base/stable/10
Relative URL: ^/stable/10
Repository Root: http://svn0.us-west.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 282995
Node Kind: directory
Schedule: normal
Last Changed Author: smh
Last Changed Rev: 282995
Last Changed Date: 2015-05-16 11:13:37 +1000 (Sat, 16 May 2015)

Attempts to make buildworld and make kernel-toolchain both fail in the same place:

Code:
===> usr.bin/mkesdb_static (obj,build-tools)
cc -O2 -pipe  -I/usr/src/usr.bin/mkesdb_static -I/usr/src/usr.bin/mkesdb_static/../mkesdb 
-I/usr/src/usr.bin/mkesdb_static/../../lib/libc/iconv -std=gnu99  -I/usr/obj/usr/src/tmp/legacy
/usr/include -c lex.c -o lex.o
lex.c:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
lex.c:21: warning: data definition has no type or storage class
lex.c:21: warning: type defaults to 'int' in declaration of 'yyleng'
lex.c:21: error: 'size_t' undeclared here (not in a function)
lex.c:21: error: 'yy_cp' undeclared here (not in a function)
lex.c:21: error: 'yy_bp' undeclared here (not in a function)
lex.c:21: error: stray '#' in program
lex.c:21: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'YY_NUM_RULES'
lex.c:31: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'flex_int16_t'

[...]

lex.c:419: error: initializer element is not constant
*** Error code 1

Stop.
bmake[2]: stopped in /usr/src/usr.bin/mkesdb_static
*** Error code 1

Stop.
bmake[1]: stopped in /usr/src
*** Error code 1

Stop.
bmake: stopped in /usr/src
*** Error code 1

Stop in /usr/src.

I've done make clean and I've removed /usr/obj to no effect.

Is updating via source from 8.4 to 10.1 not supported? Do I need to go via 9.x ?
 
I don't have a link to documentation that says so but everything I've seen so far says that you should upgrade only one major version ahead at a time.
 
Per /usr/src/UPDATING, this is the case on 11.0-CURRENT now since Clang 3.5 and above require a C++11 compiler such as Clang 3.3+ or GCC 4.8+ to compile. However, off the top of my head I'm not aware of anything like this for 8.4 to 10.1. Updating to 9.3 an intermediary should work.
 
Yes, updating from 8.4 to 9.3 via source did work. I haven't tried 9.3 to 10.1 yet as the system is in production and I've used up its weekend quiet time.
 
It's too late now, but I would have been curious of the updating from stable/8 to releng/10.1 would have worked. One of the changes to the stable/10 branch may only cause issues on this particular upgrade path.
 
Back
Top