abseil / abseil/abseil-cpp

Abseil CMake build fails on Apple M1 (ARM64)

Ouverte
#955 5 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
bug
Langage dominant
C++
Étoiles
18.1k
Forks
3.2k
Merge moyen
20 h 36 min
PR mergées (30 j)
1

Description

**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

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.