-
assigned issue to
#include <emmintrin.h> //SSE2 breaks PyECLib for other platforms in OpenStack
This is breaking non-intel platforms on OpenStack that uses PyECLib > 1.0.3. This SSE include is intel specific. Without this PyECLib builds liberasurecode-1.0.5 successfully.
2015-03-17 12:50:03.504 | make[1]: Entering directory '/tmp/pip-build-U6vKop/PyECLib/src/c/liberasurecode-1.0.5/src' 2015-03-17 12:50:03.504 | Making all in builtin/xor_codes 2015-03-17 12:50:03.504 | make[2]: Entering directory '/tmp/pip-build-U6vKop/PyECLib/src/c/liberasurecode-1.0.5/src/builtin/xor_codes' 2015-03-17 12:50:03.505 | CC libXorcode_la-xor_code.lo 2015-03-17 12:50:03.505 | xor_code.c:25:31: fatal error: emmintrin.h: No such file or directory 2015-03-17 12:50:03.505 | #include <emmintrin.h> //SSE2 2015-03-17 12:50:03.505 | ^ 2015-03-17 12:50:03.505 | compilation terminated. 2015-03-17 12:50:03.506 | Makefile:361: recipe for target 'libXorcode_la-xor_code.lo' failed 2015-03-17 12:50:03.506 | make[2]: [libXorcode_la-xor_code.lo] Error 1 2015-03-17 12:50:03.506 | make[2]: Leaving directory '/tmp/pip-build-U6vKop/PyECLib/src/c/liberasurecode-1.0.5/src/builtin/xor_codes' 2015-03-17 12:50:03.506 | Makefile:654: recipe for target 'all-recursive' failed 2015-03-17 12:50:03.506 | make[1]: [all-recursive] Error 1 2015-03-17 12:50:03.507 | make[1]: Leaving directory '/tmp/pip-build-U6vKop/PyECLib/src/c/liberasurecode-1.0.5/src' 2015-03-17 12:50:03.507 | Makefile:403: recipe for target 'all-recursive' failed 2015-03-17 12:50:03.507 | make: [all-recursive] Error 1 2015-03-17 12:50:03.507 | CFLAGS=" -I/tmp/pip-build-U6vKop/PyECLib/src/c/liberasurecode-1.0.5/include -I/tmp/pip-build-U6vKop/PyECLib/src/c/liberasurecode-1.0.5/include -I/tmp/pip-build-U6vKop/PyECLib/src/c/liberasurecode-1.0.5/include/xor_codes -I/tmp/pip-build-U6vKop/PyECLib/src/c/liberasurecode-1.0.5/include/erasurecode" LDFLAGS=" -L/tmp/pip-build-U6vKop/PyECLib/src/c/liberasurecode-1.0.5/.libs -L/tmp/pip-build-U6vKop/PyECLib/src/c/liberasurecode-1.0.5/src/.libs " ./configure --prefix=//usr/local 2015-03-17 12:50:03.508 | ******** 2015-03-17 12:50:03.508 | Error: liberasurecode-1.0.5 install failed! 2015-03-17 12:50:03.508 | Please install liberasurecode-1.0.5 manually and retry 2015-03-17 12:50:03.508 | https://bitbucket.org/tsg-/liberasurecode.git 2015-03-17 12:50:03.508 | ********
Comments (11)
-
-
@rafaelfolco Try with top-of-master.
-
@kmgreen2 I can confirm that the a2f17bc fixes the compilation error for non-intel platform. Tested on ppc. Thank you for the fast response!
-
reporter Thanks @mmedvede. Any chances to backport to 1.0.5 ?
-
@tsg- How do you feel about backporting to 1.0.5? I am fine with it, but think we should both agree...
-
repo owner @kmgreen2 @rafaelfolco thanks for the report and the quick fix .. we can get this backported to 1.0.5, on a 1.0.5 branch perhaps?
@rafaelfolco are you looking for a Debian update in particular?
-
reporter No, PyECLib builds it with "setup.py install". It builds with liberasurecode-1.0.5. I assume they won't use top-of-master branch. Not sure how PyECLib consumes 1.0.5 though. But its easier to re-bundle 1.0.5 inside PyECLib if the backport is possible. http://logs.openstack.org/52/164252/3/check/check-tempest-dsvm-postgres-full/ba18a6b/logs/devstacklog.txt.gz Just for the record, the workaround is to create an empty header file: sudo touch /usr/lib/gcc/ppc64-redhat-linux/*/include/emmintrin.h
Thanks for quick responses ! Very agile tool to report issues, liked it.
-
We'll actually want to do both. The current PyECLib packaging is temporary to unblock progress for Kilo. It turned out that we did not have the correct versions up on Debian and RH repos, so we decided to temporarily package the dependencies with PyECLib until Debian and RH were updated.
-
repo owner @rafaelfolco, @kmgreen2 is correct. The PyECLib packaged version of liberasurecode is only a temporary solution to make Jenkins happy. If you already have latest liberasurecode (master) installed, "setup.py install" will skip liberasurecode install step.
If this is to get PyECLib building on PPC for Jenkins, we'll get a new update for PyECLib uploaded shortly. Thanks.
-
reporter Yes, was referring to devstack-gate. Will keep the workaround until PyECLib does not include the fix.
-
- changed status to resolved
The fix for this is on master and we have decided to not backport to 1.0.5
- Log in to comment
Looking... FWIW, liberasurecode has pretty much only been tested on Intel gear, so I am not shocked that this happened. We had to deal with this for the NEON integration in gf-complete, so I'll just do something similar.