when use g++ to build wxWidgets in x86_64-pc-mingw32, it output following error
:

------------------
E:\work\09_workroom\wxtest\png>mingw32-make -f Makefile.mingw
WX_DIR=e:\code\wx6
4 CXX=e:\code\target\bin\g++.exe
e:\code\target\bin\g++.exe -g -Wall -pipe  -D__WXMSW__ -D__WXDEBUG__ -DWIN32
-D_
WINDOWS -Ie:\code\wx64/include -Ie:\code\wx64/lib/mswd  png.o  stdafx.o -o
png.e
xe -mwindows -Le:\code\wx64/lib -lwxmsw28d_core -lwxbase28d -lwxpngd -lwxzlibd
-
lgdi32 -lole32 -loleaut32 -lwinmm -lcomctl32 -lcomdlg32 -lwinspool -luuid
-lshel
l32 -lrpcrt4
e:/code/target/bin/../lib/gcc/x86_64-pc-mingw32/4.3.2/../../../../x86_64-pc-ming
w32/lib/libmingwex.a(lib64_libmingwex_a-wininterlocked.o):wininterlocked.c:(.tex
t+0x43b): multiple definition of `_InterlockedIncrement'
e:\code\wx64/lib/libwxbase28d.a(baselib_thread.o):thread.cpp:(.text$_Interlocked
Increment[__InterlockedIncrement]+0x0): first defined here
e:/code/target/bin/../lib/gcc/x86_64-pc-mingw32/4.3.2/../../../../x86_64-pc-ming
w32/lib/libmingwex.a(lib64_libmingwex_a-wininterlocked.o):wininterlocked.c:(.tex
t+0x487): multiple definition of `_InterlockedDecrement'
e:\code\wx64/lib/libwxbase28d.a(baselib_thread.o):thread.cpp:(.text$_Interlocked
Decrement[__InterlockedDecrement]+0x0): first defined here
collect2: ld returned 1 exit status
mingw32-make: *** [png.exe] Error 1     
-----------------

_InterlockedDecrement is an inline function, it should not in baselib_thread.o,
when built with "-O1", its ok. when built with "-O2", g++ crashed.
see attachment for more infomation.


-- 
           Summary: g++ create global symbol for inline function, which make
                    link failed with multiple defination
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: drangon dot mail at gmail dot com
 GCC build triplet: x86_64-redhat-linux-gnu
  GCC host triplet: x86_64-pc-mingw32
GCC target triplet: x86_64-pc-mingw32


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

Reply via email to