https://bugs.exim.org/show_bug.cgi?id=2589
Bug ID: 2589 Summary: CMake: strerror not detected properly on WinXX Product: PCRE Version: 10.35 (PCRE2) Hardware: x86 OS: Windows Status: NEW Severity: bug Priority: medium Component: Code Assignee: p...@hermes.cam.ac.uk Reporter: scooter....@gmail.com CC: pcre-dev@exim.org CMake does not detect strerror correctly on Windows and HAVE_STRERROR isn't set in config.h. This results in "inconsistent DLL linkage" errors at link time when pcre2test.c provides the stub. The problem is the way that the function is detected in CMakeLists.txt. Below is the suggested way to fix it [tested] (and secure_getenv and memmove): ---- CHECK_FUNCTION_EXISTS(bcopy HAVE_BCOPY) CHECK_FUNCTION_EXISTS(memfd_create HAVE_MEMFD_CREATE) ## CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE) ## CHECK_FUNCTION_EXISTS(secure_getenv HAVE_SECURE_GETENV) ## CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR) CHECK_SYMBOL_EXISTS(memmove "string.h" HAVE_MEMMOVE) CHECK_SYMBOL_EXISTS(secure_getenv "stdlib.h" HAVE_SECURE_GETENV) CHECK_SYMBOL_EXISTS(strerror "string.h" HAVE_STRERROR) ---- CMake's documentation suggests using CHECK_SYMBOL_EXISTS over CHECK_FUNCTION_EXIST. Moreover, these functions come from specific header files, which need to be specified (and, thankfully, are the same on both the Linux and WinXX platforms.) -- You are receiving this mail because: You are on the CC list for the bug. -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev