]> Savannah Git Hosting - gnulib.git/commitdiff
mbrtowc: port to AIX 7.1 with xlc 12.1
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 3 Mar 2021 00:27:39 +0000 (16:27 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 3 Mar 2021 00:28:40 +0000 (16:28 -0800)
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.

ChangeLog
lib/mbtowc-lock.h

index 0304f6958104ff75370ff283f2d983d3529b022f..7ba4369257fb02690b17494ada6f083b245fd333 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+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.
index 696b12c5841ce01a2897d8b326249795f79fbba6..b7c5ba8a08412b56c03c4da7995ae3fa3be8f579 100644 (file)
@@ -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);