On 8/18/2016 11:27 PM, David Wohlferd wrote: > My next patch is very small, but it affects a bunch of code. Ponder > it a bit before approving. The goal is to fix all the warnings like > this: > > warning: '_unlock_file' redeclared without dllimport attribute: > previous dllimport ignored [-Wattributes] > > This occurs because our headers use: > > _CRTIMP void __cdecl _unlock_file(FILE *_File); > > and _CRTIMP is always defined like this: > > #ifndef _CRTIMP > #define _CRTIMP __declspec(dllimport) > #endif > > If we were *only* providing a mapping to the function in a DLL, this > would be fine. But we actually create an implementation of this > function (mingw-w64-crt/stdio/mingw_lock.c). And the implementation > uses the same header. Since it makes no sense to have an > implementation tagged as dllimport, I assert that when building > mingw-w64, _CRTIMP should always be defined as blank (attached).
Below is the list of functions that have the problem. Note most are in secapi. .../mingw-w64-crt/misc/invalid_parameter_handler.c:21:36: warning: '_get_invalid_parameter_handler' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/misc/invalid_parameter_handler.c:22:36: warning: '_set_invalid_parameter_handler' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/misc/purecall.c:10:27: warning: '_set_purecall_handler' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_controlfp_s.c:14:17: warning: '_controlfp_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_ctime32_s.c:7:17: warning: '_localtime32_s' redeclared without dllimport attribute after being referenced with dll linkage .../mingw-w64-crt/secapi/_ctime32_s.c:8:17: warning: 'asctime_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_ctime32_s.c:9:17: warning: '_ctime32_s' redeclared without dllimport attribute after being referenced with dll linkage .../mingw-w64-crt/secapi/_ctime64_s.c:7:17: warning: '_localtime64_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_ctime64_s.c:8:17: warning: 'asctime_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_gmtime32_s.c:8:17: warning: '_gmtime32_s' redeclared without dllimport attribute after being referenced with dll linkage .../mingw-w64-crt/secapi/_gmtime64_s.c:8:17: warning: '_gmtime64_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_localtime32_s.c:8:17: warning: '_localtime32_s' redeclared without dllimport attribute after being referenced with dll linkage .../mingw-w64-crt/secapi/_localtime64_s.c:8:17: warning: '_localtime64_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_sopen_s.c:6:17: warning: '_sopen_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_wasctime_s.c:7:17: warning: '_wasctime_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_wctime32_s.c:7:17: warning: '_localtime32_s' redeclared without dllimport attribute after being referenced with dll linkage .../mingw-w64-crt/secapi/_wctime32_s.c:8:17: warning: '_wasctime_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_wctime32_s.c:9:17: warning: '_wctime32_s' redeclared without dllimport attribute after being referenced with dll linkage .../mingw-w64-crt/secapi/_wctime64_s.c:7:17: warning: '_localtime64_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_wctime64_s.c:8:17: warning: '_wasctime_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/_wctime64_s.c:9:17: warning: '_wctime64_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/asctime_s.c:7:17: warning: 'asctime_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/memcpy_s.c:6:17: warning: 'memcpy_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/memmove_s.c:6:17: warning: 'memmove_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/secapi/strerror_s.c:7:17: warning: 'strerror_s' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/stdio/mingw_lock.c:35:14: warning: '_lock_file' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] .../mingw-w64-crt/stdio/mingw_lock.c:75:14: warning: '_unlock_file' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] dw ------------------------------------------------------------------------------ _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
