To get started I wouldn't recommend to compile the Kernel yourself but use the one from package linux-armv7 instead. If you got 3.4 from linux-sunxi running installing the package shouldn't be a problem.
As for the other problems I guess they are due to an unsuitable U-Boot version. Mainline Kernels require recent U-Boot versions like the
u-boot-sunxi "custodian".
Personally, I've always compiled it on my x86_64 desktop and don't know how exactly to do it on ARM (there seems to be the need for some "soft-float gcc libraries" even on hard-float platforms).
To install, you basically have to copy u-boot-sunxi-with-spl.bin as described on linux-sunxi.org and make sure the right parameters are set. I for one never use uEnv.txt but put everything I need into boot.scr. A suitable boot.cmd could looke like so
$this->bbcode_second_pass_code('', '
env set bootargs panic=10 console=ttyS0,115200 consoleblank=0 rootwait root=/dev/mmcblk0p1 rw init=/usr/lib/systemd/systemd
env set fdt_high 0xffffffff
ext4load mmc 0 0x46000000 boot/zImage
ext4load mmc 0 0x49000000 boot/dtbs/sun7i-a20-cubietruck.dtb
bootz 0x46000000 - 0x49000000
')given you're putting everything on the SD card's first partition (beware line breaks in code snippet). ext4 is fine, btw.