how to build 64 bit kernels on 32 bit userland?
You are cross-compiling. You must use new --cross-compile command-line parameter. See man page for more details.
this cross-compile option implies I have to build a cross compiler just to build x864-64 kernel on 32 bits user land. Have I missed anything?
Well, I implemented Gentoo's multilib behavior in genkernel: To compile for x86 on amd64 you would set --cross-compile=i686-pc-linux-gnu and genkernel would understand that it will have to use "x86_64-pc-linux-gnu-gcc -m32" for example, see https://gitweb.gentoo.org/proj/genkernel.git/tree/gen_funcs.sh?h=v4.0.1#n1116. You are asking for the other way which is not supported without proper crossdev toolchain.
(In reply to Thomas Deutschmann from comment #3) > Well, I implemented Gentoo's multilib behavior in genkernel: To compile for > x86 on amd64 you would set --cross-compile=i686-pc-linux-gnu and genkernel > would understand that it will have to use "x86_64-pc-linux-gnu-gcc -m32" for > example, see > https://gitweb.gentoo.org/proj/genkernel.git/tree/gen_funcs.sh?h=v4.0. > 1#n1116. > > You are asking for the other way which is not supported without proper > crossdev toolchain. I used to work with --override-arch option so I figure it could work using i686-pc-linux-gnu -m64 ?