summaryrefslogtreecommitdiff
path: root/libc/misc/regex
diff options
context:
space:
mode:
Diffstat (limited to 'libc/misc/regex')
-rw-r--r--libc/misc/regex/regcomp.c2
-rw-r--r--libc/misc/regex/regex.c8
-rw-r--r--libc/misc/regex/regex_old.c10
-rw-r--r--libc/misc/regex/regexec.c2
4 files changed, 15 insertions, 7 deletions
diff --git a/libc/misc/regex/regcomp.c b/libc/misc/regex/regcomp.c
index 94e0314b5..471ea55f0 100644
--- a/libc/misc/regex/regcomp.c
+++ b/libc/misc/regex/regcomp.c
@@ -532,7 +532,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
{
if (BE (msg_size > errbuf_size, 0))
{
-#if defined HAVE_MEMPCPY || defined _LIBC
+#if (defined HAVE_MEMPCPY || defined _LIBC) && defined __USE_GNU
*((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
#else
memcpy (errbuf, msg, errbuf_size - 1);
diff --git a/libc/misc/regex/regex.c b/libc/misc/regex/regex.c
index 77c09a011..9328f6025 100644
--- a/libc/misc/regex/regex.c
+++ b/libc/misc/regex/regex.c
@@ -28,7 +28,9 @@
#ifdef __UCLIBC__
#undef _LIBC
#define _REGEX_RE_COMP
-#define HAVE_MEMPCPY
+#ifdef __USE_GNU
+# define HAVE_MEMPCPY
+#endif
#define HAVE_LANGINFO
#define HAVE_LANGINFO_CODESET
#include <stdbool.h>
@@ -83,8 +85,10 @@ libc_hidden_proto(strlen)
libc_hidden_proto(strncpy)
libc_hidden_proto(getenv)
libc_hidden_proto(strcasecmp)
-libc_hidden_proto(mempcpy)
libc_hidden_proto(abort)
+#ifdef __USE_GNU
+libc_hidden_proto(mempcpy)
+#endif
#endif
diff --git a/libc/misc/regex/regex_old.c b/libc/misc/regex/regex_old.c
index 29640734d..cf5843ec5 100644
--- a/libc/misc/regex/regex_old.c
+++ b/libc/misc/regex/regex_old.c
@@ -26,7 +26,9 @@
#ifdef __UCLIBC__
# undef _LIBC
# define _REGEX_RE_COMP
-# define HAVE_MEMPCPY
+# ifdef __USE_GNU
+# define HAVE_MEMPCPY
+# endif
# define STDC_HEADERS
# define RE_TRANSLATE_TYPE char *
#endif
@@ -41,8 +43,10 @@ libc_hidden_proto(memcpy)
libc_hidden_proto(strcmp)
libc_hidden_proto(strlen)
libc_hidden_proto(printf)
-libc_hidden_proto(mempcpy)
libc_hidden_proto(abort)
+#ifdef __USE_GNU
+libc_hidden_proto(mempcpy)
+#endif
/* AIX requires this to be the first thing in the file. */
#if defined _AIX && !defined REGEX_MALLOC
@@ -8281,7 +8285,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
{
if (msg_size > errbuf_size)
{
-#if defined HAVE_MEMPCPY || defined _LIBC
+#if (defined HAVE_MEMPCPY || defined _LIBC) && defined __USE_GNU
*((char *) mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
#else
memcpy (errbuf, msg, errbuf_size - 1);
diff --git a/libc/misc/regex/regexec.c b/libc/misc/regex/regexec.c
index bafc34ce0..2c8917e19 100644
--- a/libc/misc/regex/regexec.c
+++ b/libc/misc/regex/regexec.c
@@ -385,7 +385,7 @@ re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs,
if (BE (s == NULL, 0))
return -2;
-#if defined _LIBC || defined __UCLIBC__
+#if (defined _LIBC || defined __UCLIBC__) && defined __USE_GNU
memcpy (__mempcpy (s, string1, length1), string2, length2);
#else
memcpy (s, string1, length1);