summaryrefslogtreecommitdiff
path: root/lib/mbtowc-lock.h
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2021-03-02 16:27:39 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2021-03-02 16:28:40 -0800
commit495dcf8d964e0b3a712f9345554a03d450851d8a (patch)
tree9e57e880d6315fa73674fade4f1403fa8ebc4a5e /lib/mbtowc-lock.h
parent92fb5eecee39b2b87bc140ffdafdfd9e82057911 (diff)
downloadgnulib-495dcf8d964e0b3a712f9345554a03d450851d8a.tar.gz
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.
Diffstat (limited to 'lib/mbtowc-lock.h')
-rw-r--r--lib/mbtowc-lock.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/mbtowc-lock.h b/lib/mbtowc-lock.h
index 696b12c584..b7c5ba8a08 100644
--- a/lib/mbtowc-lock.h
+++ b/lib/mbtowc-lock.h
@@ -32,7 +32,15 @@ mbtowc_unlocked (wchar_t *pwc, const char *p, size_t m)
/* 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);