On MSVC, with libunistring installed as a shared library, I get this link error:
/home/bruno/msvc/compile cl -nologo -MD -L/usr/local/msvc64/lib -o test-categ_none.exe unictype/test-categ_none.obj libtests.a ../gllib/libgnu.a libtests.a ../gllib/libgnu.a libtests.a -lunistring test-categ_none.obj : error LNK2019: unresolved external symbol _UC_CATEGORY_NONE referenced in function main test-categ_none.exe : fatal error LNK1120: 1 unresolved externals make[4]: *** [Makefile:16335: test-categ_none.exe] Error 2 The reason is that _UC_CATEGORY_NONE is not a public API of the shared library and therefore not exported. The simplest fix is to disable the test. 2022-09-04 Bruno Haible <br...@clisp.org> unictype/category-none tests: Fix a link error on MSVC. * tests/unictype/test-categ_none.c (main): Disable the test on MSVC. diff --git a/tests/unictype/test-categ_none.c b/tests/unictype/test-categ_none.c index 4615fb162b..913011a5e4 100644 --- a/tests/unictype/test-categ_none.c +++ b/tests/unictype/test-categ_none.c @@ -25,11 +25,18 @@ int main () { + /* This test cannot be compiled on platforms on which _UC_CATEGORY_NONE + is not exported from the libunistring shared library. For now, + MSVC is the only platform where this is a problem. */ +#if !defined _MSC_VER + uc_general_category_t ct = _UC_CATEGORY_NONE; unsigned int c; for (c = 0; c < 0x110000; c++) ASSERT (!uc_is_general_category (c, ct)); +#endif + return 0; }