When using GNU binutils, the function aliases won't work transitively,
i.e. the strcmpi == _strcmpi alias in msvcrt-common.def.in won't
use the second alias of _strcmpi == _stricmp in ucrtbase.def.in but
will instead end up with an import of the nonexistent function
_strcmpi. Therefore add an ifdef in msvcrt-common.def and add two
aliases in ucrtbase.def.in.

Signed-off-by: Martin Storsjö <[email protected]>
---
 mingw-w64-crt/def-include/msvcrt-common.def.in | 2 ++
 mingw-w64-crt/lib-common/ucrtbase.def.in       | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/mingw-w64-crt/def-include/msvcrt-common.def.in 
b/mingw-w64-crt/def-include/msvcrt-common.def.in
index c76bc6a..364e440 100644
--- a/mingw-w64-crt/def-include/msvcrt-common.def.in
+++ b/mingw-w64-crt/def-include/msvcrt-common.def.in
@@ -79,7 +79,9 @@ ADD_UNDERSCORE(spawnve)
 ADD_UNDERSCORE(spawnvp)
 ADD_UNDERSCORE(spawnvpe)
 ;stat)
+#ifndef UCRTBASE
 ADD_UNDERSCORE(strcmpi)
+#endif
 ADD_UNDERSCORE(strdup)
 ADD_UNDERSCORE(stricmp)
 ADD_UNDERSCORE(stricoll)
diff --git a/mingw-w64-crt/lib-common/ucrtbase.def.in 
b/mingw-w64-crt/lib-common/ucrtbase.def.in
index 8ca560a..4ca4e92 100644
--- a/mingw-w64-crt/lib-common/ucrtbase.def.in
+++ b/mingw-w64-crt/lib-common/ucrtbase.def.in
@@ -1944,6 +1944,7 @@ _stat64
 _stat64i32
 _statusfp
 F_I386(_statusfp2)
+_strcmpi == _stricmp
 _strcoll_l
 _strdate
 _strdate_s
@@ -2529,6 +2530,7 @@ strcat
 strcat_s
 strchr
 strcmp
+strcmpi == _stricmp
 strcoll
 strcpy
 strcpy_s
-- 
2.7.4


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to