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

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

被折叠的 条评论
为什么被折叠?



