Alex Ionescu wrote:
Arg this is so stupid! Now people have to know that
mingw_common
imports kernel32, and otherwise they'll be confused?
On the other hand, we already had numerous Win32 modules missing the
reference to kernel32. (e.g. all D3D modules imported from Wine)
I just wanted to create consistence here and avoid the duplicate reference
to kernel32.
I'm also open for the other way round, namely all modules referencing their
needed libraries and the CRT/mingw_common not adding any.
But this would make us depend on LD's --start-group and --end-group
parameters to work around the different linking order. For now, I only
planned to use these ones starting with RosBE 1.5 because of a special
linking issue (see my code patches at bug 4810).
Are you going to go remove "user32.dll"
from anyone that imports "winsock" now? And remove comctl32.dll is
msi.dll is already there?
No, this change was exclusively related to kernel32, because no Win32 module
can get away without linking it.
I thought this might be easy to understand for ROS devs, because the CRT is
also implicitly linked and obviously needs kernel32.
Why can't rbuild do something sensible like MSVC
does, and
automatically import the core win32 libraries if the project type is
"Win32 binary", unless someone uses $(NO_INHERIT) and/or
/NODEFAULTLIBS ?!?
Well, if you already criticize my change of automatically importing one
library, I cannot see how your idea is any better.
It would require every developer to know about the automatically imported
libraries by MSVC and confuse the rest.
Best regards,
Colin