我正在使用 Odroid XU3:

我正在使用 Odroid XU3:

我正在使用 Odroid XU3:

  • Ubuntu 18.04(内核版本 3.10.106-154)
  • Clang 6.0.0(报告/usr/bin/../lib/gcc/arm-linux-gnueabihf/7为 gcc 安装)
  • 架构是armv7l根据 uname 输出的

问题:

我目前正在尝试编辑因为并且所有东西都编译成功,没有任何错误。但是,使用任何程序运行分析器都会导致以下错误:

[ 6325.439410] [c5] Alignment trap: not handling instruction e1932f9f
[ 6325.446696] [c5] ... alignment exception (0x011) at 0xb6f7b061

查看从 开始的核心转储,coz/libcoz/ccutil/static_map.h:17我发现了/usr/include/c++/7/bits/atomic_base.h:434以下这一行:

return __atomic_compare_exchange_n(&_M_i,&__i1,__i2,1,__m1,__m2);

我既不是经验丰富的 c++ 程序员,也不是 linux 用户,所以我真的不知道接下来该怎么做,这是 std c++ 库中的错误吗?我是不是做错了什么?我猜可能是 coz 的代码出了问题,但通过coz-profilerapt 提供的 coz 版本运行正常。我尝试过更新/重新安装 gcc 和 clang、只用 gcc 进行编译以及使用不同的架构选项进行编译,但都无济于事。关于修复此问题的下一步的任何见解将是非常赞赏。

编辑:

为了清楚起见,在尝试编译 Coz repo 之前我没有对其进行任何编辑。

编辑2:

我尝试向编译器添加尽可能多的我能找到的体系结构标志,当前列表是以下内容的组合:

  • -march=armv7l
  • --target=arm-linux-gnueabihf
  • -mthumb

我真诚地希望这只是使用正确标志的问题,但我不知道它是否还那么简单。

编辑3:

我找到了这个-mno-unaligned-access标志,它似乎解决了我的第一个问题,但现在我遇到了

[ 728.768836] [c5] Alignment trap: not handling instruction ed800a00 at [<b6f4ceac>]
[ 728.778027] [c5] ... alignment exception (0x811) at 0xb6f89b63

相关内容