在do_compiler期间排除/忽略/禁用标志

时间:2014-10-11 23:08:34

标签: openembedded bitbake

我正在尝试在bitbake(.bb)配方的do_compile阶段运行脚本。该项目建立在一个开放式的环境中。

1)脚本可以在openembedded环境之外成功运行。

2)在openembedded环境中运行时脚本失败,并出现以下错误:

 bin/arm-linux-gnueabihf-ld.bfd -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed   -r -o
 bin/arm-linux-gnueabihf-ld.bfd: unrecognized option '-Wl,-O1'

Openembedded环境正在添加这些额外的标志,-Wl,-O1 -Wl, - hash-style = gnu。

3)当脚本在openembedded项目之外运行时,这是输出:

 bin/arm-linux-gnueabihf-ld.bfd  -r -o 

我正在寻找一种在编译阶段禁用或排除这些链接器,优化和其他标志的方法。我正在努力寻找解决方案而且我并不精通编码和编程的许多方面。发展。

我是否可以在脚本内部或bitbake(.bb)配方中调用语句,以便可以跳过或忽略这些标志?

或者有没有办法可以修改我的脚本来识别这些标志?

感谢您提供任何信息或帮助。如果需要,我很乐意提供更多信息。

1 个答案:

答案 0 :(得分:0)

解决了:

do_compile() {
    unset LDFLAGS
    unset CFLAGS
    unset CPPFLAGS
    # remove CC so it is defined here
    sed -e '/^CC\t=/d' -i ${S}/config.mk
    oe_runmake all 

    # fix tools/env Makefile usage
    sed -e 's/$(CROSS_COMPILE)gcc/$(CC)/g' \
        -e 's/ln -s /ln -sf /g' \
        -e '/CFLAGS :=/ aCFLAGS += -DMEM_SIZE_${@d.getVar('KERNEL_BOOTLOADER_MEM_SIZE',1) or '128'}MB' \
        -i ${S}/tools/env/Makefile
    oe_runmake env CC="${CC}"
    oe_runmake fw_env_lib CC="${CC}"}