-
Notifications
You must be signed in to change notification settings - Fork 443
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
1.21 error on compilation: simd.c:140:30: error: incompatible types when initializing type ‘__m128i’ using type ‘int’ #2112 #1838
Comments
That's interesting. We don't have a Red Hat box to test on. We did test it on Centos but there were no problems there. |
Also, that is an old version of GCC. I think the oldest we normally run is 7.5. |
@lindenb ah ! I'm now running with |
It is to be sure an ancient compiler. It is also probably the CentOS 7 system compiler (@lindenb please confirm) — if so, it would behoove htslib to disable this code during configure. |
We don't do the tests on Centos 7 any more. I know we like supporting everything, everywhere, all the time (and yes, when I find my first gen Raspberry Pi I will try samtools on that too) but how old a compiler do we want to handle? |
Out of curiosity, I dug out an old CentOS 7 iso I had around and spun up a VM. End of life for CentOS 7 was the 30th June 2024. The old repositories are now offline and my quick attempts to try to look for RPMs in the CentOS vault failed. I'll see what the general consensus is before I put any more time into this. |
@whitwham please don't, On my side I know we're still using this old server and we should move to a newer machine in the comings weeks... months... |
@lindenb I know how it goes. |
There are other C features we want to use which would break this compiler too, such as:
However even gcc 4.8 works for this if you define CC= It would be interesting to test whether this also adds the SIMD support. If not I think maybe it should be in autoconf so we omit it for old compilers, perhaps with a warning, The INSTALL file ideally needs to be explicit on the minimum compiler too (or configure). |
Centos 7 is no longer supported, but it appears to limp on in the form of Oracle Linux 7. RedHat Enterprise Linux 7 is now in extended life cycle support, so it's possible some instances could still be in use. Anyway, |
GCC 4.8.5 and earlier accept SSSE3 intrinsics with -mssse3; these compiler versions also accept __attribute__((target("ssse3"))) but the attribute fails to enable compilation of the intrinsics. Refactor the check to HAVE_ATTRIBUTE_TARGET_SSSE3, and check both the attribute and that the SSSE3 intrinsics used (in simd.c) are in fact compilable in a function with the attribute. Fixes samtools#1838.
FYI a recent pysam release updated to HTSlib et al 1.21 — and this was immediately reported again, as a bug against pysam. 😬 This motivated me to make PR #1886 which adds some SSSE3 intrinsics to the relevant configure test as suggested by @daviesrob above. (Sadly defining |
Please specify the steps taken to generate the issue, the command you are running and the relevant output.
Hi all, I'm trying to compile 1.21 , I get the following error:
Please describe your environment.
x86_64 x86_64 x86_64 GNU/Linux
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
I first tried without .configure. When I run now with .configure:
The text was updated successfully, but these errors were encountered: