aboutsummaryrefslogtreecommitdiffstats
path: root/regexp/jimregexp.h
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2025-06-03 02:37:07 +0000
committerNIIBE Yutaka <[email protected]>2025-06-03 02:37:07 +0000
commit16ee68259d1da6f28b41441a4ffc3faf4f46ca40 (patch)
treef3a8be773145e3bcddc2f6abd1c17619a2cac61c /regexp/jimregexp.h
parentgpgtar: Fix releasing PROC correctly. (diff)
downloadgnupg-16ee68259d1da6f28b41441a4ffc3faf4f46ca40.tar.gz
gnupg-16ee68259d1da6f28b41441a4ffc3faf4f46ca40.zip
gpg,regexp: Use -DREGEXP_PREFIX=gnupg_.
* g10/Makefile.am (AM_CPPFLAGS): Add -DREGEXP_PREFIX=gnupg_ * regexp/Makefile.am (AM_CPPFLAGS): Likewise. * regexp/jimregexp.h (ADD_PREFIX): New. (regcomp, regexec, regerror, regfree): Use ADD_PREFIX. -- GnuPG-bug-id: 7668 Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'regexp/jimregexp.h')
-rw-r--r--regexp/jimregexp.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/regexp/jimregexp.h b/regexp/jimregexp.h
index ab734797b..2bd22e54a 100644
--- a/regexp/jimregexp.h
+++ b/regexp/jimregexp.h
@@ -1,6 +1,31 @@
#ifndef JIMREGEXP_H
#define JIMREGEXP_H
+#ifdef REGEXP_PREFIX
+/*
+ * An application can specify REGEXP_PREFIX to use the prefix to
+ * regexp routines (regcomp, regexec, regerror and regfree).
+ *
+ * Note that the regexp routines are the ones in the standard C
+ * library. It is no problem to override those routines by an
+ * application (with appropriate care of link order).
+ *
+ * However, use of REGEXP_PREFIX is required when you use
+ * AddressSanitizer (ASan). It doesn't work well, because it tries to
+ * replace regexp routines in the standard C library but actually
+ * replaces this implementation. Since it doesn't know about this
+ * implementation, it's not compatible.
+ *
+ * For example, in the Makefiles of GnuPG, we do specify REGEXP_PREFIX
+ * with "gnupg_".
+ */
+#define ADD_PREFIX(name) REGEXP_PREFIX ## name
+#define regcomp ADD_PREFIX(regcomp)
+#define regexec ADD_PREFIX(regexec)
+#define regerror ADD_PREFIX(regerror)
+#define regfree ADD_PREFIX(regfree)
+#endif
+
/** regexp(3)-compatible regular expression implementation for Jim.
*
* See jimregexp.c for details