Bug 1218290

Summary: libstdc++ misses std::codecvt_byname constructors
Product: [Fedora] Fedora Reporter: Thomas Sailer <fedora>
Component: mingw-gccAssignee: Erik van Pienbroek <erik-fedora>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: erik-fedora, kalevlember, ktietz, rjones
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Unspecified   
Whiteboard:
Fixed In Version: mingw-gcc-5.1.0-2.fc22 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-06-14 17:33:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
simple testcase
none
simple testcase none

Description Thomas Sailer 2015-05-04 14:03:41 UTC
Created attachment 1021761 [details]
simple testcase

Description of problem:
libstdc++ misses std::codecvt_byname constructors

Version-Release number of selected component (if applicable):
mingw32-gcc-c++-5.1.0-1.fc23.x86_64

How reproducible:
always

Steps to Reproduce:
1.i686-w64-mingw32-g++ -o x.exe x.c

Actual results:
/tmp/ccfC6MFP.o:x.c:(.text+0x74): undefined reference to `std::codecvt_byname<wchar_t, char, int>::codecvt_byname(char const*, unsigned int)'
collect2: error: ld returned 1 exit status


Expected results:
x.exe built, silently

Comment 1 Thomas Sailer 2015-05-04 14:12:03 UTC
Created attachment 1021773 [details]
simple testcase

Comment 2 Erik van Pienbroek 2015-05-05 21:34:15 UTC
Hi Thomas,

I just tested the testcase here and it fails here when using mingw32-gcc-5.1.0-1.fc22 as well (the difference being the default c++ abi being used, on f22 it is the c++89 abi, on f23+ it is the c++11 abi). I just had a brief talk with Kai Tietz about this bug and we think this issue should be reported in upstream gcc bugtracker as we don't think it is a packaging issue. Could you please report this upstream?

Comment 3 Thomas Sailer 2015-05-05 22:30:04 UTC
Hi Erik,

It works for me using native gcc5. To me it looks like a DLL issue, not exporting the constructors, only the typeinfo. So whose scripts build the libstdc++ DLL?

Comment 4 Erik van Pienbroek 2015-05-05 22:50:29 UTC
The libstdc++ DLL is built as part of the regular 'make' of gcc as can be observed at http://pkgs.fedoraproject.org/cgit/mingw-gcc.git/tree/mingw-gcc.spec#n279 (from line 279 to 342). We aren't doing anything special

Comment 5 Thomas Sailer 2015-05-05 23:36:20 UTC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66030

Comment 6 Thomas Sailer 2015-06-01 16:13:08 UTC
Could you please recompile gcc with the following patch:

https://gcc.gnu.org/bugzilla/attachment.cgi?id=35668&action=edit

Comment 7 Erik van Pienbroek 2015-06-01 16:22:54 UTC
Not yet, upstream has indicated in that bug report that the fix is wrong

Comment 8 Thomas Sailer 2015-06-09 09:38:07 UTC
A patch for this is now in upstream cvs.

URL: https://gcc.gnu.org/viewcvs?rev=224273&root=gcc&view=rev
Log:
        PR libstdc++/66030
        * config/abi/pre/gnu.ver: Export codecvt_byname and codecvt symbols
        for mingw32.

Comment 9 Erik van Pienbroek 2015-06-09 10:38:01 UTC
Yeah I noticed it too, I'll prepare an updated package later today

Comment 10 Erik van Pienbroek 2015-06-11 14:57:17 UTC
Could you test if http://koji.fedoraproject.org/koji/taskinfo?taskID=10014419 resolves the issue for you?

Comment 11 Thomas Sailer 2015-06-11 18:38:17 UTC
I can now build boost again, so works for me.

Comment 12 Fedora Update System 2015-06-11 22:40:20 UTC
mingw-gcc-5.1.0-2.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/mingw-gcc-5.1.0-2.fc22

Comment 13 Erik van Pienbroek 2015-06-11 22:40:49 UTC
This package is now also available as buildroot override for Fedora 22

Comment 14 Fedora Update System 2015-06-14 17:33:20 UTC
mingw-gcc-5.1.0-2.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.