Summary: | dev-libs/libsodium-1.0.16-r2 fails to build on i686 that has no cpu sse2 flag. | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ted Marston <ted> |
Component: | Current packages | Assignee: | No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it <maintainer-needed> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | ted |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
/proc/cpuinfo
Build log emerge --info =dev-libs/libsodium-1.0.16-r2 |
Created attachment 549490 [details]
Build log
Created attachment 549492 [details]
emerge --info =dev-libs/libsodium-1.0.16-r2
I set the CFLAGS in my /etc/portage/make.conf to detail the missing flags a while ago to get around a similar problem building some qt software, but this time the compile line for the offending file in libsodium-1.0.16-r2 are ... -msse2 -march=i686 -mno-sse2 ... so I guess -msse2 takes priority. I have now successfully built libsodium-1.0.16-r2 after restoring the CFLAGS in /etc/portage/make.conf to CFLAGS="-march=native -O2 -pipe". However the configure script still claims that the processor accepts -msse2 , together with a load of other cpu-flags that the processor does not support. How can I test whether this library will function correctly now? You are passing -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-avx in CFLAGS. There's no need for that since -march=i686 doesn't enable any of those instruction sets. It will only cause problems like this. libsodium isn't my package so I won't make the call, but I have resolved bugs like this as INVALID in the past. Oh, I didn't realize this package has no maintainer. In that case, yeah, just remove those CFLAGS and don't shoot yourself in the foot. |
Created attachment 549488 [details] /proc/cpuinfo dev-libs/libsodium-1.0.16-r2 fails to build on i686 with no sse2 cpu-flag. The configure script claims to test for this flag but fails to notice that the cpu does not offer an sse2 instruction set.