Linux/MacOSX: Better approach to avoid that jitterentropy code is optimized by the compiler
This commit is contained in:
parent
6b90e02624
commit
96c90d18c2
|
@ -14,12 +14,16 @@ $(NAME): $(NAME).a
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@echo Cleaning $(NAME)
|
@echo Cleaning $(NAME)
|
||||||
rm -f $(APPNAME) $(NAME).a $(OBJS) $(OBJSEX) $(OBJS:.o=.d) *.gch
|
rm -f $(APPNAME) $(NAME).a $(OBJS) $(OBJSEX) $(OBJSNOOPT) $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d) *.gch
|
||||||
|
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
@echo Compiling $(<F)
|
@echo Compiling $(<F)
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
$(CC) $(CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
%.o0: %.c
|
||||||
|
@echo Compiling $(<F)
|
||||||
|
$(CC) $(CFLAGS) -O0 -c $< -o $@
|
||||||
|
|
||||||
%.o: %.cpp
|
%.o: %.cpp
|
||||||
@echo Compiling $(<F)
|
@echo Compiling $(<F)
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
||||||
|
@ -64,10 +68,10 @@ TR_SED_BIN := tr '\n' ' ' | tr -s ' ' ',' | sed -e 's/^,//g' -e 's/,$$/n/' | tr
|
||||||
|
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
-include $(OBJS:.o=.d) $(OBJSEX:.oo=.d)
|
-include $(OBJS:.o=.d) $(OBJSEX:.oo=.d) $(OBJSNOOPT:.o0=.d)
|
||||||
|
|
||||||
|
|
||||||
$(NAME).a: $(OBJS) $(OBJSEX)
|
$(NAME).a: $(OBJS) $(OBJSEX) $(OBJSNOOPT)
|
||||||
@echo Updating library $@
|
@echo Updating library $@
|
||||||
$(AR) $(AFLAGS) -rcu $@ $(OBJS) $(OBJSEX)
|
$(AR) $(AFLAGS) -rcu $@ $(OBJS) $(OBJSEX) $(OBJSNOOPT)
|
||||||
$(RANLIB) $@
|
$(RANLIB) $@
|
||||||
|
|
|
@ -57,7 +57,11 @@
|
||||||
#pragma optimize( "", off )
|
#pragma optimize( "", off )
|
||||||
#pragma warning(disable:4242 4244 4334) /* disable warnings on the original code */
|
#pragma warning(disable:4242 4244 4334) /* disable warnings on the original code */
|
||||||
#else
|
#else
|
||||||
#pragma GCC optimize ("O0")
|
#if defined(__clang__)
|
||||||
|
#pragma clang optimize off
|
||||||
|
#elif defined (__GNUC__)
|
||||||
|
#pragma GCC optimize ("O0")
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "jitterentropy.h"
|
#include "jitterentropy.h"
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
OBJS :=
|
OBJS :=
|
||||||
OBJSEX :=
|
OBJSEX :=
|
||||||
|
OBJSNOOPT :=
|
||||||
OBJS += Cipher.o
|
OBJS += Cipher.o
|
||||||
OBJS += EncryptionAlgorithm.o
|
OBJS += EncryptionAlgorithm.o
|
||||||
OBJS += EncryptionMode.o
|
OBJS += EncryptionMode.o
|
||||||
|
@ -80,7 +81,8 @@ OBJS += ../Crypto/GostCipher.o
|
||||||
OBJS += ../Crypto/Streebog.o
|
OBJS += ../Crypto/Streebog.o
|
||||||
OBJS += ../Crypto/kuznyechik.o
|
OBJS += ../Crypto/kuznyechik.o
|
||||||
OBJS += ../Crypto/kuznyechik_simd.o
|
OBJS += ../Crypto/kuznyechik_simd.o
|
||||||
OBJS += ../Crypto/jitterentropy-base.o
|
|
||||||
|
OBJSNOOPT += ../Crypto/jitterentropy-base.o0
|
||||||
|
|
||||||
OBJS += ../Common/Crc.o
|
OBJS += ../Common/Crc.o
|
||||||
OBJS += ../Common/Endian.o
|
OBJS += ../Common/Endian.o
|
||||||
|
|
Loading…
Reference in New Issue