+2021-03-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ mbrtowc: port to AIX 7.1 with xlc 12.1
+ Fix a problem with locks when building GNU Tar (Savannah commit
+ 55f2a0772e08b9febac3ac0de5cb048d4c60d2f5) on AIX 7.1 with IBM XL
+ C/C++ V12.1 using ‘./configure CC=xlc’. The link fails due to
+ missing definitions of pthread_mutex_lock and
+ pthread_mutex_unlock. GNU Tar uses unlocked-io and so
+ should not need to worry about multithreading or locks.
+ * lib/mbtowc-lock.h (mbtowc_with_lock) [USE_UNLOCKED_IO]:
+ Don’t bother with locks, since this app is single-threaded.
+ There may be similar linking problems with lib/nl_langinfo.c and
+ lib/setlocale_null.c but my GNU Tar build didn’t run into them, so
+ I left them alone for now.
+
2021-03-01 Paul Eggert <eggert@cs.ucla.edu>
unlocked-io: do not redefine getc_unlocked etc.
/* Prohibit renaming this symbol. */
#undef gl_get_mbtowc_lock
-#if defined _WIN32 && !defined __CYGWIN__
+#ifdef USE_UNLOCKED_IO
+
+static int
+mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
+{
+ return mbtowc_unlocked (pwc, p, m);
+}
+
+#elif defined _WIN32 && !defined __CYGWIN__
extern __declspec(dllimport) CRITICAL_SECTION *gl_get_mbtowc_lock (void);