abseil / abseil/abseil-cpp

Abseil CMake build fails on Apple M1 (ARM64)

Đang mở
#955 5 bình luận 1 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
C++
Star
18.1k
Fork
3.2k
Merge trung bình
20 giờ 36 phút
Pull request đã merge (30 ngày)
1

Mô tả

**Describe the bug**

A CMake build of Abseil on my Mac mini M1 fails

```
$ cmake -S . -B cmake-out

$ cmake --build cmake-out -- VERBOSE=1
...
[ 0%] Building CXX object absl/base/CMakeFiles/strerror.dir/internal/strerror.cc.o
cd /Users/jgm/github/devjgm/abseil-cpp/cmake-out/absl/base && /Library/Developer/CommandLineTools/usr/bin/c++ -I/Users/jgm/github/devjgm/abseil-cpp -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk -Wall -Wextra -Wcast-qual -Wconversion -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wfor-loop-analysis -Wformat-security -Wgnu-redeclared-enum -Winfinite-recursion -Winvalid-constexpr -Wliteral-conversion -Wmissing-declarations -Woverlength-strings -Wpointer-arith -Wself-assign -Wshadow -Wstring-conversion -Wtautological-overlap-compare -Wundef -Wuninitialized -Wunreachable-code -Wunused-comparison -Wunused-local-typedefs -Wunused-result -Wvla -Wwrite-strings -Wno-float-conversion -Wno-implicit-float-conversion -Wno-implicit-int-float-conversion -Wno-implicit-int-conversion -Wno-shorten-64-to-32 -Wno-sign-conversion -DNOMINMAX -MD -MT absl/base/CMakeFiles/strerror.dir/internal/strerror.cc.o -MF CMakeFiles/strerror.dir/internal/strerror.cc.o.d -o CMakeFiles/strerror.dir/internal/strerror.cc.o -c /Users/jgm/github/devjgm/abseil-cpp/absl/base/internal/strerror.cc
In file included from /Users/jgm/github/devjgm/abseil-cpp/absl/base/internal/strerror.cc:15:
In file included from /Users/jgm/github/devjgm/abseil-cpp/absl/base/internal/strerror.h:20:
In file included from /Users/jgm/github/devjgm/abseil-cpp/absl/base/config.h:67:
/Users/jgm/github/devjgm/abseil-cpp/absl/base/policy_checks.h:77:2: error: "C++ versions less than C++11 are not supported."
#error "C++ versions less than C++11 are not supported."
^
/Users/jgm/github/devjgm/abseil-cpp/absl/base/internal/strerror.cc:41:3: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
auto ret = strerror_r(errnum, buf, buflen);
^
/Users/jgm/github/devjgm/abseil-cpp/absl/base/internal/strerror.cc:65:1: error: unknown type name 'constexpr'
constexpr int kSysNerr = 135;
^
/Users/jgm/github/devjgm/abseil-cpp/absl/base/internal/strerror.cc:68:3: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
auto* table = new std::array;
^
/Users/jgm/github/devjgm/abseil-cpp/absl/base/internal/strerror.cc:79:16: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
static const auto* table = NewStrErrorTable();
^
3 warnings and 2 errors generated.
make[2]: *** [absl/base/CMakeFiles/strerror.dir/internal/strerror.cc.o] Error 1
make[1]: *** [absl/base/CMakeFiles/strerror.dir/all] Error 2
make: *** [all] Error 2
```

**Steps to reproduce the bug**

**IMPORTANT** On an Apple M1 machine

1. Checkout the Abseil code. I'm using HEAD=a9831f1cbf93fb18dd951453635f488037454ce9
2. `cmake -S . - B cmake-out`
3. `cmake --build cmake-out` (add `-- VERBOSE=1` to see the build command)

**What version of Abseil are you using?**

HEAD=a9831f1cbf93fb18dd951453635f488037454ce9

**What operating system and version are you using**

```
ProductName: macOS
ProductVersion: 11.3
BuildVersion: 20E232
```
**What compiler and version are you using?**

```
$ c++ --version
Apple clang version 12.0.5 (clang-1205.0.22.9)
Target: arm64-apple-darwin20.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
```

**What build system are you using?**
```
cmake version 3.20.2
```

**Additional context**

This is on a Mac mini M1

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.