Bug 57119 - libstdc++-6.dll missed in default gcc 4.8 build
Summary: libstdc++-6.dll missed in default gcc 4.8 build
Status: RESOLVED WORKSFORME
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.8.1
: P3 major
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-04-30 01:37 UTC by Dongsheng Song
Modified: 2015-02-10 17:26 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2013-04-30 00:00:00


Attachments
x86_64-w64-mingw32/libstdc++-v3/config.log (24.35 KB, application/octet-stream)
2013-04-30 10:42 UTC, Dongsheng Song
Details
gcc/config.log (6.47 KB, text/plain)
2013-04-30 10:44 UTC, Dongsheng Song
Details
gcc/config-v2.log (6.45 KB, text/plain)
2013-04-30 11:41 UTC, Dongsheng Song
Details
i686-w64-mingw32/libstdc++-v3/config-v2.log (25.37 KB, application/x-gzip)
2013-04-30 11:42 UTC, Dongsheng Song
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dongsheng Song 2013-04-30 01:37:08 UTC
In gcc 4.7, both static and shared libstdc++ build:

i686-w64-mingw32/lib/libstdc++.a
x86_64-w64-mingw32/lib/libstdc++.a

i686-w64-mingw32/lib/libstdc++-6.dll
x86_64-w64-mingw32/lib/libstdc++-6.dll

But in gcc 4.8, no shared libstdc++ build anymore, only got static build:
lib/libstdc++.a
Comment 1 Paolo Carlini 2013-04-30 09:23:39 UTC
Kai, can you please help triaging this?
Comment 2 Kai Tietz 2013-04-30 10:33:59 UTC
Hmm, I can't reproduce that.  I just built things myself again for 4.8.1 gcc.
I am a bit curious to read that due distributions like Fedora seem to be able to build stuff without isssues for 4.8.x gcc.
First advice would be to look into libstdc++'s config.log to see why for you shared library isn't built.  Second question is how you are actual configuring it, and what additional patches you might use on built?
Comment 3 Dongsheng Song 2013-04-30 10:42:21 UTC
Created attachment 29979 [details]
x86_64-w64-mingw32/libstdc++-v3/config.log
Comment 4 Dongsheng Song 2013-04-30 10:44:03 UTC
Created attachment 29980 [details]
gcc/config.log
Comment 5 Dongsheng Song 2013-04-30 10:46:54 UTC
(In reply to comment #2)
> Hmm, I can't reproduce that.  I just built things myself again for 4.8.1 gcc.
> I am a bit curious to read that due distributions like Fedora seem to be able
> to build stuff without isssues for 4.8.x gcc.
> First advice would be to look into libstdc++'s config.log to see why for you
> shared library isn't built.  Second question is how you are actual configuring
> it, and what additional patches you might use on built?

No additional patches applied.

Here is my build cfg:

$ /home/cauchy/vcs/svn/gcc/branches/gcc-4_8-branch/configure --prefix=/home/cauchy/cross/x86_64-windows --with-sysroot=/home/cauchy/cross/x86_64-windows --target=x86_64-w64-mingw32 --enable-targets=all --disable-nls --enable-checking=release --enable-languages=c,c++,fortran --with-arch=x86-64 --with-tune=generic --with-fpmath=sse

Please see attachments for config.log
Comment 6 Dongsheng Song 2013-04-30 10:47:39 UTC
OOPS, not RESOLVED.
Comment 7 Kai Tietz 2013-04-30 11:00:13 UTC
Hmm, only issue I see is the use of '--disable-nls' option, which is known to cause issue. See here PR 54659.

Another question I have is, what mingw-w64 header-set,crt you are using?  You will need for >= 4.8.x gcc version actual trunk version.

I looked through the config.log and don't see anything showing that shared-version doesn't work, so I assume the underlying issue you see is PR 54659.
Comment 8 Dongsheng Song 2013-04-30 11:29:10 UTC
(In reply to comment #7)
> Hmm, only issue I see is the use of '--disable-nls' option, which is known to
> cause issue. See here PR 54659.
> 
> Another question I have is, what mingw-w64 header-set,crt you are using?  You
> will need for >= 4.8.x gcc version actual trunk version.
> 

Yes, I use mingw-w64 trunk.

> I looked through the config.log and don't see anything showing that
> shared-version doesn't work, so I assume the underlying issue you see is PR
> 54659.

OK, I will try without '--disable-nls' option.
Comment 9 Dongsheng Song 2013-04-30 11:41:29 UTC
Created attachment 29981 [details]
gcc/config-v2.log
Comment 10 Dongsheng Song 2013-04-30 11:42:27 UTC
Created attachment 29982 [details]
i686-w64-mingw32/libstdc++-v3/config-v2.log
Comment 11 Dongsheng Song 2013-04-30 11:43:42 UTC
Please see gcc/config-v2.log and i686-w64-mingw32/libstdc++-v3/config-v2.log, still not build libstdc++-6.dll
Comment 12 Kai Tietz 2013-04-30 13:49:25 UTC
Hmm, I don't see in config.log any difference to the variant I have built on my box.  Shared is actual enabled in you config.log for libstdc++-v3.  So DLL should be built, if you don't have a build error.
For me 32-bit and 64-bit w64 version builds OOTB without any issue.
You are building multilib as I see, so do you have 32-bit and 64-bit setuped too?  Could you check if there is for real no dll built by executing within your libstdc++-v3 build-directory the command 'find ./* -name "*.dll" -print'?
Comment 13 Dongsheng Song 2013-04-30 14:46:43 UTC
(In reply to comment #12)
> Hmm, I don't see in config.log any difference to the variant I have built on my
> box.  Shared is actual enabled in you config.log for libstdc++-v3.  So DLL
> should be built, if you don't have a build error.
> For me 32-bit and 64-bit w64 version builds OOTB without any issue.
> You are building multilib as I see, so do you have 32-bit and 64-bit setuped
> too?  Could you check if there is for real no dll built by executing within
> your libstdc++-v3 build-directory the command 'find ./* -name "*.dll" -print'?

Yes, I build x86_64-w64-mingw32 with multilib, i686-w64-mingw32 without multilib (due to binutils trunk regress), both do not generate libstdc++-6.dll:


~/obj/i686-w64-mingw32/gcc$ find ./* -name "*.dll" -print
./gcc/home/cauchy/cross/i686-windows/i686-w64-mingw32/lib/libgcc_s_sjlj-1.dll
./i686-w64-mingw32/libgcc/shlib/libgcc_s_sjlj-1.dll
./i686-w64-mingw32/libssp/.libs/libssp-0.dll
./i686-w64-mingw32/libquadmath/.libs/libquadmath-0.dll
./i686-w64-mingw32/libgfortran/.libs/libgfortran-3.dll

~/obj/x86_64-w64-mingw32/gcc$ find ./* -name "*.dll" -print
./gcc/home/cauchy/cross/x86_64-windows/x86_64-w64-mingw32/lib/libgcc_s_seh-1.dll
./gcc/home/cauchy/cross/x86_64-windows/x86_64-w64-mingw32/lib32/libgcc_s_sjlj-1.dll
./x86_64-w64-mingw32/libgcc/shlib/libgcc_s_seh-1.dll
./x86_64-w64-mingw32/32/libgcc/32/shlib/libgcc_s_sjlj-1.dll
./x86_64-w64-mingw32/32/libssp/.libs/libssp-0.dll
./x86_64-w64-mingw32/32/libquadmath/.libs/libquadmath-0.dll
./x86_64-w64-mingw32/32/libgfortran/.libs/libgfortran-3.dll
./x86_64-w64-mingw32/libssp/.libs/libssp-0.dll
./x86_64-w64-mingw32/libquadmath/.libs/libquadmath-0.dll
./x86_64-w64-mingw32/libgfortran/.libs/libgfortran-3.dll
Comment 14 Kai Tietz 2013-12-06 00:36:05 UTC
Does this problem still exists for you with current 4.7 branch?
For me recent bootstrap multilib 64-bit, and 32-bit are working without issues on 4.7.x
Comment 15 Dongsheng Song 2013-12-06 06:28:39 UTC
gcc 4.7.x never have such issue.

for gcc 4.8.x or trunk, I did not build multilib long ago.
because I can not build multilib which x64 use SEH, and x86 use SJLJ. I must build with SJLJ for x64 and x86.
Comment 16 Kai Tietz 2015-02-10 17:26:41 UTC
Hmm, this issue seems to be fixed.  I close this bug.  Please don't hesitate to open new bug for it, iff issue still exists.