This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2564MODA:Bluetopia 构建由于 FPIC 而失败

Guru**** 2589265 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1185952/cc2564moda-bluetopia-build-fails-due-to-fpic

器件型号:CC2564MODA

你(们)好

我想构建 Bluetopia 栈。

主机是 Linux x86_64。 目标是基于 ARM 32位的 Linux。

工具链是 ARM 开发人员提供的10.3-2021.07

编译期间,在以下步骤中会出现该问题:

ln BTPMSRVR_S.o libBTPM_S.A libBTPM_HAL_S.A libSS1BTAUD.A libSS1BTGAV.A libSS1BTAVR.A libSS1SBC.A libSS1BTSSTB.A libSS1BTSSTB.A libSS1BTS1BTSSTS.A libS1BTSSTS.A libS1BTS1BTSSTS.A libS1BTS1BTSB.A libSSTS.A libS1BTS1BTS1BTS1BTSSTS.A libS1BTSB.A libS1BTS1BTSSTS.A libS1BTSB.A libS1BTS1BTS1BTSB.A libSSTS.A libS1BTS1BTS1BTSB.A libSSTS.A libS1.A libS1BTS1BTSSTS.A libS1BTSB.A libS1BTS1BTS1BTS1BTSB.A libS1BTS1BTS1BTS1BTS1BTSB.A libSB.A libSB.A

问题是:

/opt/arm-buildroot-linux-gnueabihf_sdk-buildroot/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabihf/10.3.1/../../../../arm-none-linux-gnueabihf/bin/ld:./BluetopiaPM/lib/libBTPM_S.a (BTPMMAIN_S.o):在创建共享对象时、不能使用针对`a local symbol'的重定位 R_ARM_MOVW_ABS_NC;使用-FPIC 重新编译

(笑声) 许多类似的日志


/opt/arm-buildroot-linux-gnueabihf_sdk-buildroot/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabihf/10.3.1/../../../../arm-none-linux-gnueabihf/bin/ld:./BluetopiaPM/Bluetopia/lib/libBTPS.a (lockfile.o):创建共享对象时、不能使用针对`A local symbol'的重定位 R_ARM_MOVW_ABS_NC;使用-FPIC 重新编译
collect2:致命错误:LD 与信号11终止[分段故障]、内核转储
编译已终止。
proj/plat-rules.mak:101:目标'../BluetopiaPM/bin/SS1BTPM 的配方失败
制造:***[./BluetopiaPM/bin/SS1BTPM 错误1.

我已经为编译器设置了-fpic 标志。 但仍然会出现相同的问题。
可以有人帮助我吗? 提前感谢您!

此致、

米兰

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们对此不清楚。 看起来是工具链之间的冲突。

     您可以尝试使用默认工具链(来自 SDK)吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我之所以使用 ARM 开发人员提供的工具链10.3-2021.07 、是因为同一工具链用于构建 GNU/Linux OS。 它将用于构建其他堆栈和应用。 我假设您的工具链能够正常工作。 但是、是否也可以使用其他/我的工具链构建 Bluetopia? 如何实现这一点?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    根据编译标志、现有库应与编译器配合使用。

    您的系统中确切的 ARM 处理器是什么?

    您可以使用"-fno-pic"编译代码吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它是 ARM Cortex-A7。 flag -fno-pic 没有帮助。

    这些是
    toolchain-defs.mak 提供的 CFLAGS
    CFLAGS+=-March =armv7-A -mthum-mfloat-abi=hard -mfpu=neon -mtUNE=cortex-a7-sysroot=$(toolchain_path_target)-i$(toolchain_path_target)/usr/include

    加上 platform.mak 中的建议标志
    CFLAGS +=-fno-pic

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否尝试将库链接为共享对象? (如果是、请将其设为静态)

    您能否为链接器提供命令行?

    我们仍在尝试找到一个能够处理现有构建的解决方案。