Page 1 of 1

Kernel 3.22 error when compiling

Posted: Tue 2015-02-24 21:37
by max_1536

I got this error with the kernel3.24.


Build started. Project: kernel3.24, configuration: Emulation-Debug

mkabs -o rom1005g.o -f rom1005g.txt
mkabs: I have 1 entries to process.
mkabs: writing rom1005g.o
vslink -k -m mem_desc_kernel03.mem rom1005g.o c-1005g_kernel.o Emulation-Debug\power_devboard.o Emulation-Debug\main.o Emulation-Debug\vsos.o Emulation-Debug\vo_fat.o Emulation-Debug\vo_printf.o Emulation-Debug\geti6.o Emulation-Debug\kernel_abs.o Emulation-Debug\patchmp3asm.o Emulation-Debug\patchmp3.o Emulation-Debug\timeCount.o Emulation-Debug\vo_gpio.o Emulation-Debug\clockspeedpatch.o Emulation-Debug\hwLocks.o Emulation-Debug\xPerip.o Emulation-Debug\xPeripAsm.o Emulation-Debug\fifoRdWr.o Emulation-Debug\hwLocksAsm.o Emulation-Debug\stdbuttonsDumb.o Emulation-Debug\consoleops.o Emulation-Debug\apploader.o Emulation-Debug\lowlevels.o Emulation-Debug\voaudio.o Emulation-Debug\getmemory.o Emulation-Debug\sethandler.o Emulation-Debug\clockspeedpatchAsm.o Emulation-Debug\uartSpeed.o Emulation-Debug\devHwSpi.o Emulation-Debug\scsi.o Emulation-Debug\msc.o Emulation-Debug\hwLockPinMask.o Emulation-Debug\mutex.o Emulation-Debug\console.o Emulation-Debug\devSpiFlash.o Emulation-Debug\vsos_vs1005g.o Emulation-Debug\intosgfix.o Emulation-Debug\sysuimsg.o Emulation-Debug\extSymbols.o Emulation-Debug\transient.o -o Emulation-Debug\VSOS_0304.coff -L. -Llib -LC:\VSIDE\libvs1005g_vsos3 -lc -lrtossmall -lgeneral

Warning: vslink: Emulation-Debug\kernel_abs.o: section types for ZeroPtrCall don't match: 0x0020 0x0820
ERROR: vslink: section TransientAddKernelSymbols not mapped to transient_i
C:\VSIDE\bin\make.exe: *** [Emulation-Debug/VSOS_0304.coff] Error 10

Build failed!

Re: Kernel 3.22 error when compiling

Posted: Wed 2015-02-25 7:09
by Panu

Yeah.. it's a mystery: the compiler sometimes generates a couple of words longer code than at other time, probably due to a side effect of a semirandom seed in register allocator, which sometimes leads to an extra spill. I thought I had it safe in transient_i, but I guess I didn't.

The size of transient_i segment is fixed to the accuracy of one word to make it impossible for the vslink linker to accidentally put a function into transient_i which would be needed after boot-up time. The solution is to add a few words more to the length of transient_i in the memory description file (mem_desc_kernel03.mem).

Sorry about this, we are looking for more elegant ways to fix this known problem.


Re: Kernel 3.22 error when compiling

Posted: Sat 2018-03-10 12:03
by YuryShatz
The problem is still there with kernel 3.54 and VSIDE 2.43