diff options
author | Georgy Yakovlev <[email protected]> | 2020-08-27 15:50:13 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2020-08-27 15:50:13 -0700 |
commit | 735ba76104fb5d701641f1785f75b4c74809155c (patch) | |
tree | eb574373de4626235e12e24119894e99a43d83e1 /module/zstd | |
parent | 770269ef3acb3a5e3fe49213840f00776477d678 (diff) |
module/zstd: pass -U__BMI__
If kernel is compiled with -march=znver1 or -march=znver2 zstd module
compilation will fail due to SSE register return with SSE disabled.
What's interesting, is that -march=skylake also implies -mbmi which
defines __BMI__ but compilation succeeds. It is probably due to
different BMI implementations on AMD and INTEL processors and the
way compiler uses instructions.
Reviewed-by: Ryan Moeller <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Georgy Yakovlev <[email protected]>
Closes #10758
Closes #10829
Diffstat (limited to 'module/zstd')
-rw-r--r-- | module/zstd/Makefile.in | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/module/zstd/Makefile.in b/module/zstd/Makefile.in index eea749ea8..f67db710f 100644 --- a/module/zstd/Makefile.in +++ b/module/zstd/Makefile.in @@ -20,6 +20,9 @@ ccflags-y += -O3 # Set it for other compilers, too. $(obj)/lib/zstd.o: c_flags += -fno-tree-vectorize +# SSE register return with SSE disabled if -march=znverX is passed +$(obj)/lib/zstd.o: c_flags += -U__BMI__ + # Quiet warnings about frame size due to unused code in unmodified zstd lib $(obj)/lib/zstd.o: c_flags += -Wframe-larger-than=20480 |