Open absolute8511 opened 6 years ago
@ajkr do you mind taking a look?
@absolute8511 Can you check if the -std=c++11 option is set in make_config.mk? I believe we do enable that option. If that's not working, maybe upgrade to gcc 5.x.
@anand1976 I noticed the content of make_config.mk
is empty while using USE_SSE=1
Oh, that's not good. It works fine for me locally. The makefile uses build_tools/build_detect_platform to generate the make_config.mk. You can instrument Makefile to catch any errors and log it to see what's going wrong.
I run the tool and got warning:
$ USE_SSE=1 build_tools/build_detect_platform ./make_config.mk
warning: USE_SSE specified but compiler could not use PCLMUL intrinsics, disabling
Oh, we repurposed that flag to also cover -mpclmul under the (apparently wrong) assumption that our fast crc32c users' platforms would support it. We should do two followups:
By the way, in the meantime you don't actually need to set USE_SSE=1 if your machine supports it -- we already auto-detect SSE4.2 support, and that flag just causes compilation to fail if SSE4.2 is unsupported (well, it also causes compile failure when pclmul is unsupported, regrettably). You can look for "Fast CRC32 supported: " in the logs to verify we're using an SSE4.2-based algorithm even when you don't provide USE_SSE=1.
Yeah, I noticed the fast crc32 is already supported. I think introduce USE_PCLMUL flag is good to solve this.
after the commit
76698fe15e9cae718a3bc090f430a98e812ff758
, it will failed to compile withUSE_SSE=1 make static_lib
. Althoughmake static_lib
will be OK. Is it expected?gcc, g++ version
on Linux
error message: