mypaint / libmypaint

libmypaint, a.k.a. "brushlib", is a library for making brushstrokes which is used by MyPaint and other projects.
http://mypaint.org
Other
310 stars 86 forks source link

Building via MSYS2 on Windows is broken in v.1.5.1 #169

Open define-private-public opened 4 years ago

define-private-public commented 4 years ago

The culprit looks to me like it's those intrinsic calls in fastapprox (or maybe I'm wrong). I followed the guide on the wiki how to build with MSYS2, updated all of my packages. The GCC version is 9.3.0 Here is the build output:

C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\xmmintrin.h:124: syntax error, unexpected '{' in '  return __extension__ (__m128){ 0.0f, 0.0f, 0.0f, 0.0f };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\xmmintrin.h:891: syntax error, unexpected '{' in '  return __extension__ (__m128)(__v4sf){ __F, 0.0f, 0.0f, 0.0f };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\xmmintrin.h:898: syntax error, unexpected '{' in '  return __extension__ (__m128)(__v4sf){ __F, __F, __F, __F };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\xmmintrin.h:953: syntax error, unexpected '{' in '  return __extension__ (__m128)(__v4sf){ __W, __X, __Y, __Z };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\xmmintrin.h:960: syntax error, unexpected '{' in '  return __extension__ (__m128)(__v4sf){ __Z, __Y, __X, __W };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\xmmintrin.h:1020: syntax error, unexpected BASIC_TYPE, expecting '{' in '                                     (__attribute__((__vector_size__ (16))) int)' at 'int'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:68: syntax error, unexpected '{' in '  return __extension__ (__m128d){ __F, 0.0 };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:75: syntax error, unexpected '{' in '  return __extension__ (__m128d){ __F, __F };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:88: syntax error, unexpected '{' in '  return __extension__ (__m128d){ __X, __W };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:95: syntax error, unexpected '{' in '  return __extension__ (__m128d){ __W, __X };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:110: syntax error, unexpected '{' in '  return __extension__ (__m128d){ 0.0, 0.0 };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:117: syntax error, unexpected '{' in '  return __extension__ (__m128d) __builtin_shuffle ((__v2df)__A, (__v2df)__B, (__v2di){2, 1});' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:592: syntax error, unexpected '{' in '  return __extension__ (__m128i)(__v2di){ __q0, __q1 };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:604: syntax error, unexpected '{' in '  return __extension__ (__m128i)(__v4si){ __q0, __q1, __q2, __q3 };' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:611: syntax error, unexpected '{' in '  return __extension__ (__m128i)(__v8hi){' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:621: syntax error, unexpected '{' in '  return __extension__ (__m128i)(__v16qi){' at '{'
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\emmintrin.h:772: syntax error, unexpected '{' in '  return __extension__ (__m128i)(__v4si){ 0, 0, 0, 0 };' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:88: syntax error, unexpected '{' in '  v4sf ltzero = _mm_cmplt_ps (p, ((const v4sf) { (0.0f), (0.0f), (0.0f), (0.0f) }));' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:89: syntax error, unexpected '{' in '  v4sf offset = _mm_and_ps (ltzero, ((const v4sf) { (1.0f), (1.0f), (1.0f), (1.0f) }));' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:90: syntax error, unexpected '{' in '  v4sf lt126 = _mm_cmplt_ps (p, ((const v4sf) { (-126.0f), (-126.0f), (-126.0f), (-126.0f) }));' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:91: syntax error, unexpected '{' in '  v4sf clipp = _mm_or_ps (_mm_andnot_ps (lt126, p), _mm_and_ps (lt126, ((const v4sf) { (-126.0f), (-126.0f), (-126.0f), (-126.0f) })));' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:95: syntax error, unexpected '{' in '  const v4sf c_121_2740838 = ((const v4sf) { (121.2740575f), (121.2740575f), (121.2740575f), (121.2740575f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:96: syntax error, unexpected '{' in '  const v4sf c_27_7280233 = ((const v4sf) { (27.7280233f), (27.7280233f), (27.7280233f), (27.7280233f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:97: syntax error, unexpected '{' in '  const v4sf c_4_84252568 = ((const v4sf) { (4.84252568f), (4.84252568f), (4.84252568f), (4.84252568f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:98: syntax error, unexpected '{' in '  const v4sf c_1_49012907 = ((const v4sf) { (1.49012907f), (1.49012907f), (1.49012907f), (1.49012907f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:101: syntax error, unexpected '{' in '      ((const v4sf) { (1 << 23), (1 << 23), (1 << 23), (1 << 23) }) *' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:112: syntax error, unexpected '{' in '  const v4sf c_invlog_2 = ((const v4sf) { (1.442695040f), (1.442695040f), (1.442695040f), (1.442695040f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:120: syntax error, unexpected '{' in '  const v4sf c_126_94269504 = ((const v4sf) { (126.94269504f), (126.94269504f), (126.94269504f), (126.94269504f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:121: syntax error, unexpected '{' in '  v4sf lt126 = _mm_cmplt_ps (p, ((const v4sf) { (-126.0f), (-126.0f), (-126.0f), (-126.0f) }));' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:122: syntax error, unexpected '{' in '  v4sf clipp = _mm_or_ps (_mm_andnot_ps (lt126, p), _mm_and_ps (lt126, ((const v4sf) { (-126.0f), (-126.0f), (-126.0f), (-126.0f) })));' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:123: syntax error, unexpected '{' in '  union { v4si i; v4sf f; } v = { _mm_cvttps_epi32 (((const v4sf) { (1 << 23), (1 << 23), (1 << 23), (1 << 23) }) * (clipp + c_126_94269504)) };' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastexp.h:130: syntax error, unexpected '{' in '  const v4sf c_invlog_2 = ((const v4sf) { (1.442695040f), (1.442695040f), (1.442695040f), (1.442695040f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:92: syntax error, unexpected '{' in '  union { v4si i; v4sf f; } mx; mx.i = (vx.i & ((const v4si) { ((((long long) (0x007FFFFF)) << 32) | (long long) (0x007FFFFF)), ((((long long) (0x007FFFFF)) << 32) | (long long) (0x007FFFFF)) })) | ((const v4si) { ((((long long) (0x3f000000)) << 32) | (long long) (0x3f000000)), ((((long long) (0x3f000000)) << 32) | (long long) (0x3f000000)) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:94: syntax error, unexpected identifier in '  y *= ((const v4sf) { (1.1920928955078125e-7f), (1.1920928955078125e-7f), (1.1920928955078125e-7f), (1.1920928955078125e-7f) });' at 'y'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:96: syntax error, unexpected '{' in '  const v4sf c_124_22551499 = ((const v4sf) { (124.22551499f), (124.22551499f), (124.22551499f), (124.22551499f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:97: syntax error, unexpected '{' in '  const v4sf c_1_498030302 = ((const v4sf) { (1.498030302f), (1.498030302f), (1.498030302f), (1.498030302f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:98: syntax error, unexpected '{' in '  const v4sf c_1_725877999 = ((const v4sf) { (1.72587999f), (1.72587999f), (1.72587999f), (1.72587999f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:99: syntax error, unexpected '{' in '  const v4sf c_0_3520087068 = ((const v4sf) { (0.3520887068f), (0.3520887068f), (0.3520887068f), (0.3520887068f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:109: syntax error, unexpected '{' in '  const v4sf c_0_69314718 = ((const v4sf) { (0.69314718f), (0.69314718f), (0.69314718f), (0.69314718f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:119: syntax error, unexpected '{' in '  y *= ((const v4sf) { (1.1920928955078125e-7f), (1.1920928955078125e-7f), (1.1920928955078125e-7f), (1.1920928955078125e-7f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:121: syntax error, unexpected '{' in '  const v4sf c_126_94269504 = ((const v4sf) { (126.94269504f), (126.94269504f), (126.94269504f), (126.94269504f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:135: syntax error, unexpected '{' in '  y *= ((const v4sf) { (8.2629582881927490e-8f), (8.2629582881927490e-8f), (8.2629582881927490e-8f), (8.2629582881927490e-8f) });' at '{'
C:\msys64\home\Benjamin\libmypaint\fastapprox\fastlog.h:137: syntax error, unexpected '{' in '  const v4sf c_87_989971088 = ((const v4sf) { (87.989971088f), (87.989971088f), (87.989971088f), (87.989971088f) });' at '{'
C:\msys64\mingw64\include\glib-2.0\glib\gtypes.h:103: syntax error, unexpected typedef-name, expecting identifier or '(' in 'typedef void* gpointer;' at 'gpointer'
fastapprox/sse.h:52: Warning: MyPaint: symbol='v4sf': Unknown namespace for identifier 'v4sf'
fastapprox/sse.h:53: Warning: MyPaint: symbol='v4si': Unknown namespace for identifier 'v4si'
fastapprox/sse.h:102: Warning: MyPaint: symbol='v4sfindexer': Unknown namespace for identifier 'v4sfindexer'
fastapprox/sse.h:108: Warning: MyPaint: symbol='v4siindexer': Unknown namespace for identifier 'v4siindexer'
fastapprox/sse.h:115: Warning: MyPaint: symbol='v4sfv4sipun': Unknown namespace for identifier 'v4sfv4sipun'
fastapprox/sse.h:62: Warning: MyPaint: symbol='AS_4CHARS': Unknown namespace for symbol 'AS_4CHARS'
fastapprox/sse.h:69: Warning: MyPaint: symbol='v4sfl': Unknown namespace for symbol 'v4sfl'
fastapprox/sse.h:70: Warning: MyPaint: symbol='v4sil': Unknown namespace for symbol 'v4sil'
fastapprox/sse.h:97: Warning: MyPaint: symbol='v4sfl': Unknown namespace for symbol 'v4sfl'
fastapprox/sse.h:98: Warning: MyPaint: symbol='v2dil': Unknown namespace for symbol 'v2dil'
fastapprox/sse.h:99: Warning: MyPaint: symbol='v4sil': Unknown namespace for symbol 'v4sil'
fastapprox/sse.h:103: Warning: MyPaint: symbol='v4sf_index': Unknown namespace for symbol 'v4sf_index'
fastapprox/sse.h:109: Warning: MyPaint: symbol='v4si_index': Unknown namespace for symbol 'v4si_index'
fastapprox/sse.h:117: Warning: MyPaint: symbol='v4sf_fabs': Unknown namespace for symbol 'v4sf_fabs'
fastapprox/sse.h:119: Warning: MyPaint: symbol='v4sf_fabs': Unknown namespace for symbol 'v4sf_fabs'
jplloyd commented 4 years ago

Haven't looked into the actual cause of those "errors", but they don't actually prevent you from building libmypaint.


Log for the successful build of 1.5.1 on MSYS2 yesterday: https://ci.appveyor.com/project/jonnor/libmypaint/builds/30996672/job/b7axhjk6eah9fw6a

As you may note, the lines you pasted are present in that log as well, but are actually of no consequence for the output.

hosiet commented 4 years ago

It's actually not a msys2-specific problem. Also happen in Debian too: https://buildd.debian.org/status/fetch.php?pkg=libmypaint&arch=amd64&ver=1.5.1-1~exp1&stamp=1582496604&raw=0

define-private-public commented 4 years ago

Debian? I run Ubuntu normally (which IIRC is Debian based). I've been able to build it just fine here. I've also got an OS X machine handy. Would you like me to do a build there too?