diff options
author | NIIBE Yutaka <[email protected]> | 2025-06-03 02:37:07 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2025-06-03 02:37:07 +0000 |
commit | 16ee68259d1da6f28b41441a4ffc3faf4f46ca40 (patch) | |
tree | f3a8be773145e3bcddc2f6abd1c17619a2cac61c /regexp | |
parent | gpgtar: Fix releasing PROC correctly. (diff) | |
download | gnupg-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')
-rw-r--r-- | regexp/Makefile.am | 2 | ||||
-rw-r--r-- | regexp/jimregexp.h | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/regexp/Makefile.am b/regexp/Makefile.am index 307aacf9d..4da8687ce 100644 --- a/regexp/Makefile.am +++ b/regexp/Makefile.am @@ -20,7 +20,7 @@ noinst_LIBRARIES = libregexp.a -AM_CPPFLAGS = -DJIM_REGEXP -DJIM_UTF8 -DUSE_UTF8 +AM_CPPFLAGS = -DJIM_REGEXP -DJIM_UTF8 -DUSE_UTF8 -DREGEXP_PREFIX=gnupg_ AM_CFLAGS = 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 |