I think it would be perfect if GNUmakefile included targets for Clang 
sanitizers (I wasn’t aware GCC supported them too, but hey, it’s fine with me! 
:)

And of course you’d want a separate compilation for that (not just link), 
because code size with sanitizers appears to be almost double.


> On Jul 16, 2015, at 0:13 , Jeffrey Walton <[email protected]> wrote:
> 
> Clang and GCC now offer sanitizers. Uri and I have been testing Crypto++ 
> under the Undefined Behavior Sanitizer (UBsan) and Address Sanitizer (Asan) 
> for some time now.
> 
> Using them usually requires us to modify the makefile. The patch below adds 
> proper support for them so we can do things like:
> 
>     make ubsan
>     ./cryptest.exe v | grep error
> 
> Are there any comments or objections?
> 
> **********
> 
> diff --git a/GNUmakefile b/GNUmakefile
> index 1f7185a..82327c5 100644
> --- a/GNUmakefile
> +++ b/GNUmakefile
> @@ -4,7 +4,7 @@ CXXFLAGS ?= -DNDEBUG -g2 -O3
>  # CXXFLAGS += -ffunction-sections -fdata-sections
>  # LDFLAGS += -Wl,--gc-sections
>  ARFLAGS = -cr    # ar needs the dash on OpenBSD
> -RANLIB = ranlib
> +RANLIB ?= ranlib
>  CP = cp
>  MKDIR = mkdir
>  EGREP = egrep
> @@ -38,6 +38,16 @@ ifneq ($(IS_X86_64),0)
>  CXXFLAGS += -fPIC
>  endif # PIC for x86_64 targets
>  
> +# Undefined Behavior Sanitzier (Clang and G++)
> +ifeq ($(findstring ubsan,$(MAKECMDGOALS)),ubsan)
> +CXXFLAGS += -fsanitize=undefined
> +endif # UBsan
> +
> +# Address Sanitzier (Clang and G++)
> +ifeq ($(findstring asan,$(MAKECMDGOALS)),asan)
> +CXXFLAGS += -fsanitize=address
> +endif # Asan
> +
>  # Cygwin work arounds
>  ifneq ($(IS_CYGWIN),0)
> 
> @@ -168,6 +178,8 @@ all: cryptest.exe
>  static: libcryptopp.a
>  dynamic: libcryptopp.so
>  
> +asan ubsan: libcryptopp.a cryptest.exe
> +
>  test: cryptest.exe
>      ./cryptest.exe v
>  
> 
> 
> -- 
> -- 
> You received this message because you are subscribed to the "Crypto++ Users" 
> Google Group.
> To unsubscribe, send an email to [email protected].
> More information about Crypto++ and this group is available at 
> http://www.cryptopp.com <http://www.cryptopp.com/>.
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Crypto++ Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to