[cmake-developers] [CMake 0011760]: Change default link order for mingw
Mantis Bug Tracker
mantis at public.kitware.com
Tue Jan 25 21:44:10 EST 2011
The following issue has been SUBMITTED.
======================================================================
http://public.kitware.com/Bug/view.php?id=11760
======================================================================
Reported By: Dongsheng Song
Assigned To:
======================================================================
Project: CMake
Issue ID: 11760
Category: CMake
Reproducibility: always
Severity: minor
Priority: normal
Status: new
======================================================================
Date Submitted: 2011-01-25 21:44 EST
Last Modified: 2011-01-25 21:44 EST
======================================================================
Summary: Change default link order for mingw
Description:
Due to kernel32 exporting many of the same functions as advapi32 in Win 7 but
not in prior Windows versions, executables that link to those functions in
kernel32 cause entry point errors on older Windows releases.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45452
http://gcc.gnu.org/viewcvs?view=revision&revision=163738
In gcc trunk, the default library setting is:
t-mingw32:SHLIB_LC = -lmingwthrd -lmingw32 -lmingwex -lmoldname -lmsvcrt
-ladvapi32 -lshell32 -luser32 -lkernel32
t-mingw-w32:SHLIB_LC = -lmingwthrd -lmingw32 -lmingwex -lmoldname -lmsvcrt
-ladvapi32 -lshell32 -luser32 -lkernel32
t-mingw-w64:SHLIB_LC = -lmingwthrd -lmingw32 -lmingwex -lmoldname -lmsvcrt
-ladvapi32 -lshell32 -luser32 -lkernel32
In share\cmake-2.8\Modules\Platform\Windows-GNU.cmake, the default library
setting is:
set(CMAKE_C_STANDARD_LIBRARIES_INIT "-lkernel32 -luser32 -lgdi32 -lwinspool
-lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32")
I suggest use empty list:
set(CMAKE_C_STANDARD_LIBRARIES_INIT "")
Or for compatibility:
set(CMAKE_C_STANDARD_LIBRARIES_INIT "-luuid -lgdi32 -lcomdlg32 -lwinspool
-lole32 -loleaut32")
Or full list with compatibility:
set(CMAKE_C_STANDARD_LIBRARIES_INIT "-lmingwthrd -lmingw32 -lmingwex -lmoldname
-lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -luuid -lgdi32 -lcomdlg32
-lwinspool -lole32 -loleaut32")
Steps to Reproduce:
See description.
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2011-01-25 21:44 Dongsheng Song New Issue
======================================================================
More information about the cmake-developers
mailing list