--- cjdns-cjdns-v20.2/node_build/dependencies/cnacl/cpucycles/osfreq.c.s390x 2018-05-31 12:03:56.321045469 +0200 +++ cjdns-cjdns-v20.2/node_build/dependencies/cnacl/cpucycles/osfreq.c 2018-05-31 12:04:07.901045469 +0200 @@ -33,6 +33,18 @@ static double osfreq(void) f = fopen("/proc/cpuinfo","r"); if (f) { for (;;) { + s = fscanf(f,"cpu MHz dynamic : %lf",&result); + if (s > 0) break; + if (s == 0) s = fscanf(f,"%*[^\n]\n"); + if (s < 0) { result = 0; break; } + } + fclose(f); + if (result) return 1000000.0 * result; + } + + f = fopen("/proc/cpuinfo","r"); + if (f) { + for (;;) { s = fscanf(f,"clock : %lf",&result); if (s > 0) break; if (s == 0) s = fscanf(f,"%*[^\n]\n"); --- cjdns-cjdns-v20.2/node_build/dependencies/cnacl/do.s390x 2018-04-18 09:35:41.000000000 +0200 +++ cjdns-cjdns-v20.2/node_build/dependencies/cnacl/do 2018-05-31 11:56:41.881045469 +0200 @@ -418,7 +418,7 @@ echo "=== `date` === starting curvecp" okabi \ | awk ' - { if ($1=="amd64" || $1=="ia64" || $1=="ppc64" || $1=="sparcv9" || $1=="mips64") print 1,$1 + { if ($1=="amd64" || $1=="ia64" || $1=="ppc64" || $1=="sparcv9" || $1=="mips64" || $1=="s390x") print 1,$1 else if ($1 == "mips32") print 2,$1 else print 3,$1 } --- cjdns-cjdns-v20.2/node_build/dependencies/cnacl/node_build/plans/s390x_plan.json.s390x 2018-05-31 11:56:41.881045469 +0200 +++ cjdns-cjdns-v20.2/node_build/dependencies/cnacl/node_build/plans/s390x_plan.json 2018-05-31 11:56:41.881045469 +0200 @@ -0,0 +1,124 @@ +{ + "PLAN_IMPLEMENTATIONS": [ + [ + "crypto_sign", + "ed25519", + "ref10" + ], + [ + "crypto_stream", + "aes128ctr", + "portable" + ], + [ + "crypto_auth", + "hmacsha256", + "ref" + ], + [ + "crypto_core", + "hsalsa20", + "ref" + ], + [ + "crypto_scalarmult", + "curve25519", + "ref" + ], + [ + "crypto_core", + "salsa20", + "ref" + ], + [ + "crypto_verify", + "16", + "ref" + ], + [ + "crypto_onetimeauth", + "poly1305", + "donna" + ], + [ + "crypto_core", + "salsa208", + "ref" + ], + [ + "crypto_hashblocks", + "sha512", + "inplace" + ], + [ + "crypto_stream", + "salsa2012", + "ref" + ], + [ + "crypto_stream", + "xsalsa20", + "ref" + ], + [ + "crypto_secretbox", + "xsalsa20poly1305", + "ref" + ], + [ + "crypto_core", + "salsa2012", + "ref" + ], + [ + "crypto_verify", + "32", + "ref" + ], + [ + "crypto_stream", + "salsa208", + "ref" + ], + [ + "crypto_hash", + "sha256", + "ref" + ], + [ + "crypto_hashblocks", + "sha256", + "ref" + ], + [ + "crypto_hash", + "sha512", + "ref" + ], + [ + "crypto_box", + "curve25519xsalsa20poly1305", + "ref" + ], + [ + "crypto_auth", + "hmacsha512256", + "ref" + ], + [ + "crypto_stream", + "salsa20", + "ref" + ] + ], + "PLAN_TYPES": [ + "typedef short crypto_int16;", + "typedef unsigned int crypto_uint32;", + "typedef unsigned short crypto_uint16;", + "typedef long long crypto_int64;", + "typedef int crypto_int32;", + "typedef unsigned char crypto_uint8;", + "typedef signed char crypto_int8;", + "typedef unsigned long long crypto_uint64;" + ] +} --- cjdns-cjdns-v20.2/node_build/dependencies/cnacl/okcompilers/abiname.c.s390x 2018-04-18 09:35:41.000000000 +0200 +++ cjdns-cjdns-v20.2/node_build/dependencies/cnacl/okcompilers/abiname.c 2018-05-31 11:56:41.881045469 +0200 @@ -14,6 +14,8 @@ const char *abi(void) return "ppc64"; #elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) || defined(_ARCH_PPC) return "ppc32"; +#elif defined(__s390x__) + return "s390x" #elif defined(__sparcv9__) || defined(__sparcv9) return "sparcv9"; #elif defined(__sparc_v8__) --- cjdns-cjdns-v20.2/node_build/dependencies/cnacl/okcompilers/abiname_xcompile.c.s390x 2018-04-18 09:35:41.000000000 +0200 +++ cjdns-cjdns-v20.2/node_build/dependencies/cnacl/okcompilers/abiname_xcompile.c 2018-05-31 11:56:41.881045469 +0200 @@ -20,6 +20,8 @@ #error ABI_IS_ppc64__ #elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) || defined(_ARCH_PPC) #error ABI_IS_ppc32__ +#elif defined(__s390x__) + #error ABI_IS_s390x__ #elif defined(__sparcv9__) || defined(__sparcv9) #error ABI_IS_sparcv9__ #elif defined(__sparc_v8__)