diff --git a/package/lean/libcryptopp/src/Makefile.am b/package/lean/libcryptopp/src/Makefile.am index 151166f90a..d5256f9d7c 100644 --- a/package/lean/libcryptopp/src/Makefile.am +++ b/package/lean/libcryptopp/src/Makefile.am @@ -11,12 +11,18 @@ ## sed -e 's|[[:alnum:]]*_simd.cpp ||g' | \ ## sed -e 's|[[:alnum:]]*_sse.cpp ||g' | \ ## sed -e 's|[[:alnum:]]*_avx.cpp ||g' | \ +## sed -e 's|[[:alnum:]]*_armv4.cpp ||g' | \ ## sed -e 's|ppc_power[[:alnum:]]*.cpp ||g' | \ -## fold -w73 -s +## fold -s -w 72 ## ## The command `make sources | sed ... | fold` will create the source file ## list that can be used with `libothers_la_SOURCES` below. ## +## The list of header files can be built with 'make sources', too. +## +## make sources | sed -e 's|[[:alnum:]]*_armv4.h ||g' \ +## fold -s -w 72 +## ## Note: configure.ac deletes GNUmakefile. You can get it back with: ## ## git checkout GNUmakefile @@ -34,6 +40,9 @@ ## TODO: ## +## - Figure out how to include TestPrograms/ in the dist tarball +## TestPrograms/ is unique because it is included in dist tarball but not installed +## ## - Figure out what's going on with DragonFly and dependencies ## @@ -255,8 +264,10 @@ libppc_power7_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_POWER7_FLAG) libppc_power8_la_SOURCES = ppc_power8.cpp libppc_power8_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_POWER8_FLAG) +# Do not use CRYPTOPP_POWER9_FLAG. See https://github.com/weidai11/cryptopp/issues/986 libppc_power9_la_SOURCES = ppc_power9.cpp -libppc_power9_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_POWER9_FLAG) +# libppc_power9_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_POWER9_FLAG) +libppc_power9_la_CXXFLAGS = $(AM_CXXFLAGS) librijndael_simd_la_SOURCES = rijndael_simd.cpp librijndael_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_AES_FLAG) @@ -279,7 +290,7 @@ libsm4_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_SM4_FLAG) libsse_simd_la_SOURCES = sse_simd.cpp libsse_simd_la_CXXFLAGS = $(AM_CXXFLAGS) $(CRYPTOPP_SSE2_FLAG) -## ARMv7-a AES by Andy Polyakov +## ARMv7-a AES and SHA by Andy Polyakov ## Also see https://stackoverflow.com/q/51575580/608639 if CRYPTOGAMS_ARM_SOURCES libaes_armv4_la_SOURCES = aes_armv4.S @@ -302,58 +313,59 @@ endif # cpu.cpp, integer.cpp, *_avx.cpp and *_simd.cpp files. It is sorted in # alphabetical order for deterministic builds. -# To build this list, see the head notes and run the command with the -# make and multiple sed commands. - +# To build this list, see the head notes. libothers_la_SOURCES = \ - 3way.cpp adler32.cpp algebra.cpp algparam.cpp allocate.cpp arc4.cpp aria.cpp \ - ariatab.cpp asn.cpp authenc.cpp base32.cpp base64.cpp basecode.cpp \ - bfinit.cpp blake2.cpp blowfish.cpp blumshub.cpp camellia.cpp cast.cpp \ - casts.cpp cbcmac.cpp ccm.cpp chacha.cpp chachapoly.cpp cham.cpp \ - channels.cpp cmac.cpp crc.cpp darn.cpp default.cpp des.cpp dessp.cpp \ - dh.cpp dh2.cpp dll.cpp donna_32.cpp donna_64.cpp dsa.cpp eax.cpp \ - ec2n.cpp eccrypto.cpp ecp.cpp elgamal.cpp emsa2.cpp eprecomp.cpp \ - esign.cpp files.cpp filters.cpp fips140.cpp fipstest.cpp gcm.cpp \ - gf256.cpp gf2_32.cpp gf2n.cpp gfpcrypt.cpp gost.cpp gzip.cpp hc128.cpp \ - hc256.cpp hex.cpp hight.cpp hmac.cpp hrtimer.cpp ida.cpp idea.cpp \ - iterhash.cpp kalyna.cpp kalynatab.cpp keccak.cpp keccak_core.cpp lea.cpp \ - luc.cpp mars.cpp marss.cpp md2.cpp md4.cpp md5.cpp misc.cpp modes.cpp \ - mqueue.cpp mqv.cpp nbtheory.cpp oaep.cpp osrng.cpp padlkrng.cpp \ - panama.cpp pkcspad.cpp poly1305.cpp polynomi.cpp pssr.cpp pubkey.cpp \ - queue.cpp rabbit.cpp rabin.cpp randpool.cpp rc2.cpp rc5.cpp rc6.cpp \ - rdrand.cpp rdtables.cpp rijndael.cpp ripemd.cpp rng.cpp rsa.cpp rw.cpp \ - safer.cpp salsa.cpp scrypt.cpp seal.cpp seed.cpp serpent.cpp sha.cpp \ - sha3.cpp shacal2.cpp shake.cpp shark.cpp sharkbox.cpp simeck.cpp \ - simon.cpp skipjack.cpp sm3.cpp sm4.cpp sosemanuk.cpp speck.cpp \ - square.cpp squaretb.cpp strciphr.cpp tea.cpp tftables.cpp threefish.cpp \ - tiger.cpp tigertab.cpp ttmac.cpp tweetnacl.cpp twofish.cpp vmac.cpp \ - wake.cpp whrlpool.cpp xed25519.cpp xtr.cpp xtrcrypt.cpp xts.cpp \ - zdeflate.cpp zinflate.cpp zlib.cpp + 3way.cpp adler32.cpp algebra.cpp algparam.cpp allocate.cpp arc4.cpp \ + aria.cpp ariatab.cpp asn.cpp authenc.cpp base32.cpp base64.cpp \ + basecode.cpp bfinit.cpp blake2.cpp blowfish.cpp blumshub.cpp \ + camellia.cpp cast.cpp casts.cpp cbcmac.cpp ccm.cpp chacha.cpp \ + chachapoly.cpp cham.cpp channels.cpp cmac.cpp crc.cpp darn.cpp \ + default.cpp des.cpp dessp.cpp dh.cpp dh2.cpp dll.cpp donna_32.cpp \ + donna_64.cpp dsa.cpp eax.cpp ec2n.cpp eccrypto.cpp ecp.cpp elgamal.cpp \ + emsa2.cpp eprecomp.cpp esign.cpp files.cpp filters.cpp fips140.cpp \ + fipstest.cpp gcm.cpp gf256.cpp gf2_32.cpp gf2n.cpp gfpcrypt.cpp \ + gost.cpp gzip.cpp hc128.cpp hc256.cpp hex.cpp hight.cpp hmac.cpp \ + hrtimer.cpp ida.cpp idea.cpp iterhash.cpp kalyna.cpp kalynatab.cpp \ + keccak.cpp keccak_core.cpp lea.cpp luc.cpp mars.cpp marss.cpp md2.cpp \ + md4.cpp md5.cpp misc.cpp modes.cpp mqueue.cpp mqv.cpp nbtheory.cpp \ + oaep.cpp osrng.cpp padlkrng.cpp panama.cpp pkcspad.cpp poly1305.cpp \ + polynomi.cpp pssr.cpp pubkey.cpp queue.cpp rabbit.cpp rabin.cpp \ + randpool.cpp rc2.cpp rc5.cpp rc6.cpp rdrand.cpp rdtables.cpp \ + rijndael.cpp ripemd.cpp rng.cpp rsa.cpp rw.cpp safer.cpp salsa.cpp \ + scrypt.cpp seal.cpp seed.cpp serpent.cpp sha.cpp sha3.cpp shacal2.cpp \ + shake.cpp shark.cpp sharkbox.cpp simeck.cpp simon.cpp skipjack.cpp \ + sm3.cpp sm4.cpp sosemanuk.cpp speck.cpp square.cpp squaretb.cpp \ + strciphr.cpp tea.cpp tftables.cpp threefish.cpp tiger.cpp tigertab.cpp \ + ttmac.cpp tweetnacl.cpp twofish.cpp vmac.cpp wake.cpp whrlpool.cpp \ + xed25519.cpp xtr.cpp xtrcrypt.cpp xts.cpp zdeflate.cpp zinflate.cpp \ + zlib.cpp -# Don't include aes_armv4.h here +# To build this list, see the head notes. pkginclude_HEADERS = \ - 3way.h adler32.h adv_simd.h aes.h algebra.h algparam.h allocate.h \ - arc4.h argnames.h aria.h arm_simd.h asn.h authenc.h base32.h base64.h \ - basecode.h blake2.h blowfish.h blumshub.h camellia.h cast.h cbcmac.h \ - ccm.h chacha.h chachapoly.h cham.h channels.h cmac.h config.h cpu.h \ - crc.h cryptlib.h darn.h default.h des.h dh.h dh2.h dll.h dmac.h donna.h \ - donna_32.h donna_64.h donna_sse.h drbg.h dsa.h eax.h ec2n.h eccrypto.h \ - ecp.h ecpoint.h elgamal.h emsa2.h eprecomp.h esign.h fhmqv.h files.h \ - filters.h fips140.h fltrimpl.h gcm.h gf256.h gf2_32.h gf2n.h gfpcrypt.h \ - gost.h gzip.h hashfwd.h hc128.h hc256.h hex.h hight.h hkdf.h hmac.h \ - hmqv.h hrtimer.h ida.h idea.h integer.h iterhash.h kalyna.h keccak.h \ - lea.h lubyrack.h luc.h mars.h md2.h md4.h md5.h mdc.h mersenne.h misc.h \ - modarith.h modes.h modexppc.h mqueue.h mqv.h naclite.h nbtheory.h nr.h \ - oaep.h oids.h osrng.h ossig.h padlkrng.h panama.h pch.h pkcspad.h \ - poly1305.h polynomi.h ppc_simd.h pssr.h pubkey.h pwdbased.h queue.h \ - rabbit.h rabin.h randpool.h rc2.h rc5.h rc6.h rdrand.h rijndael.h \ - ripemd.h rng.h rsa.h rw.h safer.h salsa.h scrypt.h seal.h secblock.h \ - seckey.h seed.h serpent.h serpentp.h sha.h sha3.h shacal2.h shake.h \ - shark.h simeck.h simon.h simple.h siphash.h skipjack.h sm3.h sm4.h \ - smartptr.h sosemanuk.h speck.h square.h stdcpp.h strciphr.h tea.h \ - threefish.h tiger.h trap.h trunhash.h ttmac.h tweetnacl.h twofish.h \ - vmac.h wake.h whrlpool.h words.h xed25519.h xtr.h xtrcrypt.h xts.h \ - zdeflate.h zinflate.h zlib.h + 3way.h adler32.h adv_simd.h aes.h algebra.h algparam.h allocate.h \ + arc4.h argnames.h aria.h arm_simd.h asn.h authenc.h base32.h base64.h \ + basecode.h blake2.h blowfish.h blumshub.h camellia.h cast.h cbcmac.h \ + ccm.h chacha.h chachapoly.h cham.h channels.h cmac.h config.h \ + config_align.h config_asm.h config_cpu.h config_cxx.h config_dll.h \ + config_int.h config_misc.h config_ns.h config_os.h config_ver.h cpu.h \ + crc.h cryptlib.h darn.h default.h des.h dh.h dh2.h dll.h dmac.h donna.h \ + donna_32.h donna_64.h donna_sse.h drbg.h dsa.h eax.h ec2n.h eccrypto.h \ + ecp.h ecpoint.h elgamal.h emsa2.h eprecomp.h esign.h fhmqv.h files.h \ + filters.h fips140.h fltrimpl.h gcm.h gf256.h gf2_32.h gf2n.h gfpcrypt.h \ + gost.h gzip.h hashfwd.h hc128.h hc256.h hex.h hight.h hkdf.h hmac.h \ + hmqv.h hrtimer.h ida.h idea.h integer.h iterhash.h kalyna.h keccak.h \ + lea.h local.h lubyrack.h luc.h mars.h md2.h md4.h md5.h mdc.h \ + mersenne.h misc.h modarith.h modes.h modexppc.h mqueue.h mqv.h \ + naclite.h nbtheory.h nr.h oaep.h oids.h osrng.h ossig.h padlkrng.h \ + panama.h pch.h pkcspad.h poly1305.h polynomi.h ppc_simd.h pssr.h \ + pubkey.h pwdbased.h queue.h rabbit.h rabin.h randpool.h rc2.h rc5.h \ + rc6.h rdrand.h rijndael.h ripemd.h rng.h rsa.h rw.h safer.h salsa.h \ + scrypt.h seal.h secblock.h secblockfwd.h seckey.h seed.h serpent.h \ + serpentp.h sha.h sha3.h shacal2.h shake.h shark.h simeck.h simon.h \ + simple.h siphash.h skipjack.h sm3.h sm4.h smartptr.h sosemanuk.h \ + speck.h square.h stdcpp.h strciphr.h tea.h threefish.h tiger.h trap.h \ + trunhash.h ttmac.h tweetnacl.h twofish.h vmac.h wake.h whrlpool.h \ + words.h xed25519.h xtr.h xtrcrypt.h xts.h zdeflate.h zinflate.h zlib.h noinst_HEADERS = \ local.h \ @@ -381,9 +393,11 @@ cryptest_LDADD = $(lib_LTLIBRARIES) CLEANFILES = adhoc.cpp -## Copy the TestVectors/ and TestData/ to ${pkgdatadir} +## Copy the TestVectors/ and TestData/ to ${pkgdatadir}. +## TestPrograms/ is included in the tarball but not installed. ## https://www.gnu.org/software/automake/manual/html_node/Data.html +# Create with 'ls TestVectors/*.dat'. These files get installed. testdata_FILES = \ TestData/3desval.dat TestData/fhmqv160.dat TestData/rc2val.dat \ TestData/3wayval.dat TestData/fhmqv256.dat TestData/rc5val.dat \ @@ -411,6 +425,7 @@ testdata_FILES = \ TestData/esig1536.dat TestData/rabi1024.dat TestData/xtrdh171.dat \ TestData/esig2046.dat TestData/rabi2048.dat TestData/xtrdh342.dat +# Create with 'ls TestVectors/*.txt'. These files get installed. testvector_FILES = \ TestVectors/aead.txt TestVectors/rsa_pss.txt \ TestVectors/aes.txt TestVectors/rw.txt \ @@ -451,10 +466,94 @@ testvector_FILES = \ TestVectors/rsa_oaep.txt TestVectors/xchacha.txt \ TestVectors/rsa_pkcs1_1_5.txt TestVectors/xts.txt +# Create with 'ls TestPrograms/test_*.cxx'. These files do not get installed. +# They exist so the feature tests can be run from the configure directory. +testprogs_FILES= \ + TestPrograms/test_32bit.cxx + TestPrograms/test_64bit.cxx + TestPrograms/test_arm_acle_header.cxx + TestPrograms/test_arm_aes.cxx + TestPrograms/test_arm_asimd.cxx + TestPrograms/test_arm_crc.cxx + TestPrograms/test_arm_neon.cxx + TestPrograms/test_arm_neon_header.cxx + TestPrograms/test_arm_pmull.cxx + TestPrograms/test_arm_sha1.cxx + TestPrograms/test_arm_sha256.cxx + TestPrograms/test_arm_sha3.cxx + TestPrograms/test_arm_sha512.cxx + TestPrograms/test_arm_sm3.cxx + TestPrograms/test_arm_sm4.cxx + TestPrograms/test_asm_mixed.cxx + TestPrograms/test_cxx11_alignas.cxx + TestPrograms/test_cxx11_alignof.cxx + TestPrograms/test_cxx11_assert.cxx + TestPrograms/test_cxx11_atomic.cxx + TestPrograms/test_cxx11_auto.cxx + TestPrograms/test_cxx11_constexpr.cxx + TestPrograms/test_cxx11.cxx + TestPrograms/test_cxx11_deletefn.cxx + TestPrograms/test_cxx11_enumtype.cxx + TestPrograms/test_cxx11_initializer.cxx + TestPrograms/test_cxx11_lambda.cxx + TestPrograms/test_cxx11_noexcept.cxx + TestPrograms/test_cxx11_nullptr.cxx + TestPrograms/test_cxx11_staticinit.cxx + TestPrograms/test_cxx11_sync.cxx + TestPrograms/test_cxx11_vartemplates.cxx + TestPrograms/test_cxx14.cxx + TestPrograms/test_cxx17_assert.cxx + TestPrograms/test_cxx17.cxx + TestPrograms/test_cxx17_exceptions.cxx + TestPrograms/test_cxx98_exception.cxx + TestPrograms/test_cxx.cxx + TestPrograms/test_glibc.cxx + TestPrograms/test_newlib.cxx + TestPrograms/test_ppc_aes.cxx + TestPrograms/test_ppc_altivec.cxx + TestPrograms/test_ppc_power7.cxx + TestPrograms/test_ppc_power8.cxx + TestPrograms/test_ppc_power9.cxx + TestPrograms/test_ppc_sha.cxx + TestPrograms/test_ppc_vmull.cxx + TestPrograms/test_pthreads.cxx + TestPrograms/test_x86_aes.cxx + TestPrograms/test_x86_avx2.cxx + TestPrograms/test_x86_avx512.cxx + TestPrograms/test_x86_avx.cxx + TestPrograms/test_x86_clmul.cxx + TestPrograms/test_x86_cpuid.cxx + TestPrograms/test_x86_rdrand.cxx + TestPrograms/test_x86_rdseed.cxx + TestPrograms/test_x86_sha.cxx + TestPrograms/test_x86_sse2.cxx + TestPrograms/test_x86_sse3.cxx + TestPrograms/test_x86_sse41.cxx + TestPrograms/test_x86_sse42.cxx + TestPrograms/test_x86_ssse3.cxx + TestPrograms/test_x86_via_aes.cxx + TestPrograms/test_x86_via_rng.cxx + TestPrograms/test_x86_via_sha.cxx + nobase_dist_pkgdata_DATA = \ $(testdata_FILES) \ $(testvector_FILES) +# Can't seem to get this to work, despite the fiddling attempts. +# https://www.gnu.org/software/automake/manual/html_node/Uniform.html and +# https://www.gnu.org/software/automake/manual/html_node/Program-and-Library-Variables.html +#nobase_noinst_data_DATA = \ +# $(testprogs_FILES) + +# Workaround Automake bug. We can't seem to include the TestProgram/ data +# in the tarball without installation using their Uniform Naming Scheme +# https://www.gnu.org/software/automake/manual/html_node/Uniform.html and +# https://www.gnu.org/software/automake/manual/html_node/Program-and-Library-Variables.html +dist-hook: + chmod -R u+w $(distdir) + cp -r TestPrograms/ $(distdir) + rm -f $(distdir)/TestPrograms/dump2def.cxx + ## Automake bug workaround. If libcryptopp_la_SOURCES is an empty list, Automake assumes ## C source files and drives link through the C compiler. We provide the empty adhoc.cpp ## to get things back on course, so adhoc.cpp must always be copied. @@ -463,7 +562,7 @@ adhoc.cpp: cp adhoc.cpp.proto adhoc.cpp touch adhoc.cpp -## Remove doc directpry if present +## Remove doc directory if present distclean-local: -rm -rf html-docs doxyfile.stamp diff --git a/package/lean/libcryptopp/src/configure.ac b/package/lean/libcryptopp/src/configure.ac index 568f6888c8..9296bf2071 100644 --- a/package/lean/libcryptopp/src/configure.ac +++ b/package/lean/libcryptopp/src/configure.ac @@ -1,6 +1,6 @@ ## configure.ac - Autotools configuration file for Crypto++. ## written and placed in public domain by Jeffrey Walton. -## based on Debian configure.ac by László Böszörményi. +## based on Debian configure.ac by László Böszörményi. ## Visit the link below for the original Debian Autotools files @@ -42,6 +42,11 @@ ## LT_INIT bug. There is no Uniform Name like bin_LTPROGRAMS to signal PIC/PIE ## should be used. Autoconf is guessing wrong and not using PIC/PIE. ## +## - Fix Autotools 'make dist' failures. If you run 'make dist' on x86_64, then +## the release tarball only works on x86_64. It is like it is pre-configured +## for only the x86_64 platform, and other platform code paths have been +## thrown away. WTF??? +## ## - Fix Autoconf ignoring our config.h.in. This one looks like it is a problem ## without a solution. Also see https://stackoverflow.com/q/48436715/608639. ## (Gave up after https://github.com/weidai11/cryptopp/commit/c51f0ecbfd21. @@ -822,6 +827,31 @@ if test "$IS_SUN_OS" != "0"; then CXXFLAGS="$SAVED_CXXFLAGS" fi +############################################################################# +## AIX and -qpic=large or -bbigtoc + +if test "$IS_AIX" != "0"; then + + ## Save LDFLAGS + SAVED_LDFLAGS="$LDFLAGS" + + # https://www.ibm.com/developerworks/rational/library/overview-toc-aix/index.html + LDFLAGS="-bbigtoc" + AC_MSG_CHECKING([if $LDNAME supports $LDFLAGS]) + XXX_LINK_IFELSE( + [AC_LANG_SOURCE([[int main() { return 0; }]])], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])] + ) + + if test "$retval" = "0"; then + AM_LDFLAGS="$AM_LDFLAGS $LDFLAGS" + fi + + ## Restore LDFLAGS + LDFLAGS="$SAVED_LDFLAGS" +fi + ############################################################################# ## MacPorts GCC using Clang integrated assembler @@ -1954,10 +1984,7 @@ if test "$IS_PPC" != "0"; then # XLC requires -qaltivec in addition to Arch or CPU option if test "$IS_XLC_COMPILER" = "1"; then - ALTIVEC_FLAG="-qaltivec" - POWER4_FLAG="-qarch=pwr4 -qaltivec" - POWER5_FLAG="-qarch=pwr5 -qaltivec" - POWER6_FLAG="-qarch=pwr6 -qaltivec" + ALTIVEC_FLAG="-qarch=auto -qaltivec" POWER7_VSX_FLAG="-qarch=pwr7 -qvsx -qaltivec" POWER7_PWR_FLAG="-qarch=pwr7 -qaltivec" POWER8_FLAG="-qarch=pwr8 -qaltivec" @@ -1973,7 +2000,7 @@ if test "$IS_PPC" != "0"; then ##### Altivec ##### CXXFLAGS="$ALTIVEC_FLAG" - AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS (Altivec)]) + AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS]) XXX_LINK_IFELSE( [AC_LANG_SOURCE([`cat TestPrograms/test_ppc_altivec.cxx`])], [AC_MSG_RESULT([yes])], @@ -1985,64 +2012,22 @@ if test "$IS_PPC" != "0"; then AC_SUBST([ALTIVEC_FLAG],[""]) fi - # Figure out what is needed for Altivec - if test "$IS_XLC_COMPILER" = "1"; then - - CXXFLAGS="$POWER4_FLAG" - AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS (Altivec)]) - XXX_LINK_IFELSE( - [AC_LANG_SOURCE([`cat TestPrograms/test_ppc_altivec.cxx`])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])] - ) - - if test "$retval" = "0"; then - AC_SUBST([ALTIVEC_FLAG],[$POWER4_FLAG]) - else - CXXFLAGS="$POWER5_FLAG" - AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS (Altivec)]) - XXX_LINK_IFELSE( - [AC_LANG_SOURCE([`cat TestPrograms/test_ppc_altivec.cxx`])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])] - ) - - if test "$retval" = "0"; then - AC_SUBST([ALTIVEC_FLAG],[$POWER5_FLAG]) - else - CXXFLAGS="$POWER6_FLAG" - AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS (Altivec)]) - XXX_LINK_IFELSE( - [AC_LANG_SOURCE([`cat TestPrograms/test_ppc_altivec.cxx`])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])] - ) - - if test "$retval" = "0"; then - AC_SUBST([ALTIVEC_FLAG],[$POWER6_FLAG]) - else - AC_SUBST([ALTIVEC_FLAG],[""]) - fi # POWER6_FLAG - fi # POWER5_FLAG - fi # POWER4_FLAG - fi # XLC Compiler - - ##### Power7 ##### + ##### POWER7 ##### CXXFLAGS="$POWER7_VSX_FLAG" - AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS (Power7)]) + AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS]) XXX_LINK_IFELSE( [AC_LANG_SOURCE([`cat TestPrograms/test_ppc_power7.cxx`])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])] ) - # Figure out what is needed for Power7 + # Figure out what is needed for POWER7 if test "$retval" = "0"; then AC_SUBST([POWER7_FLAG],[$POWER7_VSX_FLAG]) else CXXFLAGS="$POWER7_PWR_FLAG" - AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS (Power7)]) + AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS]) XXX_LINK_IFELSE( [AC_LANG_SOURCE([`cat TestPrograms/test_ppc_power7.cxx`])], [AC_MSG_RESULT([yes])], @@ -2056,10 +2041,10 @@ if test "$IS_PPC" != "0"; then fi # POWER7_PWR_FLAG fi # POWER7_VSX_FLAG - ##### Power8 ##### + ##### POWER8 ##### CXXFLAGS="$POWER8_FLAG" - AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS (Power8)]) + AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS]) XXX_LINK_IFELSE( [AC_LANG_SOURCE([`cat TestPrograms/test_ppc_power8.cxx`])], [AC_MSG_RESULT([yes])], @@ -2070,10 +2055,10 @@ if test "$IS_PPC" != "0"; then AC_SUBST([POWER8_FLAG],[""]) fi - ##### Power9 ##### + ##### POWER9 ##### CXXFLAGS="$POWER9_FLAG" - AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS (Power9)]) + AC_MSG_CHECKING([if $CXXNAME supports $CXXFLAGS]) XXX_COMPILE_IFELSE( [AC_LANG_SOURCE([`cat TestPrograms/test_ppc_power9.cxx`])], [AC_MSG_RESULT([yes])], @@ -2084,17 +2069,18 @@ if test "$IS_PPC" != "0"; then AC_SUBST([POWER9_FLAG],[""]) fi - # Power9 and DARN random number generator - if test x"$POWER9_FLAG" != "x"; then - AC_SUBST([CRYPTOPP_POWER9_FLAG], [$POWER9_FLAG]) - AC_SUBST([CRYPTOPP_DARN_FLAG], [$POWER9_FLAG]) - else - AC_DEFINE([CRYPTOPP_DISABLE_POWER9], [1], [Disable Power9]) - fi + # POWER9 and DARN random number generator. Disabled due to + # https://github.com/weidai11/cryptopp/issues/986 + #if test x"$POWER9_FLAG" != "x"; then + # AC_SUBST([CRYPTOPP_POWER9_FLAG], [$POWER9_FLAG]) + # AC_SUBST([CRYPTOPP_DARN_FLAG], [$POWER9_FLAG]) + #else + # AC_DEFINE([CRYPTOPP_DISABLE_POWER9], [1], [Disable POWER9]) + #fi ##### Fixups ##### - ## Power8 and in-core crypto. + ## POWER8 and in-core crypto. if test x"$POWER8_FLAG" != "x"; then AC_SUBST([CRYPTOPP_POWER8_FLAG], [$POWER8_FLAG]) AC_SUBST([CRYPTOPP_BLAKE2B_FLAG], [$POWER8_FLAG]) @@ -2105,20 +2091,20 @@ if test "$IS_PPC" != "0"; then AC_SUBST([CRYPTOPP_SHA_FLAG], [$POWER8_FLAG]) AC_SUBST([CRYPTOPP_SIMON128_FLAG], [$POWER8_FLAG]) AC_SUBST([CRYPTOPP_SPECK128_FLAG], [$POWER8_FLAG]) - AC_DEFINE([CRYPTOPP_POWER8_CRC_AVAILABLE], [1], [Enable Power8 CRC]) - AC_DEFINE([CRYPTOPP_POWER8_AES_AVAILABLE], [1], [Enable Power8 AES]) - AC_DEFINE([CRYPTOPP_POWER8_PMULL_AVAILABLE], [1], [Enable Power8 PMULL]) - AC_DEFINE([CRYPTOPP_POWER8_SHA_AVAILABLE], [1], [Enable Power8 SHA]) + AC_DEFINE([CRYPTOPP_POWER8_CRC_AVAILABLE], [1], [Enable POWER8 CRC]) + AC_DEFINE([CRYPTOPP_POWER8_AES_AVAILABLE], [1], [Enable POWER8 AES]) + AC_DEFINE([CRYPTOPP_POWER8_PMULL_AVAILABLE], [1], [Enable POWER8 PMULL]) + AC_DEFINE([CRYPTOPP_POWER8_SHA_AVAILABLE], [1], [Enable POWER8 SHA]) else - AC_DEFINE([CRYPTOPP_DISABLE_POWER8], [1], [Disable Power8]) + AC_DEFINE([CRYPTOPP_DISABLE_POWER8], [1], [Disable POWER8]) fi - # Power7 and VSX + # POWER7 and VSX if test x"$POWER7_FLAG" != "x"; then AC_SUBST([CRYPTOPP_POWER7_FLAG], [$POWER7_FLAG]) - AC_DEFINE([CRYPTOPP_POWER7_AVAILABLE], [1], [Enable Power7]) + AC_DEFINE([CRYPTOPP_POWER7_AVAILABLE], [1], [Enable POWER7]) else - AC_DEFINE([CRYPTOPP_DISABLE_POWER7], [1], [Disable Power7]) + AC_DEFINE([CRYPTOPP_DISABLE_POWER7], [1], [Disable POWER7]) fi # Plain old Altivec @@ -2419,32 +2405,6 @@ if test "$IS_SUN_OS" != "0"; then fi fi - # No longer needed - LDFLAGS="-lnsl" - AC_MSG_CHECKING([if $LDNAME supports $LDFLAGS]) - XXX_LINK_IFELSE( - [AC_LANG_SOURCE([[int main() { return 0; }]])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])] - ) - - if test "$retval" = "0"; then - AM_LDFLAGS="$AM_LDFLAGS $LDFLAGS" - fi - - # No longer needed - LDFLAGS="-lsocket" - AC_MSG_CHECKING([if $LDNAME supports $LDFLAGS]) - XXX_LINK_IFELSE( - [AC_LANG_SOURCE([[int main() { return 0; }]])], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])] - ) - - if test "$retval" = "0"; then - AM_LDFLAGS="$AM_LDFLAGS $LDFLAGS" - fi - ## Restore LDFLAGS LDFLAGS="$SAVED_LDFLAGS" fi @@ -2690,9 +2650,9 @@ fi if test x"$CRYPTOPP_POWER8_FLAG" != "x"; then echo "CRYPTOPP_POWER8_FLAG: $CRYPTOPP_POWER8_FLAG" fi -if test x"$CRYPTOPP_POWER9_FLAG" != "x"; then - echo "CRYPTOPP_POWER9_FLAG: $CRYPTOPP_POWER9_FLAG" -fi +#if test x"$CRYPTOPP_POWER9_FLAG" != "x"; then +# echo "CRYPTOPP_POWER9_FLAG: $CRYPTOPP_POWER9_FLAG" +#fi if test x"$CRYPTOPP_ARIA_FLAG" != "x"; then echo "CRYPTOPP_ARIA_FLAG: $CRYPTOPP_ARIA_FLAG" fi diff --git a/package/lean/libcryptopp/src/libcryptopp.pc.in b/package/lean/libcryptopp/src/libcryptopp.pc.in index 143a5d4ef0..a6c502ee52 100644 --- a/package/lean/libcryptopp/src/libcryptopp.pc.in +++ b/package/lean/libcryptopp/src/libcryptopp.pc.in @@ -1,6 +1,6 @@ ## libcryptopp.pc.in - Autotools package configuration file for Crypto++. ## written and placed in public domain by Jeffrey Walton. -## based on Debian package configuration by László Böszörményi. +## based on Debian package configuration by László Böszörményi. ## ## libdir=@libdir@ is not working as expected for Fedora, Solaris,