HomeFreeBSD

Allow building usr.bin/vi with MK_ASAN

Description

Allow building usr.bin/vi with MK_ASAN

We have to namespace the regex functions to avoid duplicate symbol errors.
This also ensures that vi doesn't define the libc reg* functions with
mismatched signatures.

ld: error: duplicate symbol: regcomp

defined at sanitizer_common_interceptors.inc:7519 (/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:7519)

asan_interceptors.o:(__interceptor_regcomp) in archive /usr/lib/clang/10.0.1/lib/freebsd/libclang_rt.asan-x86_64.a

defined at regcomp.c

.../regex/regcomp.c.o:(.text+0x0)

ld: error: duplicate symbol: regerror

defined at sanitizer_common_interceptors.inc:7543 (/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:7543)

asan_interceptors.o:(__interceptor_regerror) in archive /usr/lib/clang/10.0.1/lib/freebsd/libclang_rt.asan-x86_64.a

defined at regerror.c

.../regex/regerror.c.o:(.text+0x0)

ld: error: duplicate symbol: regexec

defined at sanitizer_common_interceptors.inc:7530 (/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:7530)

asan_interceptors.o:(__interceptor_regexec) in archive /usr/lib/clang/10.0.1/lib/freebsd/libclang_rt.asan-x86_64.a

defined at regexec.c

.../regex/regexec.c.o:(.text+0x0)

ld: error: duplicate symbol: regfree

defined at sanitizer_common_interceptors.inc:7553 (/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:7553)

asan_interceptors.o:(__interceptor_regfree) in archive /usr/lib/clang/10.0.1/lib/freebsd/libclang_rt.asan-x86_64.a

defined at regfree.c

.../regex/regfree.c.o:(.text+0x0)

Committed upstream as https://github.com/lichray/nvi2/pull/92

Reviewed By: bapt
Differential Revision: https://reviews.freebsd.org/D31050

Details

Provenance
arichardsonAuthored on Jul 19 2021, 2:04 PM
Reviewer
bapt
Differential Revision
D31050: Allow building usr.bin/vi with MK_ASAN
Parents
rG2423585b1de5: bin/ps: Avoid function name conflict with libc uname()
Branches
Unknown
Tags
Unknown