[Bug libgomp/64972] New: Build failure in libgomp for i686-w64-mingw32 target after latest merge from gomp-4_0-branch

2015-02-08 Thread erik-gcc-bugzilla at vanpienbroek dot nl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64972

Bug ID: 64972
   Summary: Build failure in libgomp for i686-w64-mingw32 target
after latest merge from gomp-4_0-branch
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: libgomp
  Assignee: unassigned at gcc dot gnu.org
  Reporter: erik-gcc-bugzilla at vanpienbroek dot nl
CC: jakub at gcc dot gnu.org, ktietz at gcc dot gnu.org
Target: i686-w64-mingw32

Recent snapshots of gcc 5 can not be built any more for the i686-w64-mingw32
target:

make[4]: Entering directory
'/home/erik/fedora/mingw-gcc/gcc-5-20150125/build_win32/i686-w64-mingw32/libgomp'
/bin/sh ./libtool --tag=CC
--mode=compile
/home/erik/fedora/mingw-gcc/gcc-5-20150125/build_win32/./gcc/xgcc
-B/home/erik/fedora/mingw-gcc/gcc-5-20150125/build_win32/./gcc/
-L/usr/i686-w64-mingw32/lib -L/usr/mingw/lib -isystem
/usr/i686-w64-mingw32/include -isystem /usr/mingw/include
-B/usr/i686-w64-mingw32/bin/ -B/usr/i686-w64-mingw32/lib/ -isystem
/usr/i686-w64-mingw32/include -isystem /usr/i686-w64-mingw32/sys-include   
-DHAVE_CONFIG_H -I. -I../../../libgomp  -I../../../libgomp/config/mingw32
-I../../../libgomp/config/posix -I../../../libgomp
-I../../../libgomp/../include  -Wall -Werror -Wc,-pthread -g -O2 -MT target.lo
-MD -MP -MF .deps/target.Tpo -c -o target.lo ../../../libgomp/target.c
libtool:
compile:  /home/erik/fedora/mingw-gcc/gcc-5-20150125/build_win32/./gcc/xgcc
-B/home/erik/fedora/mingw-gcc/gcc-5-20150125/build_win32/./gcc/
-L/usr/i686-w64-mingw32/lib -L/usr/mingw/lib -isystem
/usr/i686-w64-mingw32/include -isystem /usr/mingw/include
-B/usr/i686-w64-mingw32/bin/ -B/usr/i686-w64-mingw32/lib/ -isystem
/usr/i686-w64-mingw32/include -isystem /usr/i686-w64-mingw32/sys-include
-DHAVE_CONFIG_H -I. -I../../../libgomp -I../../../libgomp/config/mingw32
-I../../../libgomp/config/posix -I../../../libgomp
-I../../../libgomp/../include -Wall -pthread -Werror -g -O2 -MT target.lo -MD
-MP -MF .deps/target.Tpo -c ../../../libgomp/target.c  -DDLL_EXPORT -DPIC -o
.libs/target.o
../../../libgomp/target.c: In function 'gomp_map_vars':
../../../libgomp/target.c:440:21: error: unknown conversion type
character 'z' in format [-Werror=format=]
 gomp_fatal (present clause: !acc_is_present (%p, 
 ^
../../../libgomp/target.c:440:21: error: unknown conversion type
character 'z' in format [-Werror=format=]
../../../libgomp/target.c:440:21: error: too many arguments for format
[-Werror=format-extra-args]
cc1: all warnings being treated as errors
Makefile:613: recipe for target 'target.lo' failed
make[4]: *** [target.lo] Error 1
make[4]: Leaving directory
'/home/erik/fedora/mingw-gcc/gcc-5-20150125/build_win32/i686-w64-mingw32/libgomp'


The offending line contains this piece of code:
gomp_fatal (present clause: !acc_is_present (%p, 
%zd (0x%zx)), (void *) k-host_start,
size, size);

This piece of code was introduced in r219682 which was applied on January 15
2015.

This issue was also discussed at the mingw-w64 mailing list @ 
http://sourceforge.net/p/mingw-w64/mailman/mingw-w64-public/thread/54cd7703.8080...@users.sourceforge.net/
and also contains some possible solutions


[Bug c++/56038] declarations in xmmintrin.h conflict with mingw-w64 intrin.h in c++ mode

2014-03-23 Thread erik-gcc-bugzilla at vanpienbroek dot nl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56038

--- Comment #12 from Erik van Pienbroek erik-gcc-bugzilla at vanpienbroek dot 
nl ---
(In reply to tim.lebedkov from comment #11)
 Qt 5.2.1 cannot be build in 32 bit with mingw-w64 4.8.2 because of this bug.
 Why is it not fixed?

A fix for this issue was applied in the intrin.h of mingw-w64 v3.1.0 (which was
released in January 2014). Here's the commit in question:
http://sourceforge.net/p/mingw-w64/code/6303/ You might want to consider
updating your toolchain.

I can't judge whether the fix applied in mingw-w64 is correct or whether
something needs to be changed in gcc itself as well. Therefore I'm leaving this
bug open for now. If the gcc devs think otherwise feel free to close this bug.
Qt5 itself can now be built properly against gcc 4.8.2 and mingw-w64 v3.1.0
without any issues.


[Bug c++/56038] New: declarations in xmmintrin.h conflict with mingw-w64 intrin.h in c++ mode

2013-01-18 Thread erik-gcc-bugzilla at vanpienbroek dot nl


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56038



 Bug #: 56038

   Summary: declarations in xmmintrin.h conflict with mingw-w64

intrin.h in c++ mode

Classification: Unclassified

   Product: gcc

   Version: 4.8.0

Status: UNCONFIRMED

  Severity: normal

  Priority: P3

 Component: c++

AssignedTo: unassig...@gcc.gnu.org

ReportedBy: erik-gcc-bugzi...@vanpienbroek.nl

CC: ktiet...@googlemail.com

Target: i686-w64-mingw32

 Build: gcc 4.8 20130106 snapshot, r194954





While testing gcc 4.8 (for the target i686-w64-mingw32) I stumbled across a

compile failure while trying to build Qt5. Here's a minimal testcase to

reproduce this compile failure:



#include algorithm

#include intrin.h



int main()

{

return 0;

}



When trying to build this with gcc 4.8 and a recent mingw-w64 trunk snapshot

the following error occurs:



$ i686-w64-mingw32-g++ -O2 -msse2 -std=c++11 test.cpp

In file included from

/usr/lib64/gcc/i686-w64-mingw32/4.8.0/include/x86intrin.h:34:0,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/bits/opt_random.h:33,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/random:51,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/bits/stl_algo.h:67,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/algorithm:63,

 from test.cpp:1:

/usr/lib64/gcc/i686-w64-mingw32/4.8.0/include/xmmintrin.h:997:1: error:

previous declaration of 'int _m_pextrw(__m64, int)' with 'C++' linkage

 _m_pextrw (__m64 const __A, int const __N)

 ^

In file included from test.cpp:2:0:

/usr/i686-w64-mingw32/sys-root/mingw/include/intrin.h:561:5: error: conflicts

with new declaration with 'C' linkage

 __MACHINEX86X_NOX64(int _m_pextrw(__m64,int))

 ^

In file included from

/usr/lib64/gcc/i686-w64-mingw32/4.8.0/include/x86intrin.h:34:0,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/bits/opt_random.h:33,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/random:51,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/bits/stl_algo.h:67,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/algorithm:63,

 from test.cpp:1:

/usr/lib64/gcc/i686-w64-mingw32/4.8.0/include/xmmintrin.h:1018:1: error:

previous declaration of '__m64 _m_pinsrw(__m64, int, int)' with 'C++' linkage

 _m_pinsrw (__m64 const __A, int const __D, int const __N)

 ^

In file included from test.cpp:2:0:

/usr/i686-w64-mingw32/sys-root/mingw/include/intrin.h:566:5: error: conflicts

with new declaration with 'C' linkage

 __MACHINEX86X_NOX64(__m64 _m_pinsrw(__m64,int,int))

 ^

In file included from

/usr/lib64/gcc/i686-w64-mingw32/4.8.0/include/x86intrin.h:34:0,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/bits/opt_random.h:33,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/random:51,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/bits/stl_algo.h:67,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/algorithm:63,

 from test.cpp:1:

/usr/lib64/gcc/i686-w64-mingw32/4.8.0/include/xmmintrin.h:1119:1: error:

previous declaration of '__m64 _m_pshufw(__m64, int)' with 'C++' linkage

 _m_pshufw (__m64 __A, int const __N)

 ^

In file included from test.cpp:2:0:

/usr/i686-w64-mingw32/sys-root/mingw/include/intrin.h:578:5: error: conflicts

with new declaration with 'C' linkage

 __MACHINEX86X_NOX64(__m64 _m_pshufw(__m64,int))

 ^

In file included from

/usr/lib64/gcc/i686-w64-mingw32/4.8.0/include/x86intrin.h:34:0,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/bits/opt_random.h:33,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/random:51,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/bits/stl_algo.h:67,

 from

/usr/i686-w64-mingw32/sys-root/mingw/include/c++/algorithm:63,

 from test.cpp:1:

/usr/lib64/gcc/i686-w64-mingw32/4.8.0/include/xmmintrin.h:716:1: error:

previous declaration of '__m128 _mm_shuffle_ps(__m128, __m128, int)' with 'C++'

linkage

 _mm_shuffle_ps (__m128 __A, __m128 __B, int const __mask)

 ^

In file included from test.cpp:2:0:

/usr/i686-w64-mingw32/sys-root/mingw/include/intrin.h:656:5: error: conflicts

with new declaration with 'C' linkage

 __MACHINEX86X_NOIA64(__m128 _mm_shuffle_ps(__m128,__m128,int const))

 ^





The above testcase built fine with gcc 4.7 and the exact same version of

mingw-w64, so I consider this a regression in gcc 4.8



With the (pretty straightforward) change below I managed to resolve the issue:



--- gcc/config/i386/xmmintrin.h.orig2013-01-18 14:57:27.762645582