使用Arm GNU Toolchain 12.2.Rel1交叉编译出比正常多60k的程序

问题描述 投票:0回答:0

使用ARM官方编译器12.2.Rel1版本 arm-none-linux-gnueabihf arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz

void main()
{
}

使用命令

arm-none-linux-gnueabihf-gcc main.c -o main
最后的结果是72K。如果使用11.3.Rel1的版本,结果是正常的12K。发现12.2的exception_ranges段向后移动了0xf000,正好是60k

我怀疑 MAXPAGESIZE 或 COMMONPAGESIZE 默认设置很高,但我试试

arm-none-linux-gnueabihf-gcc main.c -o main -Wl,-zmax-page-size=0x8000 -Wl,-zcommon-page-size=0x1000

结果还是不正常。无论怎么调整max-page-size和common-page-size,都得不到11.3版本一致的exception_ranges段偏移量

c linux arm cross-compiling gnu
© www.soinside.com 2019 - 2024. All rights reserved.