Control: reassign -1 src:rocksdb Control: retitle -1 rocksdb wrongly optimized for P9 causes SIGILL in binaries using it
Here is a debdiff introducing a quilt patch and explaining what the issue is. I'm not sure if should be forwarded/fixed upstream... it depends what they want to achieve. It was originally a commit called "Add ppc64le builds to Travis" : https://github.com/facebook/rocksdb/pull/6144/files#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20a I guess for Debian/Ubuntu, the default gcc profile (P8 compatible on Debian/P9 compatible on Ubuntu since 22.04), should be used and CPU related features not forced. F.
diff -Nru
rocksdb-7.2.2/debian/patches/rely-on-default-for-optimization-on-Power.patch
rocksdb-7.2.2/debian/patches/rely-on-default-for-optimization-on-Power.patch
---
rocksdb-7.2.2/debian/patches/rely-on-default-for-optimization-on-Power.patch
1970-01-01 01:00:00.000000000 +0100
+++
rocksdb-7.2.2/debian/patches/rely-on-default-for-optimization-on-Power.patch
2022-06-06 20:22:35.000000000 +0200
@@ -0,0 +1,46 @@
+Description: Don't optimize without knowing the target system on Power
+ Upstream's CMake configuration assumes having gcc P9 optimizations flags means
+ we are compiling for P9.
+ On ppc64*, gcc can produce binaries optimized for P8, P9 or P10 atm.
+ But on Debian we want to be compatible with all and default to P8.
+ ---
+ $ gcc -Q --help=target|grep -i power
+ -mpower10 [disabled]
+ -mpower10-fusion [disabled]
+ -mpower8-fusion [enabled]
+ -mpower8-fusion-sign [disabled]
+ -mpower8-vector [enabled]
+ -mpower9-minmax [disabled]
+ -mpower9-misc [disabled]
+ -mpower9-vector [disabled]
+ -mpowerpc [ignored]
+ -mpowerpc-gfxopt [enabled]
+ -mpowerpc-gpopt [enabled]
+ -mpowerpc64 [enabled]
+ ---
+ Altivec is a different story, as it is enabled by default on ppc64el but not
+ on ppc64. So leaving it for now.
+Author: Frédéric Bonnard <[email protected]>
+Forwarded: no
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -203,17 +203,6 @@
+
+ include(CheckCCompilerFlag)
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
+- CHECK_C_COMPILER_FLAG("-mcpu=power9" HAS_POWER9)
+- if(HAS_POWER9)
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=power9 -mtune=power9")
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=power9 -mtune=power9")
+- else()
+- CHECK_C_COMPILER_FLAG("-mcpu=power8" HAS_POWER8)
+- if(HAS_POWER8)
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=power8 -mtune=power8")
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=power8 -mtune=power8")
+- endif(HAS_POWER8)
+- endif(HAS_POWER9)
+ CHECK_C_COMPILER_FLAG("-maltivec" HAS_ALTIVEC)
+ if(HAS_ALTIVEC)
+ message(STATUS " HAS_ALTIVEC yes")
diff -Nru rocksdb-7.2.2/debian/patches/series
rocksdb-7.2.2/debian/patches/series
--- rocksdb-7.2.2/debian/patches/series 2022-05-21 19:47:37.000000000 +0200
+++ rocksdb-7.2.2/debian/patches/series 2022-06-06 20:22:35.000000000 +0200
@@ -8,3 +8,4 @@
arm.patch
armv7_support.patch
0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch
+rely-on-default-for-optimization-on-Power.patch
signature.asc
Description: PGP signature

