gcc的spec中arch什么的指定

本文探讨了GCC编译器中`-march`和`-mtune`选项的使用,通过GDB调试展示了它们在gcc源码中的处理过程。示例显示了如何设置这些参数来针对特定的CPU架构(如armv4t和arm920t)。同时提到了`-mfloat-abi`选项,并提及在Android环境下如何修改specs文件以适应不同平台的需求。

 

gcc/gcc.c中的set_collect_gcc_options这里面有COLLECT_GCC_OPTIONS='-march=armv4t' '-mtune=arm920t

 

(gdb) p switches[0]
$15 = {part1 = 0x80792b1 "march=armv4t", args = 0x0, live_cond = 1,
  validated = 1 '/001', ordering = 0 '/000'}
(gdb) p switches[1]
$16 = {part1 = 0x80792c1 "mtune=arm920t", args = 0x0, live_cond = 0,
  validated = 1 '/001', ordering = 0 '/000'}
(gdb) p switches[2]
$17 = {part1 = 0x80792d1 "mfloat-abi=soft", args = 0x0, live_cond = 0,
  validated = 1 '/001', ordering = 0 '/000'}
(gdb) p switches[3]
$18 = {part1 = 0x0, args = 0xf7fb3420, live_cond = 1768697683,
  validated = 98 'b', ordering = 47 '/'}
(gdb) p n_switches
$19 = 3

 

switches的赋值 在do_self_spec和process_command

多次调用do_self_spec

 

 

Breakpoint 1, do_self_spec (
    spec=0xffffd150 "%{!march=*:%{!mcpu=*:-mcpu=arm920t}}")
    at ../../gcc-4.4.5/gcc/gcc.c:4614
4614      do_spec_2 (spec);

 

Breakpoint 1, do_self_spec (
    spec=0xffffd150 "%{!march=*:%{!mcpu=*:-march=armv4t}}")
    at ../../gcc-4.4.5/gcc/gcc.c:4614
4614      do_spec_2

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值