diff options
author | Carmelo Amoroso <carmelo.amoroso@st.com> | 2010-04-12 09:23:43 +0200 |
---|---|---|
committer | Carmelo Amoroso <carmelo.amoroso@st.com> | 2010-04-12 09:41:06 +0200 |
commit | 62174f7330a4578faf2df6c108c0ee6ee5270325 (patch) | |
tree | b3420d72cbf73b84ef80b71d5f5d1e02072542a0 /libc/misc | |
parent | 625b805068561d121baf226cd67cb7aa6e6ba7ba (diff) |
libc_regex: __libc_lock primitives are actually available on uClibc
__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>
(cherry picked from commit 65f9ccdafd008abd9892dfc46fb9737ec4d964c5)
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'libc/misc')
-rw-r--r-- | libc/misc/regex/regex_internal.h | 4 | ||||
-rw-r--r-- | libc/misc/regex/regexec.c | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/libc/misc/regex/regex_internal.h b/libc/misc/regex/regex_internal.h index 03f08bf52..0a255e37f 100644 --- a/libc/misc/regex/regex_internal.h +++ b/libc/misc/regex/regex_internal.h @@ -46,10 +46,14 @@ # 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 diff --git a/libc/misc/regex/regexec.c b/libc/misc/regex/regexec.c index 92cbd821a..568108a67 100644 --- a/libc/misc/regex/regexec.c +++ b/libc/misc/regex/regexec.c @@ -222,7 +222,7 @@ regexec (preg, string, nmatch, pmatch, eflags) { 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 @@ -382,10 +382,9 @@ re_search_stub (bufp, string, length, start, range, stop, regs, ret_len) 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; |