google / google/snappy

Cannot build on macOS if adding -mavx / -mavx2 to global build flags

Open
#194 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
6.6k
Forks
1.1k
Avg merge
3d 5h
Merged PRs (30d)
4

Description

Repro:

```
$ clang++ -DHAVE_CONFIG_H -I/Users/jcelerier/build-score-qt_rhi-Debug/3rdparty/snappy -I/Users/jcelerier/score/3rdparty/snappy -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -c /Users/jcelerier/score/3rdparty/snappy/snappy.cc -mssse3 -mavx2 -std=c++20

/Users/jcelerier/score/3rdparty/snappy/snappy.cc:1242:3: error: unknown type name '__m256i'
__m256i data = _mm256_lddqu_si256(static_cast(src));
^
/Users/jcelerier/score/3rdparty/snappy/snappy.cc:1242:55: error: unknown type name '__m256i'
__m256i data = _mm256_lddqu_si256(static_cast(src));
^
/Users/jcelerier/score/3rdparty/snappy/snappy.cc:1242:18: error: use of undeclared identifier '_mm256_lddqu_si256'; did you mean '_mm_lddqu_si128'?
__m256i data = _mm256_lddqu_si256(static_cast(src));
^~~~~~~~~~~~~~~~~~
_mm_lddqu_si128
```

It works if I add

#include

at the top of snappy-internal.h:

```c++
#if SNAPPY_HAVE_SSSE3
// Please do not replace with or with headers that assume more
// advanced SSE versions without checking with all the OWNERS.
#include
#include
#include
#endif
```

Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: x86_64-apple-darwin24.0.0

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.