google / google/snappy

Unable to create universal binaries

Open
#223 1 comment 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

I am trying to build Snappy on Mac OS (Sequoia, version 15.7.3) as a universal binary, but it fails to build. I am using this CMake command line:

```
% cmake -S . -B build-cmake -DCMAKE_INSTALL_PREFIX=/opt/snappy-1.2.2 -DBUILD_SHARED_LIBS=ON -DSNAPPY_BUILD_BENCHMARKS=OFF -DSNAPPY_BUILD_TESTS=OFF -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
```

This completes successfully, but when I invoke make in the build-cmake directory, I get this error output from the compiler (showing only the first error):

```
% cd build-cmake ; make
~/dev/RocksDB/snappy-1.2.2/build-cmake ~/dev/RocksDB/snappy-1.2.2
[ 20%] Building CXX object CMakeFiles/snappy.dir/snappy-c.cc.o
[ 40%] Building CXX object CMakeFiles/snappy.dir/snappy-sinksource.cc.o
[ 60%] Building CXX object CMakeFiles/snappy.dir/snappy-stubs-internal.cc.o
[ 80%] Building CXX object CMakeFiles/snappy.dir/snappy.cc.o
In file included from /Users/iemmons/dev/RocksDB/snappy-1.2.2/snappy.cc:29:
In file included from /Users/iemmons/dev/RocksDB/snappy-1.2.2/snappy-internal.h:46:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/17/include/arm_neon.h:28:2: error: "NEON intrinsics not available with the soft-float ABI. Please use -mfloat-abi=softfp or -mfloat-abi=hard"
28 | #error "NEON intrinsics not available with the soft-float ABI. Please use -mfloat-abi=softfp or -mfloat-abi=hard"
| ^
```

Poking into the source code, the problem seems to be that `SNAPPY_HAVE_NEON` is defined even during the compiler pass for the x86_64 architecture.

Any hints how I can create universal binaries for Snappy?

I am using this version of Apple clang:

```
% clang --version
Apple clang version 17.0.0 (clang-1700.6.3.2)
Target: arm64-apple-darwin24.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
```

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.