Skip to content
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

Build Failure on 32-bit Ubuntu 15.10 #320

Open
ghost opened this issue Jan 25, 2016 · 0 comments
Open

Build Failure on 32-bit Ubuntu 15.10 #320

ghost opened this issue Jan 25, 2016 · 0 comments

Comments

@ghost
Copy link

ghost commented Jan 25, 2016

Building Io (current git version) fails due to its uses of SSE2 in UArray_math.c. The problem is that -msse2 needs to be specified in the compiler flags. This only applies to 32-bit builds because all 64-bit systems have this option defined implicitly. It seems to be related to the change from GCC 4 to 5, maybe earlier systems did not need this flag.

System info:

$ uname -a
Linux system 4.2.0-25-generic #30-Ubuntu SMP Mon Jan 18 12:32:18 UTC 2016 i686 i686 i686 GNU/Linux
$ gcc --version
gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010

Error message:

[ 10%] Building C object libs/basekit/CMakeFiles/basekit.dir/source/UArray_math.c.o
In file included from /home/peter/io/libs/basekit/source/simd_cph/include/simd_cp.h:129:0,
                 from /home/peter/io/libs/basekit/source/UArray_math.c:22:
/home/peter/io/libs/basekit/source/UArray_math.c: In function ‘vfloat32_add’:
/home/peter/io/libs/basekit/source/simd_cph/include/simd_cp_x86.h:172:39: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
    #define simd_4f_add(v1,v2,v0)  v0.v=_mm_add_ps(v1.v,v2.v)
                                       ^
/home/peter/io/libs/basekit/source/UArray_math.c:44:30: note: in expansion of macro ‘simd_4f_add’
  for(i = 0; i < max; i ++) { simd_4f_ ## VNAME (a[i], b[i], a[i]); }\
                              ^
/home/peter/io/libs/basekit/source/UArray_math.c:49:1: note: in expansion of macro ‘LLVEC_DUALARG_OP’
 LLVEC_DUALARG_OP(add,  +=, float32);
 ^
In file included from /home/peter/io/libs/basekit/source/simd_cph/include/simd_cp_x86.h:47:0,
                 from /home/peter/io/libs/basekit/source/simd_cph/include/simd_cp.h:129,
                 from /home/peter/io/libs/basekit/source/UArray_math.c:22:
/usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:181:1: error: inlining failed in call to always_inline ‘_mm_add_ps’: target specific option mismatch
 _mm_add_ps (__m128 __A, __m128 __B)
 ^
In file included from /home/peter/io/libs/basekit/source/simd_cph/include/simd_cp.h:129:0,
                 from /home/peter/io/libs/basekit/source/UArray_math.c:22:
/home/peter/io/libs/basekit/source/simd_cph/include/simd_cp_x86.h:172:40: error: called from here
    #define simd_4f_add(v1,v2,v0)  v0.v=_mm_add_ps(v1.v,v2.v)
                                        ^
/home/peter/io/libs/basekit/source/UArray_math.c:44:30: note: in expansion of macro ‘simd_4f_add’
  for(i = 0; i < max; i ++) { simd_4f_ ## VNAME (a[i], b[i], a[i]); }\
                              ^
/home/peter/io/libs/basekit/source/UArray_math.c:49:1: note: in expansion of macro ‘LLVEC_DUALARG_OP’
 LLVEC_DUALARG_OP(add,  +=, float32);
 ^
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

0 participants