abseil / abseil/abseil-cpp

Internal code makes alignment assumptions that are not guaranteed on m68k

未关闭
#1,149 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug
主要语言
C++
星标
18.1k
派生
3.2k
平均合并
20 小时 36 分钟
30 天内合并 PR
1

描述

Trying to build abseil on Linux/m68k fails with at least two of the assertions failing due to the native alignment on m68k being 16 bits:

```
[ 45%] Building CXX object absl/container/CMakeFiles/absl_layout_test.dir/internal/layout_test.cc.o
cd "/<>/shared/absl/container" && /usr/bin/c++ -I"/<>" -isystem /usr/src/googletest/googlemock/include -isystem /usr/src/googletest/googlemock -isystem /usr/src/googletest/googletest/include -isystem /usr/src/googletest/googletest -g -O2 -ffile-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wcast-qual -Wconversion-null -Wformat-security -Wmissing-declarations -Woverlength-strings -Wpointer-arith -Wundef -Wunused-local-typedefs -Wunused-result -Wvarargs -Wvla -Wwrite-strings -DNOMINMAX -Wno-conversion-null -Wno-deprecated-declarations -Wno-missing-declarations -Wno-sign-compare -Wno-unused-function -Wno-unused-parameter -Wno-unused-private-field -DGTEST_HAS_PTHREAD=1 -std=gnu++14 -MD -MT absl/container/CMakeFiles/absl_layout_test.dir/internal/layout_test.cc.o -MF CMakeFiles/absl_layout_test.dir/internal/layout_test.cc.o.d -o CMakeFiles/absl_layout_test.dir/internal/layout_test.cc.o -c "/<>/absl/container/internal/layout_test.cc"
/<>/absl/container/internal/layout_test.cc:77:32: error: static assertion failed
77 | static_assert(alignof(int32_t) == 4, "");
| ~~~~~~~~~~~~~~~~~^~~~
/<>/absl/container/internal/layout_test.cc: In member function ‘virtual void absl::debian2::container_internal::{anonymous}::Layout_Alignment_Test::TestBody()’:
/<>/absl/container/internal/layout_test.cc:1360:46: error: static assertion failed
1360 | static_assert(Layout::Alignment() == 4, "");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-unused-private-field’ may have been intended to silence earlier diagnostics
```

Full build log available in: https://buildd.debian.org/status/fetch.php?pkg=abseil&arch=m68k&ver=0%7E20210324.2-2&stamp=1644260483&raw=0

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。