[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #15 from rguenth at gcc dot gnu dot org 2010-04-06 11:20 --- GCC 4.5.0 is being released. Deferring to 4.5.1. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|4.5.0 |4.5.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #14 from hjl at gcc dot gnu dot org 2010-03-28 16:41 --- Subject: Bug 40722 Author: hjl Date: Sun Mar 28 16:40:50 2010 New Revision: 157784 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157784 Log: 2010-03-28 H.J. Lu PR target/40722 * mkfixinc.sh: Revert the last change for mingw. Modified: trunk/fixincludes/ChangeLog trunk/fixincludes/mkfixinc.sh -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #13 from rguenth at gcc dot gnu dot org 2010-03-28 15:34 --- (In reply to comment #12) > (In reply to comment #10) > > Created an attachment (id=20228) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20228&action=view) [edit] > > Broken stdlib.h > > > > Hi, > > > > This patched caused problems for mingw-w64 stdlib.h, see attachment. > > > > Someone from mingw64 should adjust fixincludes/mkfixinc.sh for mingw64. HJ, please consider reverting your patch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #12 from hjl dot tools at gmail dot com 2010-03-28 14:44 --- (In reply to comment #10) > Created an attachment (id=20228) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20228&action=view) [edit] > Broken stdlib.h > > Hi, > > This patched caused problems for mingw-w64 stdlib.h, see attachment. > Someone from mingw64 should adjust fixincludes/mkfixinc.sh for mingw64. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #11 from jon_y at users dot sourceforge dot net 2010-03-28 10:17 --- Created an attachment (id=20229) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20229&action=view) log from buildbot Here is the error output from one of the buildbot slaves. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #10 from jon_y at users dot sourceforge dot net 2010-03-28 10:14 --- Created an attachment (id=20228) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20228&action=view) Broken stdlib.h Hi, This patched caused problems for mingw-w64 stdlib.h, see attachment. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #9 from hjl at gcc dot gnu dot org 2010-03-23 13:24 --- Subject: Bug 40722 Author: hjl Date: Tue Mar 23 13:24:37 2010 New Revision: 157665 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157665 Log: Fix stdlib.h for mingw. 2010-03-23 H.J. Lu PR target/40722 * mkfixinc.sh: Fix stdlib.h for mingw. Modified: trunk/fixincludes/ChangeLog trunk/fixincludes/mkfixinc.sh -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #8 from ktietz at gcc dot gnu dot org 2010-03-23 12:32 --- (In reply to comment #7) > An updated patch is at > > http://gcc.gnu.org/ml/gcc-patches/2010-03/msg00937.html > Patch is fine. It is absolutely necessary to support gcc's intrinsic headers for mingw. The fixinclude approach is one way to solve it and I am fine by it. For mingw-w64 we used the #pragma push/pop_macro feature to make sure we declare function without getting problems by this define in ia32intrin.h. Kai -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #7 from hjl dot tools at gmail dot com 2010-03-20 18:09 --- An updated patch is at http://gcc.gnu.org/ml/gcc-patches/2010-03/msg00937.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #6 from hjl dot tools at gmail dot com 2010-03-20 18:01 --- A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2010-03/msg00936.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #5 from hjl dot tools at gmail dot com 2010-03-20 14:34 --- I saw _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _rotl(unsigned int, int) __MINGW_ATTRIB_CONST; _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _rotr(unsigned int, int) __MINGW_ATTRIB_CONST; _CRTIMP unsigned long __cdecl __MINGW_NOTHROW _lrotl(unsigned long, int) __MINGW_ATTRIB_CONST; _CRTIMP unsigned long __cdecl __MINGW_NOTHROW _lrotr(unsigned long, int) __MINGW_ATTRIB_CONST; There is no easy way to check it. I think they should be fixed by fixinclude. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #4 from nightstrike at gmail dot com 2010-03-19 16:16 --- Can we fix this before 4.5 is released? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #3 from ktietz at gcc dot gnu dot org 2009-08-30 17:34 --- (In reply to comment #2) > (In reply to comment #1) > > These were added by HJ. Either we need to fixinclude stdlib.h or not define > > these based on a configure test (I guess the former is more robust if > > ia32intrin.h defines these only if they are not already defined). > > > > fixinclude sounds a good idea, but I don't know how to do it. Or > I can change ia32inintrin.h by not defining them for mingw. > I would vote for guarding the lrotl, lrotr by checks, if they aren't defined already. There is an other issue about ia32intrin.h and mingw targets, but I assume, that it is true for other i386 and x86_64 targets, too. There are the functions __crc32b, __crc32w, and __crt32d, which are in general just available for a target that has SSE4.1 enabled (-mcrc). But the inlines aren't guarded and so the builtins __builtin_ia32_crc32qi (etc) don't have prototypes and so g++ will throw errors. The following sample shows the issue pretty well. t.cc: #include int main() { return 0; } -- ktietz at gcc dot gnu dot org changed: What|Removed |Added CC||ktietz at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
-- jsm28 at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #2 from hjl dot tools at gmail dot com 2009-07-12 18:19 --- (In reply to comment #1) > These were added by HJ. Either we need to fixinclude stdlib.h or not define > these based on a configure test (I guess the former is more robust if > ia32intrin.h defines these only if they are not already defined). > fixinclude sounds a good idea, but I don't know how to do it. Or I can change ia32inintrin.h by not defining them for mingw. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722
[Bug target/40722] [4.5 Regression] ia32intrin.h defines of _rotl, _rotr conflict with target stdlib.h decls
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-07-12 08:24 --- These were added by HJ. Either we need to fixinclude stdlib.h or not define these based on a configure test (I guess the former is more robust if ia32intrin.h defines these only if they are not already defined). -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||hjl at gcc dot gnu dot org Summary|ia32intrin.h defines of |[4.5 Regression] |_rotl, _rotr conflict with |ia32intrin.h defines of |target stdlib.h decls |_rotl, _rotr conflict with ||target stdlib.h decls Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40722