Dear gcc:
I am developing a address sanitiser tools for u-boot. Basically refers
compile options from kernel side. But there is a problem that I must set
-fasan-shadow-offset with a pre-calculated value. Otherwise GCC compiler will
use 0x1000000000 as default value for shadow offset and caused boot failed
because this value is too large.
The problem is uboot do not have a fixed memory layout as kernel. Basically
it will relocate to end of DDR size and running at that memory space. Usually
memory map for uboot is virt=phys and there are lots of drivers do not do
address translate for dma based on this mapping. But ddr size are different on
each platform. So it's hard to handle shadow offset at this scenario.
My point is that can gcc add an option like -fasan-shadow-symbol=xxxx, here
xxxx is a global variable and implementors can configure it's value based on
platforms ddr size/malloc buffer size during initialize stage and this variable
can be used for shadow address calculation during runtime. This may be more
fitable compared than a fixed value during compile stage. And is there any
other options to help my problem?
Waiting for your response asap.
Thanks.
Thanks!
B.R.
[email protected]
Address: Building E5, 2555 Xiupu Road, Pudong District, Shanghai, China
公司地址:上海市浦东新区秀浦路2555号漕河泾康桥商务绿洲E5栋