summaryrefslogtreecommitdiff
path: root/lib/mbtowc-lock.h
Commit message (Collapse)AuthorAgeFilesLines
* maint: run 'make update-copyright'Paul Eggert2022-01-011-1/+1
|
* Put LGPLv2+ notices in source files where appropriate.Bruno Haible2021-06-041-7/+7
| | | | | * lib/**.{h,c,gperf}: Use LGPLv2+ notice whenever the module description says so.
* mbrtowc: Allow locking optimization independently of 'unlocked-io'.Bruno Haible2021-03-071-1/+3
| | | | | | * lib/mbtowc-lock.h: Test GNULIB_MBRTOWC_SINGLE_THREAD instead of USE_UNLOCKED_IO. * doc/multithread.texi: Document GNULIB_MBRTOWC_SINGLE_THREAD.
* mbrtowc: port to AIX 7.1 with xlc 12.1Paul Eggert2021-03-021-1/+9
| | | | | | | | | | | | | | 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.
* maint: run 'make update-copyright'Paul Eggert2020-12-311-1/+1
|
* mbrtowc: Ensure the mbtowc_lock is unique.Bruno Haible2020-01-031-0/+115
* lib/mbtowc-lock.c: New file, based on lib/setlocale-lock.c. * lib/mbtowc-lock.h: New file, extracted from lib/mbrtowc.c and lib/setlocale_null.c. * lib/mbrtowc.c: Include headers needed for mbtowc-lock.h. Don't include glthread/lock.h. Include mbtowc-lock.h. (mbtowc_lock): Remove declaration. (mbrtowc): Use mbtowc_with_lock. * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Require gl_PTHREADLIB. Check for threads.h. Set LIB_MBRTOWC. (gl_PREREQ_MBTOWC_LOCK): New macro. * modules/mbrtowc (Files): Add lib/mbtowc-lock.h, lib/mbtowc-lock.c, lib/windows-initguard.h, m4/threadlib.m4, m4/visibility.m4. (Depends-on): Remove lock. (configure.ac): Arrange to compile mbtowc-lock.c. (Link): Mention $(LIB_MBRTOWC) instead of $(LIBTHREAD). * modules/acl (Link): Likewise. * modules/argmatch (Link): Likewise. * modules/backup-rename (Link): Likewise. * modules/backupfile (Link): Likewise. * modules/closein (Link): Likewise. * modules/closeout (Link): Likewise. * modules/copy-file (Link): Likewise. * modules/csharpcomp (Link): Likewise. * modules/csharpexec (Link): Likewise. * modules/dfa (Link): Likewise. * modules/exclude (Link): Likewise. * modules/fnmatch (Link): Likewise. * modules/fnmatch-gnu (Link): Likewise. * modules/fnmatch-posix (Link): Likewise. * modules/glob (Link): Likewise. * modules/human (Link): Likewise. * modules/javacomp (Link): Likewise. * modules/javaexec (Link): Likewise. * modules/javaversion (Link): Likewise. * modules/mbfile (Link): Likewise. * modules/mbiter (Link): Likewise. * modules/mbmemcasecmp (Link): Likewise. * modules/mbmemcasecoll (Link): Likewise. * modules/mbrlen (Link): Likewise. * modules/mbscasecmp (Link): Likewise. * modules/mbscasestr (Link): Likewise. * modules/mbschr (Link): Likewise. * modules/mbscspn (Link): Likewise. * modules/mbsinit (Link): Likewise. * modules/mbslen (Link): Likewise. * modules/mbsncasecmp (Link): Likewise. * modules/mbsnlen (Link): Likewise. * modules/mbsnrtowcs (Link): Likewise. * modules/mbspbrk (Link): Likewise. * modules/mbspcasecmp (Link): Likewise. * modules/mbsrchr (Link): Likewise. * modules/mbsrtowcs (Link): Likewise. * modules/mbssep (Link): Likewise. * modules/mbsspn (Link): Likewise. * modules/mbsstr (Link): Likewise. * modules/mbstok_r (Link): Likewise. * modules/mbswidth (Link): Likewise. * modules/mbuiter (Link): Likewise. * modules/mkdir-p (Link): Likewise. * modules/propername (Link): Likewise. * modules/quote (Link): Likewise. * modules/quotearg (Link): Likewise. * modules/quotearg-simple (Link): Likewise. * modules/regex-quote (Link): Likewise. * modules/rpmatch (Link): Likewise. * modules/sh-quote (Link): Likewise. * modules/system-quote (Link): Likewise. * modules/trim (Link): Likewise. * modules/unistdio/ulc-asnprintf (Link): Likewise. * modules/unistdio/ulc-fprintf (Link): Likewise. * modules/unistdio/ulc-vasnprintf (Link): Likewise. * modules/unistdio/ulc-vasprintf (Link): Likewise. * modules/unistdio/ulc-vfprintf (Link): Likewise. * modules/unistdio/ulc-vsnprintf (Link): Likewise. * modules/unistdio/ulc-vsprintf (Link): Likewise. * modules/xfreopen (Link): Likewise. * modules/xmemcoll (Link): Likewise. * modules/yesno (Link): Likewise. * modules/regex (Link): Add $(LIB_MBRTOWC). * modules/acl-tests (Makefile.am): Link the programs with $(LIB_MBRTOWC) instead of $(LIBTHREAD). * modules/argmatch-tests (Makefile.am): Likewise. * modules/closein-tests (Makefile.am): Likewise. * modules/copy-file-tests (Makefile.am): Likewise. * modules/dfa-tests (Makefile.am): Likewise. * modules/fnmatch-tests (Makefile.am): Likewise. * modules/glob-tests (Makefile.am): Likewise. * modules/mbmemcasecmp-tests (Makefile.am): Likewise. * modules/mbmemcasecoll-tests (Makefile.am): Likewise. * modules/mbrtowc-tests (Makefile.am): Likewise. * modules/mbscasecmp-tests (Makefile.am): Likewise. * modules/mbscasestr-tests (Makefile.am): Likewise. * modules/mbschr-tests (Makefile.am): Likewise. * modules/mbscspn-tests (Makefile.am): Likewise. * modules/mbsinit-tests (Makefile.am): Likewise. * modules/mbsncasecmp-tests (Makefile.am): Likewise. * modules/mbsnrtowcs-tests (Makefile.am): Likewise. * modules/mbspbrk-tests (Makefile.am): Likewise. * modules/mbspcasecmp-tests (Makefile.am): Likewise. * modules/mbsrchr-tests (Makefile.am): Likewise. * modules/mbsrtowcs-tests (Makefile.am): Likewise. * modules/mbsspn-tests (Makefile.am): Likewise. * modules/mbsstr-tests (Makefile.am): Likewise. * modules/quotearg-simple-tests (Makefile.am): Likewise. * modules/quotearg-tests (Makefile.am): Likewise. * modules/readtokens-tests (Makefile.am): Likewise. * modules/sh-quote-tests (Makefile.am): Likewise. * modules/system-quote-tests (Makefile.am): Likewise. * modules/unistdio/ulc-asnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vasprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vsnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vsprintf-tests (Makefile.am): Likewise. * modules/yesno-tests (Makefile.am): Likewise. * modules/exclude-tests (Makefile.am): Link the programs with $(LIB_MBRTOWC). * modules/regex-tests (Makefile.am): Likewise. * modules/regex-quote-tests (Makefile.am): Likewise.