optimization levels in genode

Stefan Kalkowski stefan.kalkowski at genode-labs.com
Mon Nov 12 11:54:09 CET 2018


On Fri, Nov 09, 2018 at 08:49:00PM +0800, lzSun wrote:
> Hello,Stefan
> >did you followed my advice to first enable the FPU in the kernel?
> >Otherwise it is totally clear to not work at all, because -O3 compiledcode make heavily use of the >FPU.
> Thanks for your patient reply. I have tried to compile the hard-float genode toolchain by modifying the repos/tool/tool_chain like this:
> -TARGET_NAME_arm        = arm-none-eabi
> +TARGET_NAME_arm        = arm-none-eabihf
> And I use tool_chain script to compile hard-float compiler by "./tool/tool_chain arm" command. Then , I followed your advice to enable the FPU in the kernel according to this patch[1]. But when I want to build the project by "make run/tz_vmm", the compiling stage seems completed, but there's error occurred in linking stage.The error message like this:
> genode build completed
> using 'hw_timer_drv' as 'timer'
> using 'ld-hw.lib.so' as 'ld.lib.so'
> core link address is 0x80000000
> /usr/local/genode-gcc2/bin/../lib/gcc/arm-none-eabihf/6.3.0/../../../../arm-none-eabihf/bin/ld: error: var/run/tz_vmm.core uses VFP register arguments, /usr/local/genode-gcc2/bin/../lib/gcc/arm-none-eabihf/6.3.0/libgcc.a(_fixsfdi.o) does not
> I am a little confused.  I think I have build the hard-float compiler and enabled the FPU in the kernel. Did I missed something? 
> I also tried to change the flag "-mfloat-abi=hard" to "-mfloat-abi=softfp" in repos/base/mk/global.mk and repos/base/mk/spec/arm_v7a.mk, then the project can
> be  build successfully but still stuck at "Starting kernel ..." at booting stage.
> >I've compiled a hard-float compiler like advised to you, took that topic branch, and recognized that for the i.MX53 one needs to set the
> >-mfpu flag to neon. Then I could measure the performance gain on the i.MX53 Quickstart board. I've updated my topic branch to be
> >ready-to-merge, and prepared a topic branch that uses hard-float neon FPU at least on i.MX53 here:

I think you used the "old" topic branch that enabled the FPU, but in
my last e-mail I referred to a new branch that uses the "neon" FPU
compiler flags and the correct GCC support library that I've uploaded
for you. Here it is again:


> Thank you very much  for providing such a patch to me. But since the patch you provided is based on  genode 18.08 and I am using 18.05 now, I can't use "git diff" command to see which files are modified. Because there are too many file changes. And it seems that the patch you provided can not be used by me directly. So, as I said before, I refer to this patch[1] to enable FPU in kernel.At beginning, I just modify the file that I think related to i.mx53 ,here's the list of  those file. Then, I also tried to modify all the file related to the patch[1] but the result have not changed . I know my questions  are quite more and odd, please do not mind and thanks for your patience.

Sorry, but if you want to use "new" features you need to stay
up-to-date here, or port back relevant changes (see above branch). I
cannot help you here.


> [1] https://github.com/skalk/genode/commit/cf02346cef59a6752c9a07494d812c8ada701517
> [2] 
>  repos/base-hw/lib/mk/spec/armv7/core-hw.inc
>  repos/base-hw/src/bootstrap/spec/arm/crt0.s
>  repos/base-hw/src/core/spec/arm/cpu_support.h
>  repos/base-hw/src/core/spec/arm/exception_vector.s
>  repos/base-hw/src/core/spec/arm/kernel/thread.cc
>  repos/base-hw/src/core/spec/arm/vfpv3-d32.s
>  repos/base/mk/spec/arm_v7a.mk
> ------------------
> Best wishes

> _______________________________________________
> Genode users mailing list
> users at lists.genode.org
> https://lists.genode.org/listinfo/users

Stefan Kalkowski
Genode labs

https://github.com.skalk | https://genode.org

More information about the users mailing list