public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* [ANNOUNCEMENT] [Updated] mingw64-{i686,x86_64}-gcc-7.3.0-1 (Test)
@ 2018-07-18 23:52 JonY
  2018-08-21 15:16 ` Steven Penny
  0 siblings, 1 reply; 8+ messages in thread
From: JonY @ 2018-07-18 23:52 UTC (permalink / raw)
  To: cygwin


[-- Attachment #1.1: Type: text/plain, Size: 718 bytes --]

The mingw-w64 cross compilers have been updated:

* mingw64-i686-gcc-7.3.0-1
* mingw64-x86_64-gcc-7.3.0-1

It is available under the test version.


              *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO ***

If you want to unsubscribe from the cygwin-announce mailing list, look
at the "List-Unsubscribe: " tag in the email header of this message.
Send email to the address specified there. It will be in the format:

cygwin-announce-unsubscribe-you=yourdomain.com <at> cygwin.com

If you need more information on unsubscribing, start reading here:

http://sourceware.org/lists.html#unsubscribe-simple

Please read *all* of the information on unsubscribing that is available
starting at this URL.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANNOUNCEMENT] [Updated] mingw64-{i686,x86_64}-gcc-7.3.0-1 (Test)
  2018-07-18 23:52 [ANNOUNCEMENT] [Updated] mingw64-{i686,x86_64}-gcc-7.3.0-1 (Test) JonY
@ 2018-08-21 15:16 ` Steven Penny
  2018-08-24 19:06   ` JonY
  0 siblings, 1 reply; 8+ messages in thread
From: Steven Penny @ 2018-08-21 15:16 UTC (permalink / raw)
  To: cygwin

On Wed, 18 Jul 2018 10:38:22, JonY wrote:
> The mingw-w64 cross compilers have been updated:
>
> * mingw64-i686-gcc-7.3.0-1
> * mingw64-x86_64-gcc-7.3.0-1
>
> It is available under the test version.

http://cygwin.com/ml/cygwin/2018-07/msg00168.html

Using this file:

    $ cat stoi.cpp
    #include <iostream>
    #include <string>
    main() {
      std::string q = "23456";
      std::cout << std::stoi(q) << std::endl;
    }

I have noticed an issue with the Cygwin "x86_64-w64-mingw32-g++" compiler. If I
strip the executable, all is well:

    $ time x86_64-w64-mingw32-g++ -s -static-libstdc++ stoi.cpp; wc -c a.exe
    real    0m0.889s
    845824 a.exe

Same with Msys2:

    # time x86_64-w64-mingw32-g++ -s -static-libstdc++ stoi.cpp; wc -c a.exe
    real    0m0.718s
    835584 a.exe

However if I do not strip the executable, the compile time nearly triples and
the size increases 10 fold:

    $ time x86_64-w64-mingw32-g++ -static-libstdc++ stoi.cpp; wc -c a.exe
    real    0m2.340s
    11695660 a.exe

Compare with Msys2, where the time only increases 17%, and the size only
increases 3 fold:

    # time x86_64-w64-mingw32-g++ -static-libstdc++ stoi.cpp; wc -c a.exe
    real    0m0.842s
    3001138 a.exe


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANNOUNCEMENT] [Updated] mingw64-{i686,x86_64}-gcc-7.3.0-1 (Test)
  2018-08-21 15:16 ` Steven Penny
@ 2018-08-24 19:06   ` JonY
  2018-08-25  4:55     ` Steven Penny
  0 siblings, 1 reply; 8+ messages in thread
From: JonY @ 2018-08-24 19:06 UTC (permalink / raw)
  To: cygwin


[-- Attachment #1.1: Type: text/plain, Size: 1643 bytes --]

On 08/21/2018 03:18 AM, Steven Penny wrote:
> On Wed, 18 Jul 2018 10:38:22, JonY wrote:
>> The mingw-w64 cross compilers have been updated:
>>
>> * mingw64-i686-gcc-7.3.0-1
>> * mingw64-x86_64-gcc-7.3.0-1
>>
>> It is available under the test version.
> 
> http://cygwin.com/ml/cygwin/2018-07/msg00168.html
> 
> Using this file:
> 
>    $ cat stoi.cpp
>    #include <iostream>
>    #include <string>
>    main() {
>      std::string q = "23456";
>      std::cout << std::stoi(q) << std::endl;
>    }
> 
> I have noticed an issue with the Cygwin "x86_64-w64-mingw32-g++"
> compiler. If I
> strip the executable, all is well:
> 
>    $ time x86_64-w64-mingw32-g++ -s -static-libstdc++ stoi.cpp; wc -c a.exe
>    real    0m0.889s
>    845824 a.exe
> 
> Same with Msys2:
> 
>    # time x86_64-w64-mingw32-g++ -s -static-libstdc++ stoi.cpp; wc -c a.exe
>    real    0m0.718s
>    835584 a.exe
> 
> However if I do not strip the executable, the compile time nearly
> triples and
> the size increases 10 fold:
> 
>    $ time x86_64-w64-mingw32-g++ -static-libstdc++ stoi.cpp; wc -c a.exe
>    real    0m2.340s
>    11695660 a.exe
> 
> Compare with Msys2, where the time only increases 17%, and the size only
> increases 3 fold:
> 
>    # time x86_64-w64-mingw32-g++ -static-libstdc++ stoi.cpp; wc -c a.exe
>    real    0m0.842s
>    3001138 a.exe


Can you try breaking it down by phases?
1. Preprocessor phase with -E -o file.ii
2. Compile phase (compile output from phase 1) with -c
3. Link phase, point gcc to the output from phase 2.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANNOUNCEMENT] [Updated] mingw64-{i686,x86_64}-gcc-7.3.0-1 (Test)
  2018-08-24 19:06   ` JonY
@ 2018-08-25  4:55     ` Steven Penny
  2018-08-26 14:04       ` JonY
  2018-08-26 15:17       ` Hans-Bernhard Bröker
  0 siblings, 2 replies; 8+ messages in thread
From: Steven Penny @ 2018-08-25  4:55 UTC (permalink / raw)
  To: cygwin

On Fri, 24 Aug 2018 10:11:42, JonY wrote:
> Can you try breaking it down by phases?
> 1. Preprocessor phase with -E -o file.ii

    $ time x86_64-w64-mingw32-g++ -E -o file.ii stoi.cpp; wc -c file.ii
    real    0m0.172s
    719550 file.ii

> 2. Compile phase (compile output from phase 1) with -c

    $ time x86_64-w64-mingw32-g++ -c file.ii; wc -c file.o
    real    0m0.312s
    7368 file.o

> 3. Link phase, point gcc to the output from phase 2.

    $ time x86_64-w64-mingw32-g++ -static file.o; wc -c a.exe
    real    0m1.950s
    11906797 a.exe

Also it might be worth noting the starting point - for some reason Cygwin is 4
times larger than Msys2?

    $ wc -c /lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a
    22446354 /lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a

    $ wc -c mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/libstdc++.a
    5597192 mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/libstdc++.a


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANNOUNCEMENT] [Updated] mingw64-{i686,x86_64}-gcc-7.3.0-1 (Test)
  2018-08-25  4:55     ` Steven Penny
@ 2018-08-26 14:04       ` JonY
  2018-08-27  3:32         ` Steven Penny
  2018-08-26 15:17       ` Hans-Bernhard Bröker
  1 sibling, 1 reply; 8+ messages in thread
From: JonY @ 2018-08-26 14:04 UTC (permalink / raw)
  To: cygwin


[-- Attachment #1.1: Type: text/plain, Size: 1207 bytes --]

On 08/25/2018 12:13 AM, Steven Penny wrote:
> On Fri, 24 Aug 2018 10:11:42, JonY wrote:
>> Can you try breaking it down by phases?
>> 1. Preprocessor phase with -E -o file.ii
> 
>    $ time x86_64-w64-mingw32-g++ -E -o file.ii stoi.cpp; wc -c file.ii
>    real    0m0.172s
>    719550 file.ii
> 
>> 2. Compile phase (compile output from phase 1) with -c
> 
>    $ time x86_64-w64-mingw32-g++ -c file.ii; wc -c file.o
>    real    0m0.312s
>    7368 file.o
> 
>> 3. Link phase, point gcc to the output from phase 2.
> 
>    $ time x86_64-w64-mingw32-g++ -static file.o; wc -c a.exe
>    real    0m1.950s
>    11906797 a.exe
> 
> Also it might be worth noting the starting point - for some reason
> Cygwin is 4
> times larger than Msys2?
> 
>    $ wc -c /lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a
>    22446354 /lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a
> 
>    $ wc -c mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/libstdc++.a
>    5597192 mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/libstdc++.a
> 

Can you roll back to the previous x86_64-w64-binutils and find out if it
makes a difference?

Other than that, I'm quite out of ideas.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANNOUNCEMENT] [Updated] mingw64-{i686,x86_64}-gcc-7.3.0-1 (Test)
  2018-08-25  4:55     ` Steven Penny
  2018-08-26 14:04       ` JonY
@ 2018-08-26 15:17       ` Hans-Bernhard Bröker
  2018-08-26 21:41         ` Steven Penny
  1 sibling, 1 reply; 8+ messages in thread
From: Hans-Bernhard Bröker @ 2018-08-26 15:17 UTC (permalink / raw)
  To: cygwin

Am 25.08.2018 um 02:13 schrieb Steven Penny:
> On Fri, 24 Aug 2018 10:11:42, JonY wrote:

>     $ wc -c /lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a
>     22446354 /lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a
> 
>     $ wc -c mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/libstdc++.a
>     5597192 mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/libstdc++.a

And it is of course totally out of the question that this difference 
could be caused by these being different major versions of GCC, right?

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANNOUNCEMENT] [Updated] mingw64-{i686,x86_64}-gcc-7.3.0-1 (Test)
  2018-08-26 15:17       ` Hans-Bernhard Bröker
@ 2018-08-26 21:41         ` Steven Penny
  0 siblings, 0 replies; 8+ messages in thread
From: Steven Penny @ 2018-08-26 21:41 UTC (permalink / raw)
  To: cygwin

On Sun, 26 Aug 2018 15:07:06, =?UTF-8?Q?Hans-Bernhard_Br=c3=b6ker?= wrote:
> Am 25.08.2018 um 02:13 schrieb Steven Penny:
>> On Fri, 24 Aug 2018 10:11:42, JonY wrote:
>
>>     $ wc -c /lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a
>>     22446354 /lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a
>> 
>>     $ wc -c mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/libstdc++.a
>>     5597192 mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/libstdc++.a
>
> And it is of course totally out of the question that this difference 
> could be caused by these being different major versions of GCC, right?

next time before you post such a comment on a public forum, you might actually
check that you know what youre talking about beforehand.

    $ wc -c mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a
    5596296 mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/libstdc++.a

cheers


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ANNOUNCEMENT] [Updated] mingw64-{i686,x86_64}-gcc-7.3.0-1 (Test)
  2018-08-26 14:04       ` JonY
@ 2018-08-27  3:32         ` Steven Penny
  0 siblings, 0 replies; 8+ messages in thread
From: Steven Penny @ 2018-08-27  3:32 UTC (permalink / raw)
  To: cygwin

On Sun, 26 Aug 2018 12:51:40, JonY wrote:
> Can you roll back to the previous x86_64-w64-binutils and find out if it
> makes a difference?
>
> Other than that, I'm quite out of ideas.

Using this file:

    $ cat stoi.cpp
    #include <iostream>
    #include <string>
    main() {
      std::cout << std::stoi("3.14159") << std::endl;
    }

and these:

    mingw64-x86_64-gcc-g++ 7.3.0
    mingw64-x86_64-gcc-core 7.3.0

and mingw64-x86_64-binutils 2.29.1:

    $ time x86_64-w64-mingw32-g++ -static stoi.cpp; wc -c a.exe
    real    0m2.337s
    11577536 a.exe

now with mingw64-x86_64-binutils 2.28.1:

    $ time x86_64-w64-mingw32-g++ -static stoi.cpp; wc -c a.exe
    real    0m2.300s
    11577470 a.exe

now with mingw64-x86_64-binutils 2.25.0:

    $ time x86_64-w64-mingw32-g++ -static stoi.cpp; wc -c a.exe
    real    0m2.350s
    11577536 a.exe

Going back to my original theory - it seems something is wrong with
"libstdc++.a", and has been for some time. Here a summation of the Cygwin
versions:

    Name: libstdc++.a
    Name: usr\lib\gcc\x86_64-w64-mingw32\7.3.0\
    Size: 22 446 354

    Name: libstdc++.a
    Name: usr\lib\gcc\x86_64-w64-mingw32\6.4.0\
    Size: 22 066 330

    Name: libstdc++.a
    Name: usr\lib\gcc\x86_64-w64-mingw32\6.3.0\
    Size: 22 034 356

    Name: libstdc++.a
    Name: usr\lib\gcc\x86_64-w64-mingw32\5.4.0\
    Size: 20 719 186

Compare this with Msys2:

    Name: libstdc++.a
    Name: mingw64\lib\gcc\x86_64-w64-mingw32\7.3.0\
    Size: 5 596 296

or with Debian:

    Name: .\usr\lib\gcc\x86_64-w64-mingw32\7.3-posix\
    Name: libstdc++.a
    Size: 5 093 564

Or Ubuntu:

    Name: .\usr\lib\gcc\x86_64-w64-mingw32\7.3-posix\
    Name: libstdc++.a
    Size: 5 085 236

References:

- http://mirror.rit.edu/cygwin/x86_64/release/mingw64-x86_64-gcc/mingw64-x86_64-gcc-g%2b%2b
- http://packages.debian.org/buster/g++-mingw-w64-x86-64
- http://packages.ubuntu.com/hu/bionic/g++-mingw-w64-x86-64
- http://repo.msys2.org/mingw/x86_64


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-08-26 15:17 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-18 23:52 [ANNOUNCEMENT] [Updated] mingw64-{i686,x86_64}-gcc-7.3.0-1 (Test) JonY
2018-08-21 15:16 ` Steven Penny
2018-08-24 19:06   ` JonY
2018-08-25  4:55     ` Steven Penny
2018-08-26 14:04       ` JonY
2018-08-27  3:32         ` Steven Penny
2018-08-26 15:17       ` Hans-Bernhard Bröker
2018-08-26 21:41         ` Steven Penny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).