When building a PE DLL (MinGW), variables exported from a DLL must be explicitly marked as dllimport when using them.
diff --git a/include/wine/unicode.h b/include/wine/unicode.h index d43f359..f10c394 100644 --- a/include/wine/unicode.h +++ b/include/wine/unicode.h
@@ -27,6 +27,10 @@ #include <winbase.h> #include <winnls.h> +#ifndef WINE_UNICODE_API +#define WINE_UNICODE_API DECLSPEC_IMPORT +#endif + /* code page info common to SBCS and DBCS */ struct cp_info { @@ -95,13 +99,13 @@ static inline WCHAR tolowerW( WCHAR ch ) { - extern const WCHAR wine_casemap_lower[]; + extern WINE_UNICODE_API const WCHAR wine_casemap_lower[]; return ch + wine_casemap_lower[wine_casemap_lower[ch >> 8] + (ch & 0xff)]; } static inline WCHAR toupperW( WCHAR ch ) { - extern const WCHAR wine_casemap_upper[]; + extern WINE_UNICODE_API const WCHAR wine_casemap_upper[]; return ch + wine_casemap_upper[wine_casemap_upper[ch >> 8] + (ch & 0xff)]; } @@ -109,7 +113,7 @@ /* and the C2_* type in the high 4 bits */ static inline unsigned short get_char_typeW( WCHAR ch ) { - extern const unsigned short wine_wctype_table[]; + extern WINE_UNICODE_API const unsigned short wine_wctype_table[]; return wine_wctype_table[wine_wctype_table[ch >> 8] + (ch & 0xff)]; }
diff --git a/include/winnt.h b/include/winnt.h index d2eebca..2c8596e 100644 --- a/include/winnt.h +++ b/include/winnt.h
@@ -41,8 +41,14 @@ #define WINE_UNUSED /* nothing */ #endif -#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64)) && !defined(MIDL_PASS) -# define DECLSPEC_IMPORT __declspec(dllimport) +#if (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64) || defined(__MINGW32__)) && !defined(MIDL_PASS) +# if defined(_MSC_VER) +# define DECLSPEC_IMPORT __declspec(dllimport) +# elif defined(__MINGW32__) +# define DECLSPEC_IMPORT __attribute__((dllimport)) +# else +# define DECLSPEC_IMPORT +# endif #else # define DECLSPEC_IMPORT #endif
diff --git a/libs/unicode/Makefile.in b/libs/unicode/Makefile.in index 1e2b041..087a453 100644 --- a/libs/unicode/Makefile.in +++ b/libs/unicode/Makefile.in
@@ -4,7 +4,7 @@ VPATH = @srcdir@ LIBRARY = wine_unicode SOVERSION = 1 -EXTRADEFS = -D__WINESRC__ -DNO_LIBWINE_PORT +EXTRADEFS = -D__WINESRC__ -DNO_LIBWINE_PORT -DWINE_UNICODE_API="" CODEPAGES = \ 037 \