Add cnacl s390x support BZ#1584480

This commit is contained in:
Stuart D. Gathman 2018-05-31 11:04:56 -04:00
parent 2e1ec6bdc8
commit fd5592d05d
2 changed files with 190 additions and 2 deletions

182
cjdns.s390x.patch Normal file
View File

@ -0,0 +1,182 @@
--- 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__)

View File

@ -50,7 +50,7 @@
Name: cjdns
# major version is cjdns protocol version:
Version: 20.2
Release: 1%{?dist}
Release: 2%{?dist}
Summary: The privacy-friendly network without borders
Group: System Environment/Base
# cjdns is all GPLv3 except libuv which is MIT and BSD and ISC
@ -108,6 +108,8 @@ Patch12: cjdns.sign.patch
#Patch15: cjdns.benc.patch
# Specify python2 for systems that default to python3
Patch16: cjdns.python3.patch
# s390x support for embedded cnacl library from Dan Horák <dan@danny.cz>
Patch17: cjdns.s390x.patch
BuildRequires: nodejs, nodejs-ronn, python2
@ -133,7 +135,7 @@ Provides: bundled(nacl) = 20110221
%endif
# build system requires nodejs, unfortunately
ExclusiveArch: %{nodejs_arches}
%if 0%{use_embedded}
%if 0 && 0%{use_embedded}
# The nodejs build system for embedded cnacl has no "plan" for s390x.
# It might work to copy another big endian plan like ppc64.
ExcludeArch: s390x
@ -236,6 +238,7 @@ fi
#patch14 -b .entropy
#patch15 -b .benc
%patch16 -b .python3
%patch17 -p1 -b .s390x
cp %{SOURCE1} README_Fedora.md
@ -542,6 +545,9 @@ fi
%{_bindir}/graphStats
%changelog
* Thu May 31 2018 Stuart Gathman <stuart@gathman.org> - 20.2-2
- Add cnacl s390x support BZ#1584480
* Tue May 22 2018 Stuart Gathman <stuart@gathman.org> - 20.2-1
- New upstream release BZ#1464671