diff --git a/adhoc.cpp.proto b/adhoc.cpp.proto index ffe8e3b8..c8d59f94 100644 --- a/adhoc.cpp.proto +++ b/adhoc.cpp.proto @@ -12,6 +12,19 @@ USING_NAMESPACE(CryptoPP) USING_NAMESPACE(std) +// Used for testing the compiler and linker in cryptest.sh + +#if defined(CRYPTOPP_ADHOC_MAIN) + +int main(int argc, char *argv[]) +{ + CRYPTOPP_UNUSED(argc), CRYPTOPP_UNUSED(argv); + return 0; +} + +// Classic use of adhoc to setup calling convention +#else + extern int (*AdhocTest)(int argc, char *argv[]); int MyAdhocTest(int argc, char *argv[]) @@ -21,3 +34,5 @@ int MyAdhocTest(int argc, char *argv[]) } static int s_i = (AdhocTest = &MyAdhocTest, 0); + +#endif \ No newline at end of file diff --git a/cryptest.sh b/cryptest.sh index 87eb5697..6f90bd51 100755 --- a/cryptest.sh +++ b/cryptest.sh @@ -75,7 +75,7 @@ if [ -z "$TMP" ]; then TMP=/tmp fi -$CXX -x c++ -Wno-deprecated-declarations adhoc.cpp.proto -c -o $TMP/adhoc > /dev/null 2>&1 +$CXX -x c++ -DCRYPTOPP_ADHOC_MAIN -Wno-deprecated-declarations adhoc.cpp.proto -o $TMP/adhoc > /dev/null 2>&1 if [ "$?" -eq "0" ]; then ADD_CXXFLAGS="$ADD_CXXFLAGS -Wno-deprecated-declarations" fi @@ -97,7 +97,7 @@ else fi # Set to 0 if you don't have UBsan -$CXX -x c++ -fsanitize=undefined adhoc.cpp.proto -c -o $TMP/adhoc > /dev/null 2>&1 +$CXX -x c++ -DCRYPTOPP_ADHOC_MAIN -fsanitize=undefined adhoc.cpp.proto -o $TMP/adhoc > /dev/null 2>&1 if [ "$?" -eq "0" ] && [ "$IS_X86" -ne "0" ]; then HAVE_UBSAN=1 else @@ -105,7 +105,7 @@ else fi # Set to 0 if you don't have Asan -$CXX -x c++ -fsanitize=address adhoc.cpp.proto -c -o $TMP/adhoc > /dev/null 2>&1 +$CXX -x c++ -DCRYPTOPP_ADHOC_MAIN -fsanitize=address adhoc.cpp.proto -o $TMP/adhoc > /dev/null 2>&1 if [ "$?" -eq "0" ] && [ "$IS_X86" -ne "0" ]; then HAVE_ASAN=1 else @@ -121,7 +121,7 @@ fi # Set to 0 if you don't have Intel multiarch HAVE_INTEL_MULTIARCH=0 if [ "$IS_DARWIN" -ne "0" ] && [ "$IS_X86" -ne "0" ]; then -$CXX -x c++ -arch i386 -arch x86_64 -c adhoc.cpp.proto -c -o $TMP/adhoc > /dev/null 2>&1 +$CXX -x c++ -DCRYPTOPP_ADHOC_MAIN -arch i386 -arch x86_64 -c adhoc.cpp.proto -o $TMP/adhoc > /dev/null 2>&1 if [ "$?" -eq "0" ]; then HAVE_INTEL_MULTIARCH=1 fi @@ -130,7 +130,7 @@ fi # Set to 0 if you don't have PPC multiarch HAVE_PPC_MULTIARCH=0 if [ "$IS_DARWIN" -ne "0" ] && [ "$IS_PPC" -ne "0" ]; then -$CXX -x c++ -arch ppc -arch ppc64 -c adhoc.cpp.proto -c -o $TMP/adhoc > /dev/null 2>&1 +$CXX -x -DCRYPTOPP_ADHOC_MAIN c++ -arch ppc -arch ppc64 adhoc.cpp.proto -o $TMP/adhoc > /dev/null 2>&1 if [ "$?" -eq "0" ]; then HAVE_PPC_MULTIARCH=1 fi @@ -138,7 +138,7 @@ fi HAVE_X32=0 if [ "$IS_X64" -ne "0" ]; then -$CXX -x c++ -mx32 -c adhoc.cpp.proto -c -o $TMP/adhoc > /dev/null 2>&1 +$CXX -x -DCRYPTOPP_ADHOC_MAIN c++ -mx32 adhoc.cpp.proto -o $TMP/adhoc > /dev/null 2>&1 if [ "$?" -eq "0" ]; then HAVE_X32=1 fi @@ -1683,7 +1683,7 @@ fi if [ "$CXX" == "g++" ]; then CLANG_COMPILER=$(which clang++) - "$CLANG_COMPILER" -x c++ -c adhoc.cpp.proto -c -o $TMP/adhoc > /dev/null 2>&1 + "$CLANG_COMPILER" -x c++ -DCRYPTOPP_ADHOC_MAIN adhoc.cpp.proto -o $TMP/adhoc > /dev/null 2>&1 if [ "$?" -eq "0" ]; then ############################################