http://sourceware.org/bugzilla/show_bug.cgi?id=13031
Summary: Building CodeBlocks on Windows using mingw gcc 4.6.1 "-flto -fuse-linker-plugin" results in many linker stage errors Product: binutils Version: unspecified Status: NEW Severity: normal Priority: P2 Component: ld AssignedTo: unassig...@sources.redhat.com ReportedBy: xunxun1...@gmail.com Host: i686-pc-mingw32 Target: i686-pc-mingw32 Build: i686-pc-mingw32 Hi, all My gcc4.6.1 configure with : ./configure --prefix=/mingw --host=i686-pc-mingw32 --build=i686-pc-mingw32 --target=i686-pc-mingw32 \ --with-lto-plugin --with-host-libstdcxx=-lstdc++ --disable-bootstrap --disable-werror --with-arch=i686 --with-tune=generic \ --enable-languages=c,c++,fortran --enable-libgomp --enable-threads=win32 --enable-lto --with-system-zlib \ --enable-libstdcxx-debug --enable-version-specific-runtime-libs --enable-fully-dynamic-string \ --disable-sjlj-exceptions --with-dwarf2 --disable-symvers --enable-checking=release \ --enable-plugins --enable-cloog-backend=isl --enable-static --disable-shared \ --disable-nls --disable-win32-registry My ld version is : 2.21.52.20110708 When I build Code::Blocks, if I add "-flto" to the compiler option, and add "-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -s -flto -fuse-linker-plugin" to the linker option, that will result in many linker stage errors: -------------------------------------------------------------------------------- g++.exe -shared -Wl,--out-implib=devel\libwxpropgrid.a -Wl,--dll -Lbase\tinyxml -LE:\MyPack\3rdLib\GUI\wxWidgets-2.8.12\lib\gcc_dll .objs\sdk\wxpropgrid\src\editors.o .objs\sdk\wxpropgrid\src\extras.o .objs\sdk\wxpropgrid\src\manager.o .objs\sdk\wxpropgrid\src\odcombo.o .objs\sdk\wxpropgrid\src\propgrid.o .objs\sdk\wxpropgrid\src\props.o .objs\sdk\wxpropgrid\src\xh_propgrid.o .objs\sdk\wxpropgrid\src\advprops.o -o devel\wxpropgrid.dll -mthreads -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -s -flto -fuse-linker-plugin -Wl,--allow-multiple-definition -Wl,--enable-auto-image-base -Wl,--add-stdcall-alias -Wl,--enable-auto-import -lwxmsw28u F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x1913): undefined reference to `_imp___ZTV17wxStringTokenizer.local.832' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x1aeb): undefined reference to `_imp___ZTV15wxDirDialogBase.local.831' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x2658): undefined reference to `_imp___ZTV18wxDataObjectSimple.local.823' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x308b): undefined reference to `_imp___ZTV17wxStringTokenizer.local.832' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x3251): undefined reference to `_imp___ZTV15wxDirDialogBase.local.831' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x4ef4): undefined reference to `_imp___ZTV18wxBitmapButtonBase.local.822' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x4ff2): undefined reference to `_imp___ZTV18wxBitmapButtonBase.local.822' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x5c8f): undefined reference to `_imp___ZTV12wxRegionBase.local.837' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x5cdf): undefined reference to `_imp___ZTV12wxRegionBase.local.837' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x5d25): undefined reference to `_imp___ZTV11wxBrushBase.local.835' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x5d75): undefined reference to `_imp___ZTV11wxBrushBase.local.835' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x5f33): undefined reference to `_imp___ZTV15wxHashTableBase.local.795' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x5f6f): undefined reference to `_imp___ZTV15wxHashTableBase.local.795' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x6859): undefined reference to `_imp___ZTV17wxMBConvUTF16Base.local.829' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x6887): undefined reference to `_imp___ZTV17wxMBConvUTF16Base.local.829' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x68ab): undefined reference to `_imp___ZTV17wxMBConvUTF32Base.local.828' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x68d9): undefined reference to `_imp___ZTV17wxMBConvUTF32Base.local.828' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x6c8f): undefined reference to `_imp___ZTV18wxDataObjectSimple.local.823' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x6cbd): undefined reference to `_imp___ZTV18wxDataObjectSimple.local.823' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x6f79): undefined reference to `_imp___ZTV12wxObjectList.local.816' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x6fa7): undefined reference to `_imp___ZTV12wxObjectList.local.816' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x6fcb): undefined reference to `_imp___ZTV12wxWindowList.local.807' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x6ff9): undefined reference to `_imp___ZTV12wxWindowList.local.807' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x74d5): undefined reference to `_imp___ZTV16wxStaticLineBase.local.775' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x74f9): undefined reference to `_imp___ZTV16wxStaticLineBase.local.775' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x7527): undefined reference to `_imp___ZTV12wxButtonBase.local.804' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x7555): undefined reference to `_imp___ZTV12wxButtonBase.local.804' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x7579): undefined reference to `_imp___ZTV16wxStaticTextBase.local.801' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x75a7): undefined reference to `_imp___ZTV16wxStaticTextBase.local.801' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x75cb): undefined reference to `_imp___ZTV15wxStaticBoxBase.local.800' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x75f9): undefined reference to `_imp___ZTV15wxStaticBoxBase.local.800' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x761d): undefined reference to `_imp___ZTV16wxSpinButtonBase.local.798' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x764b): undefined reference to `_imp___ZTV16wxSpinButtonBase.local.798' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x766f): undefined reference to `_imp___ZTV20wxDatePickerCtrlBase.local.797' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x769d): undefined reference to `_imp___ZTV20wxDatePickerCtrlBase.local.797' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x7d4d): undefined reference to `_imp___ZTV17wxGDIImageRefData.local.791' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x7d5b): undefined reference to `_imp___ZTV12wxGDIRefData.local.790' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x7d69): undefined reference to `_imp___ZTV15wxObjectRefData.local.787' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x7d8b): undefined reference to `_imp___ZTV12wxGDIRefData.local.790' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x7d99): undefined reference to `_imp___ZTV15wxObjectRefData.local.787' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x7dbb): undefined reference to `_imp___ZTV15wxObjectRefData.local.787' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x7ddd): undefined reference to `_imp___ZTV14wxMemoryDCBase.local.793' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x822a): undefined reference to `_imp___ZTV14wxMemoryDCBase.local.793' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x859a): undefined reference to `_imp___ZTV17wxGDIImageRefData.local.791' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x85a9): undefined reference to `_imp___ZTV12wxGDIRefData.local.790' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x85b8): undefined reference to `_imp___ZTV15wxObjectRefData.local.787' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x85c8): undefined reference to `_imp___ZTV12wxGDIRefData.local.790' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x85d7): undefined reference to `_imp___ZTV15wxObjectRefData.local.787' F:\Temp\ccOvkJMp.ltrans0.ltrans.o:ccOvkJMp.ltrans0.o:(.text+0x860e): undefined reference to `_imp___ZTV15wxObjectRefData.local.787' F:\Temp\ccOvkJMp.ltrans1.ltrans.o:ccOvkJMp.ltrans1.o:(.text+0xea7): undefined reference to `_imp___ZTV17wxStringTokenizer.local.832' -------------------------------------------------------------------------------- But either .objs\sdk\wxpropgrid\src\*.o or libwxmsw28u.a don't have any symbols like "*****.local.****", the libwxmsw28u.a only have the symbols like "_imp___ZTV17wxStringTokenizer". I don't know how the "*****.local.****" symbols come out? It's a gcc lto plugin bug or ld bug? I remove "-Wl,-O1 -Wl,--sort-common -Wl,--as-needed", and it also has the problem. ps: other linker option like "-Wl,--enable-auto-image-base -Wl,--add-stdcall-alias -Wl,--enable-auto-import" is Code::Blocks's default option. see gcc bugzilla: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49844 -- Best Regards, PcX -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils