我正在使用 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-profiler
apt 提供的 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