winlibs_mingw
winlibs_mingw copied to clipboard
Winlibs is two times slower than MSYS2
I am using the VS code editor with C++ extension. I have tested the following g++ compilers:
- g++ from GCC + MinGW-w64 (UCRT version) downloaded from winlibs
- g++ from UCRT64 downloaded from MSYS2 (package mingw-w64-ucrt-x86_64-gcc) i compiled the same code, the winlibs version compiled almost twice as slow Why such difference?
I have the impression it's slower too.
I will try to make a build without the following linker flags to see if it makes a difference:
-Wl,--dynamicbase -Wl,--high-entropy-va -Wl,--nxcompat -Wl,--tsaware
Just a question: what exactly is slow?
- Compiling a single source (C and/or C++)?
- Linking?
- Invoking many commands to compile and link?
I have a small project: 1 *.rc file and 2 *.cpp files (Windows desktop application using C++, WinAPI and GDI+)
At first, I invoke windres.exe with VS code json args:
"args": [
"-J", "rc", "-O", "coff", "-i", "${workspaceFolder}\*.rc", "-o", "${workspaceFolder}\resources.res" ]
then g++.exe
"args": [
"${workspaceFolder}\.cpp", "${workspaceFolder}\.res", "-o", "${workspaceFolder}\a.exe", "-fdiagnostics-color=always", "-Wall", "-Wextra", "-pedantic-errors", "-O2", "-s", "-static", "-mwindows", "-lkernel32", "-luser32", "-lgdi32", "-lgdiplus", "-lcomctl32" ]
But I think, g++ compiling is slow, not windres.exe. Unfortunately, there is no way to check right now. The fact that winlibs is slow I noticed a month ago.
Le mar. 23 mai 2023 20:49, Brecht Sanders @.***> a écrit :
Just a question: what exactly is slow?
- Compiling a single source (C and/or C++)?
- Linking?
- Invoking many commands to compile and link?
— Reply to this email directly, view it on GitHub https://github.com/brechtsanders/winlibs_mingw/issues/152#issuecomment-1559966668, or unsubscribe https://github.com/notifications/unsubscribe-auth/A56USXFPFZKRBGMXG64FFETXHUBFBANCNFSM6AAAAAAYL47MEA . You are receiving this because you authored the thread.Message ID: @.***>
I also feel it's mostly g++ being slow. In the past there were issues with precompiled headers, maybe that's related.
The build without the flags mentioned earlier is ready (only MSVCRT build for now): https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-11.0.0-msvcrt-r2
Can you try if that makes any difference in speed for you?
I failed to do what you asked.
I got an error while compiling with [winlibs-x86_64-mcf-seh-gcc-13.1.0-mingw-w64msvcrt-11.0.0-r2] toolchain: g++.exe: fatal error: cannot execute ...x86_64-w64-mingw32/bin/as.exe
At the same time, I was able to compare the project building times of the other two ucrt compilers:
10 s -> mingw-w64-ucrt-x86_64-gcc from MSYS2
30 s -> winlibs-x86_64-mcf-seh-gcc-13.1.0-mingw-w64ucrt-11.0.0-r1
Le jeu. 25 mai 2023 11:27, Brecht Sanders @.***> a écrit :
I also feel it's mostly g++ being slow. In the past there were issues with precompiled headers, maybe that's related.
The build without the flags mentioned earlier is ready (only MSVCRT build for now):
https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-11.0.0-msvcrt-r2
Can you try if that makes any difference in speed for you?
— Reply to this email directly, view it on GitHub https://github.com/brechtsanders/winlibs_mingw/issues/152#issuecomment-1562581607, or unsubscribe https://github.com/notifications/unsubscribe-auth/A56USXCQDFVWPFDW7MZIIALXH4QZBANCNFSM6AAAAAAYL47MEA . You are receiving this because you authored the thread.Message ID: @.***>
I'm stress testing this latest release now and as.exe works find.
Your error may indicate there is something in PATH
that makes it load dependencies from the wrong place.
That may even be the cause of your issues.
When building with winlibs can you try to add mingw64/bin
from within the folder where you extracted winlibs are added at the beginning of PATH
?
Hi,
There is a problem with this release, there are several void EXEs (all bytes are 0):
mingw\bin\windmc.exe mingw\bin\windres.exe
And all the files in mingw64\x86_64-w64-mingw32\bin.
winlibs-x86_64-mcf-seh-gcc-13.1.0-mingw-w64msvcrt-11.0.0-r2.7z
I'm stress testing this latest release now and as.exe works find.
Your error may indicate there is something in
PATH
that makes it load dependencies from the wrong place.That may even be the cause of your issues.
When building with winlibs can you try to add
mingw64/bin
from within the folder where you extracted winlibs are added at the beginning ofPATH
?
You are right, there is an issue with the 64-bit toolchain in release https://github.com/brechtsanders/winlibs_mingw/releases/13.1.0-11.0.0-msvcrt-r2/
Quite possibly my antivirus ate some files, but I need to investigate.
Since the slowness is with g++ in particular I will try to build with --disable-libstdcxx-backtrace
instead of --enable-libstdcxx-backtrace
.
libbacktrace hasn't released an actual release version, so using it may have been a bad idea.
Ok, please try this release: https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-11.0.0-msvcrt-r3
I confirm that the error is gone, but compilation is still slow. 30 sec : winlibs gcc-13.1.0-mingw-w64msvcrt-11.0.0-r3 30 sec : winlibs gcc-13.1.0-mingw-w64ucrt-11.0.0-r3 10 sec : msys2 mingw-w64-ucrt-x86_64-gcc
Le sam. 27 mai 2023 15:25, Brecht Sanders @.***> a écrit :
Ok, please try this release: https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-11.0.0-msvcrt-r3
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.[image]Message ID: @.***>
I confirm that the error is gone, but compilation is still slow. 30 sec : winlibs gcc-13.1.0-mingw-w64msvcrt-11.0.0-r3 30 sec : winlibs gcc-13.1.0-mingw-w64ucrt-11.0.0-r3 10 sec : msys2 mingw-w64-ucrt-x86_64-gcc
@brechtsanders
¿Are GCC and Binutils binaries from winlibs being built without optimization flags at all?
According to https://github.com/msys2/MSYS2-packages/blob/master/pacman/makepkg_mingw.conf#L32, mingw packages from msys2 are built with some optimization flags passed to both CFLAGS
and CXXFLAGS
:
-march=nocona -msahf -mtune=generic -O2
(MINGW64 case)
-march=pentium4 -mtune=generic -O2
(MINGW32 case)
Can you try one of the following builds which I made with those optimization flags?
- https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-11.0.0-ucrt-r4b
- https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-11.0.0-msvcrt-r4b
Can you try one of the following builds which I made with those optimization flags?
* https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-11.0.0-ucrt-r4b * https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-11.0.0-msvcrt-r4b
I have done some compile time tests with both 32-bit and 64-bit builds of 13.1.0-11.0.0-msvcrt-r4b
release and 13.1.0posix-16.0.3-11.0.0-msvcrt-r1
release. Here are the results:
winlibs-x86_64-posix-seh-gcc-13.1.0-mingw-w64msvcrt-11.0.0-r1
F:\msys64\usr\bin\time.exe -p g++ -c -oproject.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow project.cpp
real 13.65
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omain.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow main.cpp
real 3.51
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omakefile.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators\makefile.cpp
real 30.23
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -ounixmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators\unix\unixmake.cpp
real 16.36
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -ounixmake2.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators\unix\unixmake2.cpp
real 40.63
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -oborland_bmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/borland_bmake.cpp
real 16.77
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omingw_make.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/mingw_make.cpp
real 21.47
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_nmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/msvc_nmake.cpp
real 19.89
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_dsp.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/msvc_dsp.cpp
real 24.98
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_vcproj.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/msvc_vcproj.cpp
real 17.13
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -ooption.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow option.cpp
real 6.18
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -owinmakefile.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/winmakefile.cpp
real 10.46
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -oprojectgenerator.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/projectgenerator.cpp
real 10.70
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -ometrowerks_xml.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/mac/metrowerks_xml.cpp
real 15.01
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -opbuilder_pbx.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/mac/pbuilder_pbx.cpp
real 24.28
user 0.01
sys 0.00
winlibs-x86_64-posix-seh-gcc-13.1.0-mingw-w64msvcrt-11.0.0-r4b
F:\msys64\usr\bin\time.exe -p g++ -c -oproject.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow project.cpp
real 4.26
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omain.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow main.cpp
real 1.14
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omakefile.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators\makefile.cpp
real 9.63
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -ounixmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators\unix\unixmake.cpp
real 5.44
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -ounixmake2.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators\unix\unixmake2.cpp
real 14.54
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -oborland_bmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/borland_bmake.cpp
real 5.62
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omingw_make.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/mingw_make.cpp
real 7.12
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_nmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/msvc_nmake.cpp
real 6.78
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_dsp.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/msvc_dsp.cpp
real 8.83
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_vcproj.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/msvc_vcproj.cpp
real 5.26
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -ooption.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow option.cpp
real 1.73
user 0.01
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -owinmakefile.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/winmakefile.cpp
real 2.84
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -oprojectgenerator.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/projectgenerator.cpp
real 3.29
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -ometrowerks_xml.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/mac/metrowerks_xml.cpp
real 4.83
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -opbuilder_pbx.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/mac/pbuilder_pbx.cpp
real 8.75
user 0.00
sys 0.01
winlibs-i686-posix-dwarf-gcc-13.1.0-mingw-w64msvcrt-11.0.0-r1
F:\msys64\usr\bin\time.exe -p g++ -c -oproject.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse project.cpp
real 13.43
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omain.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse main.cpp
real 3.44
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omakefile.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators\makefile.cpp
real 29.94
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -ounixmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators\unix\unixmake.cpp
real 16.16
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -ounixmake2.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators\unix\unixmake2.cpp
real 39.61
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -oborland_bmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/borland_bmake.cpp
real 15.60
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omingw_make.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/mingw_make.cpp
real 19.17
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_nmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/msvc_nmake.cpp
real 18.47
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_dsp.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/msvc_dsp.cpp
real 24.50
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_vcproj.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/msvc_vcproj.cpp
real 16.49
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -ooption.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse option.cpp
real 5.23
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -owinmakefile.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/winmakefile.cpp
real 9.02
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -oprojectgenerator.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/projectgenerator.cpp
real 9.81
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -ometrowerks_xml.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/mac/metrowerks_xml.cpp
real 14.65
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -opbuilder_pbx.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/mac/pbuilder_pbx.cpp
real 23.43
user 0.00
sys 0.01
winlibs-i686-posix-dwarf-gcc-13.1.0-mingw-w64msvcrt-11.0.0-r4b
F:\msys64\usr\bin\time.exe -p g++ -c -oproject.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse project.cpp
real 4.13
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omain.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse main.cpp
real 1.15
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omakefile.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators\makefile.cpp
real 9.26
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -ounixmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators\unix\unixmake.cpp
real 5.17
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -ounixmake2.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators\unix\unixmake2.cpp
real 13.00
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -oborland_bmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/borland_bmake.cpp
real 5.07
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omingw_make.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/mingw_make.cpp
real 6.24
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_nmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/msvc_nmake.cpp
real 6.04
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_dsp.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/msvc_dsp.cpp
real 8.10
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_vcproj.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/msvc_vcproj.cpp
real 5.21
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -ooption.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse option.cpp
real 1.70
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -owinmakefile.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/win32/winmakefile.cpp
real 2.74
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -oprojectgenerator.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/projectgenerator.cpp
real 3.05
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -ometrowerks_xml.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/mac/metrowerks_xml.cpp
real 4.53
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -opbuilder_pbx.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -fno-omit-frame-pointer -march=i686 -mtune=generic -msse2 -mfpmath=sse generators/mac/pbuilder_pbx.cpp
real 7.90
user 0.00
sys 0.00
In both 32-bit and 64-bit tests, compilation times are ~3x faster when using the optimized GCC binaries.
According to the release notes, only GCC was built with optimization flags. I would expect some additional speed gains once Binutils gets built with optimization flags as both assembler (as
) and linker (ld
) come from Binutils.
As a side note, you should use for any future builds the linker flag -Wl,--no-insert-timestamp
in order to make binaries more deterministic. I tell that as Binutils binaries from both 13.1.0-11.0.0-msvcrt-r4b
and 13.1.0posix-16.0.3-11.0.0-msvcrt-r1
releases have the same file size, differing only in their PE timestamp.
What exactly is the benefit of the -Wl,--no-insert-timestamp
flag?
Are your measured speeds better/same/worse than MSYS2's gcc?
What exactly is the benefit of the
-Wl,--no-insert-timestamp
flag?
The -Wl,--no-insert-timestamp
linker flag is useful to get reproducible builds on Windows.
Useful to avoid situations such as the Binutils binaries from both 13.1.0-11.0.0-msvcrt-r4b
and 13.1.0posix-16.0.3-11.0.0-msvcrt-r1
releases differing only in their PE file header date/time stamp.
Are your measured speeds better/same/worse than MSYS2's gcc?
Here is the compile time test done with the 64-bit msvcrt version of MSYS2's gcc (GCC 13.1.0 - Binutils 2.40 - Mingw-w64 11.0.0)
mingw-w64-x86_64-gcc
F:\msys64\usr\bin\time.exe -p g++ -c -oproject.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow project.cpp
real 4.47
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omain.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow main.cpp
real 1.21
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omakefile.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators\makefile.cpp
real 9.94
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -ounixmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators\unix\unixmake.cpp
real 5.60
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -ounixmake2.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators\unix\unixmake2.cpp
real 15.09
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -oborland_bmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/borland_bmake.cpp
real 5.64
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omingw_make.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/mingw_make.cpp
real 7.23
user 0.00
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_nmake.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/msvc_nmake.cpp
real 7.00
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_dsp.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/msvc_dsp.cpp
real 9.23
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -omsvc_vcproj.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/msvc_vcproj.cpp
real 5.31
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -ooption.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow option.cpp
real 1.83
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -owinmakefile.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/win32/winmakefile.cpp
real 2.95
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -oprojectgenerator.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/projectgenerator.cpp
real 3.37
user 0.01
sys 0.00
F:\msys64\usr\bin\time.exe -p g++ -c -ometrowerks_xml.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/mac/metrowerks_xml.cpp
real 4.94
user 0.00
sys 0.01
F:\msys64\usr\bin\time.exe -p g++ -c -opbuilder_pbx.o -O -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -I..\include -I..\src\tools -I..\mkspecs\win32-g++ -DUNICODE -DQT_NO_TEXTCODEC -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -D_WIN32_WINNT=0x0502 -D__MINGW_USE_VC2005_COMPAT -D_POSIX_THREAD_SAFE_FUNCTIONS=200112L -mwin32 -O2 -march=k8 -mtune=generic -mno-3dnow generators/mac/pbuilder_pbx.cpp
real 9.01
user 0.00
sys 0.01
Looks like that MSYS2's GCC compile speed is similar to WinLibs' optimized GCC build (13.1.0-11.0.0-msvcrt-r4b
release), at least for the 64-bit msvcrt case (winlibs-x86_64-posix-seh-gcc-13.1.0-mingw-w64msvcrt-11.0.0-r4b
)
Okay, the latest builds (my computer has been busy tonight) include linker flag -Wl,--no-insert-timestamp
both when building GCC and binutils:
- https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-16.0.5-11.0.0-msvcrt-r5
- https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-16.0.5-11.0.0-ucrt-r5
Does it do what you expect it to do now?
Okay, the latest builds (my computer has been busy tonight) include linker flag
-Wl,--no-insert-timestamp
both when building GCC and binutils:* https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-16.0.5-11.0.0-msvcrt-r5 * https://github.com/brechtsanders/winlibs_mingw/releases/tag/13.1.0-16.0.5-11.0.0-ucrt-r5
Does it do what you expect it to do now?
I have tested both 32-bit and 64-bit msvcrt builds but gcc and binutils binaries still come with their PE file header date/time stamp set to non-zero (as shown in the Time/Date
field from objdump.exe -p gcc.exe
output) despite gcc -v
output showing -Wl,--no-insert-timestamp
linker flag being passed to LDFLAGS
.
The weird thing is that all other linker flags passed to LDFLAGS
are being applied as expected (see the DllCharacteristics
field from objdump.exe -p gcc.exe
output).
-
gcc.exe -v
output:
Reading specs from F:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/specs
COLLECT_GCC=F:\msys64\mingw64\bin\gcc.exe
COLLECT_LTO_WRAPPER=F:/msys64/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/13.1.0/lto-wrapper.exe
OFFLOAD_TARGET_NAMES=nvptx-none
Target: x86_64-w64-mingw32
Configured with: ../configure --prefix=/R/winlibs64_stage/inst_gcc-13.1.0/share/gcc --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --enable-offload-targets=nvptx-none --with-pkgversion='MinGW-W64 x86_64-msvcrt-posix-seh, built by Brecht Sanders' --with-tune=generic --enable-checking=release --enable-threads=posix --disable-sjlj-exceptions --disable-libunwind-exceptions --disable-serial-configure --disable-bootstrap --enable-host-shared --enable-plugin --disable-default-ssp --disable-rpath --disable-libstdcxx-debug --disable-version-specific-runtime-libs --with-stabs --disable-symvers --enable-languages=c,c++,fortran,lto,objc,obj-c++ --disable-gold --disable-nls --disable-stage1-checking --disable-win32-registry --disable-multilib --enable-ld --enable-libquadmath --enable-libada --enable-libssp --enable-libstdcxx --enable-lto --enable-fully-dynamic-string --enable-libgomp --enable-graphite --enable-mingw-wildcard --enable-libstdcxx-time --enable-libstdcxx-pch --with-mpc=/d/Prog/winlibs64_stage/custombuilt --with-mpfr=/d/Prog/winlibs64_stage/custombuilt --with-gmp=/d/Prog/winlibs64_stage/custombuilt --with-isl=/d/Prog/winlibs64_stage/custombuilt --disable-libstdcxx-backtrace --enable-install-libiberty --enable-__cxa_atexit --without-included-gettext --with-diagnostics-color=auto --enable-clocale=generic --with-libiconv --with-system-zlib --with-build-sysroot=/R/winlibs64_stage/gcc-13.1.0/build_mingw/mingw-w64 CFLAGS='-I/d/Prog/winlibs64_stage/custombuilt/include/libdl-win32 -Wno-int-conversion -march=nocona -msahf -mtune=generic -O2' CXXFLAGS='-Wno-int-conversion -march=nocona -msahf -mtune=generic -O2' LDFLAGS='-pthread -Wl,--no-insert-timestamp -Wl,--dynamicbase -Wl,--high-entropy-va -Wl,--nxcompat -Wl,--tsaware'
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.1.0 (MinGW-W64 x86_64-msvcrt-posix-seh, built by Brecht Sanders)
--
-
objdump.exe -p gcc.exe
output:
F:/msys64/mingw64/bin/gcc.exe: file format pei-x86-64
Characteristics 0x22e
executable
line numbers stripped
symbols stripped
large address aware
debugging information removed
Time/Date Sat Jun 03 15:41:14 2023
Magic 020b (PE32+)
MajorLinkerVersion 2
MinorLinkerVersion 40
SizeOfCode 00000000000b6e00
SizeOfInitializedData 000000000019e400
SizeOfUninitializedData 0000000000004a00
AddressOfEntryPoint 00000000000013f0
BaseOfCode 0000000000001000
ImageBase 0000000140000000
SectionAlignment 00001000
FileAlignment 00000200
MajorOSystemVersion 4
MinorOSystemVersion 0
MajorImageVersion 0
MinorImageVersion 0
MajorSubsystemVersion 5
MinorSubsystemVersion 2
Win32Version 00000000
SizeOfImage 001aa000
SizeOfHeaders 00000400
CheckSum 001aa0d3
Subsystem 00000003 (Windows CUI)
DllCharacteristics 00008160
HIGH_ENTROPY_VA
DYNAMIC_BASE
NX_COMPAT
TERMINAL_SERVICE_AWARE
SizeOfStackReserve 0000000000c00000
SizeOfStackCommit 0000000000001000
SizeOfHeapReserve 0000000000100000
SizeOfHeapCommit 0000000000001000
LoaderFlags 00000000
NumberOfRvaAndSizes 00000010
--
About the compilation speed issue, I have done some more tests by compiling ccache 4.7.4 (2 make jobs, no redis support, tests disabled). Compilation speeds are practically the same in both WinLibs' 64-bit 13.1.0-16.0.5-11.0.0-msvcrt-r5
and Msys2's mingw-w64-x86_64-gcc
cases (~190 seconds), way faster in comparision with the unoptimized gcc/binutils binaries (WinLibs' 64-bit 13.1.0posix-16.0.3-11.0.0-msvcrt-r1
case) where the same compilation takes ~480 seconds.
About -Wl,--no-insert-timestamp
, if it doesn't work than maybe that's a GCC bug?
About ccache: what's the difference with ccache 4.8.1 that I included? I did build it with hiredis support. Should I remove that?
About
-Wl,--no-insert-timestamp
, if it doesn't work than maybe that's a GCC bug?
I tested GCC by building xz-utils (which - like GCC and Binutils - uses autoconf as its buildsystem) with the compiler and linker flags shown at gcc -v
output being passed to the configure script. Both the shared library (liblzma-5.dll) and the xz.exe utility were generated with their PE file header date/time stamp set to zero as expected.
Looks like that this bug lies in GCC/Binutils buildsystem as it is way more complex (e.g. the main configure script launches secondary configure scripts and so on) than the one present in xz-utils which has only one configure script. Either GCC or Binutils build logs can help here.
About ccache: what's the difference with ccache 4.8.1 that I included? I did build it with hiredis support. Should I remove that?
There is no need to remove hiredis support. I opted to omit hiredis (as it is an optional dependency unlike libzstd) as well as the testing stuff from the compilation speed test in order to maintain the number of files to compile as low as possible.
I'm not convinced the CFLAGS/CXXFLAGS/LDFLAGS from building gcc are intended to specify it's default build flags.
What would be a good way to tell gcc to always use specific compiler and/or linker flags, independent of build system?
Could .spec
files be the answer? Or is there another way?
I'd set/export CFLAGS/CXXFLAGS/LDFLAGS as environment variables.
Or, if you're using CMake, I'd try setting "set(CMAKE_C_FLAGS_RELEASE "...")", etc, after the project command in "CMakeLists.txt".
I'm not convinced the CFLAGS/CXXFLAGS/LDFLAGS from building gcc are intended to specify it's default build flags.
What would be a good way to tell gcc to always use specific compiler and/or linker flags, independent of build system?
Could
.spec
files be the answer? Or is there another way?
I build thousands of projects from source, that would be a lot of work.
What I really want to know if we can tell gcc to use certain flags by default, so they don't need to be specified every time.