From 8c63bc3a63e49a8f907515849022053ff10e9ce0 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Fri, 29 Jul 2016 05:56:12 -0400 Subject: [PATCH] Add -DCRYPTOPP_NO_UNALIGNED_DATA_ACCESS for -O3 and above for ARM and MIPS (Issue 231) --- GNUmakefile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/GNUmakefile b/GNUmakefile index 7b86009b..908d8f84 100755 --- a/GNUmakefile +++ b/GNUmakefile @@ -230,6 +230,22 @@ CXXFLAGS += -pipe endif endif +# Aligned access required for -O3 and above due to vectorization +UNALIGNED_ACCESS := $(shell $(EGREP) -c "^[[:space:]]*//[[:space:]]*\#[[:space:]]*define[[:space:]]*CRYPTOPP_NO_UNALIGNED_DATA_ACCESS" config.h) +ifneq ($(UNALIGNED_ACCESS),0) +ifeq ($(findstring -DCRYPTOPP_NO_UNALIGNED_DATA_ACCESS,$(CXXFLAGS)),) +ifeq ($(findstring -O3,$(CXXFLAGS)),-O3) +CXXFLAGS += -DCRYPTOPP_NO_UNALIGNED_DATA_ACCESS +endif # -O3 +ifeq ($(findstring -O5,$(CXXFLAGS)),-O5) +CXXFLAGS += -DCRYPTOPP_NO_UNALIGNED_DATA_ACCESS +endif # -O5 +ifeq ($(findstring -Ofast,$(CXXFLAGS)),-Ofast) +CXXFLAGS += -DCRYPTOPP_NO_UNALIGNED_DATA_ACCESS +endif # -Ofast +endif # CRYPTOPP_NO_UNALIGNED_DATA_ACCESS +endif # UNALIGNED_ACCESS + endif # IS_X86 ###########################################################