__libc_lock primitives are actually available on uClibc when threading
support is enable, so in this case they can be used.
It also fixes the following compiler warnings:
In file included from libc/misc/regex/regex.c:55:
libc/misc/regex/regex_internal.h:49:1: warning: "__libc_lock_define" redefined
[SNIP]
libc/misc/regex/regex_internal.h:50:1: warning: "__libc_lock_init" redefined
[SNIP]
libc/misc/regex/regex_internal.h:51:1: warning: "__libc_lock_lock" redefined
[SNIP]
libc/misc/regex/regex_internal.h:52:1: warning: "__libc_lock_unlock" redefined
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
# include <stdint.h>
#endif
+#ifdef __UCLIBC_HAS_THREADS__
+#include <bits/libc-lock.h>
+#else
#define __libc_lock_define(CLASS, NAME)
#define __libc_lock_init(NAME) do { } while (0)
#define __libc_lock_lock(NAME) do { } while (0)
#define __libc_lock_unlock(NAME) do { } while (0)
+#endif
#undef gettext
#undef gettext_noop
{
reg_errcode_t err;
int start, length;
-#ifndef __UCLIBC__ /* libc_lock_lock does not exist */
+#ifdef __UCLIBC_HAS_THREADS__
re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
#endif
regmatch_t *pmatch;
int nregs, rval;
int eflags = 0;
-#ifndef __UCLIBC__ /* libc_lock_lock does not exist */
+#ifdef __UCLIBC_HAS_THREADS__
re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
#endif
-
/* Check for out-of-range. */
if (BE (start < 0 || start > length, 0))
return -1;