Skip to content
This repository has been archived by the owner on Jan 13, 2022. It is now read-only.

cannot install scrappie python binding on macOS #27

Closed
alexomics opened this issue Jan 21, 2019 · 2 comments
Closed

cannot install scrappie python binding on macOS #27

alexomics opened this issue Jan 21, 2019 · 2 comments

Comments

@alexomics
Copy link

I am able to build scrappie from source, but unable to build when using pip install scrappie or python3.6 setup.py install; both return error:

/Library/Developer/CommandLineTools/usr/lib/clang/10.0.0/include/smmintrin.h:561:1: note: previous definition is here
_mm_mullo_epi32 (__m128i __V1, __m128i __V2)
^
src/decode.c:25:74: error: redefinition of '_mm_mullo_epi32'
static inline __m128i __attribute__((__gnu_inline__, __always_inline__)) _mm_mullo_epi32(const __m128i x, const __m128i y) {
                                                                         ^

I have checked that I am up-to-date with the packages suggested in #13 but this does not fix the error.

@alexomics
Copy link
Author

alexomics commented Jan 21, 2019

Changing -msse3 to -msse4.1 in build.py allowed installation with lots of warnings. See here: https://stackoverflow.com/questions/43128698/inlining-failed-in-call-to-always-inline-mm-mullo-epi32-target-specific-opti

@tmassingham-ont
Copy link
Contributor

Thanks. The _mm_mullo_epi32 function (wrapping the PMULLD instruction on the processor) was introduced in SSE4.1 and Scrappie has a fall-back for older processors. For some reason clang is pulling in the function from the smmintrin.h but not respecting the guard around my fall-back function. Your explicit setting of -msse4.1 is triggering the guard, skipping the fall-back. I shall if the test can be tightened up so this doesn't happen.

alexomics added a commit to alexomics/scrappie that referenced this issue Apr 8, 2019
Change `-msse3` to `-msse4.1`. See: nanoporetech#27
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants