Re: [Mingw-w64-public] _mm_set1_epi64 and friends not declared in this scope for dvec.h
Hi, On Wed, Feb 19, 2014, Jacek Caban wrote: Hi Adrien, On 02/17/14 21:18, Adrien Nader wrote: On Wed, Feb 12, 2014, Kai Tietz wrote: 2014-02-12 10:58 GMT+01:00 Jacek Caban ja...@codeweavers.com: On 02/12/14 08:57, Adrien Nader wrote: Hi, I recently stumbled on an issue where dvec.h gets included from intrin.h and triggers around 140 different not declared in this scope errors. Basically, there is an #include dvec.h (which is a C++-only header) near the top of intrin.h and the function declarations for non-SSE2 bulds come later on (I guess that if SSE2 is used, the compiler already has declarations for them?). Since dvec.h uses functions which are declared later on, compilation errors out. Jacek told me over IRC that dvec/fvec/ivec .h probably shouldn't be included from intrin.h. I've tried remove them and my build issues went away. Should that change be commited? Should it also be backported to the stable branch? IMO we should remove them in trunk, but not stable branch (at least not without a delay). We won't know if we're breaking real world code until we do that. Jacek For trunk this change seems to be right. For branches I agree to Jacek that we shouldn't do the change. Kai Back from my short vacations, patch would be: diff --git a/trunk/mingw-w64-headers/crt/intrin.h b/trunk/mingw-w64-headers/crt/intrin.h index 6287610..2348e09 100644 --- a/trunk/mingw-w64-headers/crt/intrin.h +++ b/trunk/mingw-w64-headers/crt/intrin.h @@ -147,11 +147,6 @@ extern C { } #endif -#if defined(__cplusplus) -#include dvec.h -#include fvec.h -#include ivec.h -#endif #endif #define __MACHINEX64 __MACHINE I have no idea what the commit message would be however. :P Also, I agree that this should only go to trunk, not stable branches since it changes behaviour. It is however something I will integrate in win-builds.org. Thanks for the patch. I believe we may consider it as approved. Do you need me to commit the patch? Sorry for the delay, I've commited this as rev 6501 intrinsics: don't include {d,f,i}vec.h from inside intrin.h.. -- Adrien Nader -- Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071iu=/4140/ostg.clktrk ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] _mm_set1_epi64 and friends not declared in this scope for dvec.h
Hi Adrien, On 02/17/14 21:18, Adrien Nader wrote: On Wed, Feb 12, 2014, Kai Tietz wrote: 2014-02-12 10:58 GMT+01:00 Jacek Caban ja...@codeweavers.com: On 02/12/14 08:57, Adrien Nader wrote: Hi, I recently stumbled on an issue where dvec.h gets included from intrin.h and triggers around 140 different not declared in this scope errors. Basically, there is an #include dvec.h (which is a C++-only header) near the top of intrin.h and the function declarations for non-SSE2 bulds come later on (I guess that if SSE2 is used, the compiler already has declarations for them?). Since dvec.h uses functions which are declared later on, compilation errors out. Jacek told me over IRC that dvec/fvec/ivec .h probably shouldn't be included from intrin.h. I've tried remove them and my build issues went away. Should that change be commited? Should it also be backported to the stable branch? IMO we should remove them in trunk, but not stable branch (at least not without a delay). We won't know if we're breaking real world code until we do that. Jacek For trunk this change seems to be right. For branches I agree to Jacek that we shouldn't do the change. Kai Back from my short vacations, patch would be: diff --git a/trunk/mingw-w64-headers/crt/intrin.h b/trunk/mingw-w64-headers/crt/intrin.h index 6287610..2348e09 100644 --- a/trunk/mingw-w64-headers/crt/intrin.h +++ b/trunk/mingw-w64-headers/crt/intrin.h @@ -147,11 +147,6 @@ extern C { } #endif -#if defined(__cplusplus) -#include dvec.h -#include fvec.h -#include ivec.h -#endif #endif #define __MACHINEX64 __MACHINE I have no idea what the commit message would be however. :P Also, I agree that this should only go to trunk, not stable branches since it changes behaviour. It is however something I will integrate in win-builds.org. Thanks for the patch. I believe we may consider it as approved. Do you need me to commit the patch? Thanks, Jacek -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] _mm_set1_epi64 and friends not declared in this scope for dvec.h
On Wed, Feb 12, 2014, Kai Tietz wrote: 2014-02-12 10:58 GMT+01:00 Jacek Caban ja...@codeweavers.com: On 02/12/14 08:57, Adrien Nader wrote: Hi, I recently stumbled on an issue where dvec.h gets included from intrin.h and triggers around 140 different not declared in this scope errors. Basically, there is an #include dvec.h (which is a C++-only header) near the top of intrin.h and the function declarations for non-SSE2 bulds come later on (I guess that if SSE2 is used, the compiler already has declarations for them?). Since dvec.h uses functions which are declared later on, compilation errors out. Jacek told me over IRC that dvec/fvec/ivec .h probably shouldn't be included from intrin.h. I've tried remove them and my build issues went away. Should that change be commited? Should it also be backported to the stable branch? IMO we should remove them in trunk, but not stable branch (at least not without a delay). We won't know if we're breaking real world code until we do that. Jacek For trunk this change seems to be right. For branches I agree to Jacek that we shouldn't do the change. Kai Back from my short vacations, patch would be: diff --git a/trunk/mingw-w64-headers/crt/intrin.h b/trunk/mingw-w64-headers/crt/intrin.h index 6287610..2348e09 100644 --- a/trunk/mingw-w64-headers/crt/intrin.h +++ b/trunk/mingw-w64-headers/crt/intrin.h @@ -147,11 +147,6 @@ extern C { } #endif -#if defined(__cplusplus) -#include dvec.h -#include fvec.h -#include ivec.h -#endif #endif #define __MACHINEX64 __MACHINE I have no idea what the commit message would be however. :P Also, I agree that this should only go to trunk, not stable branches since it changes behaviour. It is however something I will integrate in win-builds.org. -- Adrien Nader -- Adrien Nader -- Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] _mm_set1_epi64 and friends not declared in this scope for dvec.h
On 02/12/14 08:57, Adrien Nader wrote: Hi, I recently stumbled on an issue where dvec.h gets included from intrin.h and triggers around 140 different not declared in this scope errors. Basically, there is an #include dvec.h (which is a C++-only header) near the top of intrin.h and the function declarations for non-SSE2 bulds come later on (I guess that if SSE2 is used, the compiler already has declarations for them?). Since dvec.h uses functions which are declared later on, compilation errors out. Jacek told me over IRC that dvec/fvec/ivec .h probably shouldn't be included from intrin.h. I've tried remove them and my build issues went away. Should that change be commited? Should it also be backported to the stable branch? IMO we should remove them in trunk, but not stable branch (at least not without a delay). We won't know if we're breaking real world code until we do that. Jacek -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] _mm_set1_epi64 and friends not declared in this scope for dvec.h
2014-02-12 10:58 GMT+01:00 Jacek Caban ja...@codeweavers.com: On 02/12/14 08:57, Adrien Nader wrote: Hi, I recently stumbled on an issue where dvec.h gets included from intrin.h and triggers around 140 different not declared in this scope errors. Basically, there is an #include dvec.h (which is a C++-only header) near the top of intrin.h and the function declarations for non-SSE2 bulds come later on (I guess that if SSE2 is used, the compiler already has declarations for them?). Since dvec.h uses functions which are declared later on, compilation errors out. Jacek told me over IRC that dvec/fvec/ivec .h probably shouldn't be included from intrin.h. I've tried remove them and my build issues went away. Should that change be commited? Should it also be backported to the stable branch? IMO we should remove them in trunk, but not stable branch (at least not without a delay). We won't know if we're breaking real world code until we do that. Jacek For trunk this change seems to be right. For branches I agree to Jacek that we shouldn't do the change. Kai -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] _mm_set1_epi64 and friends not declared in this scope for dvec.h
Hi, I recently stumbled on an issue where dvec.h gets included from intrin.h and triggers around 140 different not declared in this scope errors. Basically, there is an #include dvec.h (which is a C++-only header) near the top of intrin.h and the function declarations for non-SSE2 bulds come later on (I guess that if SSE2 is used, the compiler already has declarations for them?). Since dvec.h uses functions which are declared later on, compilation errors out. Jacek told me over IRC that dvec/fvec/ivec .h probably shouldn't be included from intrin.h. I've tried remove them and my build issues went away. Should that change be commited? Should it also be backported to the stable branch? Jacek was also concerned about breakage of current code. I believe the change is safe because there are probably few C++ codes around which rely on the automatic inclusion of dvec (which would not work in many cases anyway). I also believe that the authors of code which use these headers will also prefer that we don't add a possibly ugly workaround which would have to remain forever. Also, I had tried something to fix the issue: move the #include dvec.h to the bottom of intrin.h and, while fairly ugly, this fixed most of the errors. The remaining errors[1] are because the declarations have been commented-out in intrin.h but their use in dvec.h hasn't. I can see two solutions: - comment them out too in dvec.h, but then there should also be a way to test at compile-time for when these functions are available or not. - uncomment the in intrin.h but if I've understood correctly, there's a concern they're not correct currently. [1] _mm_shuffle_pd, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32, _mm_srli_epi64 PS: I will be away for a few days and will not be able to read or write mails. -- Adrien Nader -- Android apps run on BlackBerry 10 Introducing the new BlackBerry 10.2.1 Runtime for Android apps. Now with support for Jelly Bean, Bluetooth, Mapview and more. Get your Android app in front of a whole new audience. Start now. http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public