Subject: [alpine-aports] [PATCH 1/7] main/musl: s390x fpreg_t patch

From: "Tuan M. Hoang" <[email-masked]>
Date: Fri, 17 Mar 2017 07:00:46 -0400

---
 ...ix-fpreg_t-remove-unused-per_struct-s390x.patch | 40 ++++++++++++++++++++++
 main/musl/APKBUILD                                 |  2 ++
 2 files changed, 42 insertions(+)
 create mode 100644 main/musl/0009-fix-fpreg_t-remove-unused-per_struct-s390x.patch

diff --git a/main/musl/0009-fix-fpreg_t-remove-unused-per_struct-s390x.patch b/main/musl/0009-fix-fpreg_t-remove-unused-per_struct-s390x.patch
new file mode 100644
index 0000000000..3dbbb84234
--- /dev/null
+++ b/main/musl/0009-fix-fpreg_t-remove-unused-per_struct-s390x.patch
@@ -0,0 +1,40 @@
+From 74bca42e1613c58805d7b048841c2fa8f8502158 Mon Sep 17 00:00:00 2001
+From: "Tuan M. Hoang" <[email-masked]>
+Date: Tue, 14 Mar 2017 16:44:04 -0400
+Subject: s390x: fix fpreg_t and remove unused per_struct
+
+Including sys/procfs.h complains unknown type name 'fpreg_t' in
+bits/user.h. fpreg_t in bits/signal.h and elf_fpreg_t in bits/user.h
+are practically the same.
+
+per_struct is never used, even conflicts with kernel header
+asm/ptrace.h
+---
+ arch/s390x/bits/user.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/s390x/bits/user.h b/arch/s390x/bits/user.h
+index 90f07b7..17bce16 100644
+--- a/arch/s390x/bits/user.h
++++ b/arch/s390x/bits/user.h
+@@ -8,7 +8,7 @@ typedef union {
+ 
+ typedef struct {
+ 	unsigned fpc;
+-	fpreg_t fprs[16];
++	elf_fpreg_t fprs[16];
+ } elf_fpregset_t;
+ 
+ #define ELF_NGREG 27
+@@ -32,7 +32,7 @@ struct _user_per_struct {
+ 	unsigned short perc_atmid;
+ 	unsigned long address;
+ 	unsigned char access_id;
+-} per_struct;
++};
+ 
+ struct _user_regs_struct {
+ 	struct _user_psw_struct psw;
+-- 
+cgit v0.11.2
+
diff --git a/main/musl/APKBUILD b/main/musl/APKBUILD
index 6b748441f6..9a83d4ceea 100644
--- a/main/musl/APKBUILD
+++ b/main/musl/APKBUILD
@@ -25,6 +25,7 @@ source="http://www.musl-libc.org/releases/musl-$pkgver.tar.gz
 	0006-fix-crash-from-corrupted-tls-module-list-after-faile.patch
 	0007-add-s390x-dlsym.patch
 	0008-fix-ld-behavior-dependent-crash-in-ppc64-ldso-startu.patch
+	0009-fix-fpreg_t-remove-unused-per_struct-s390x.patch
 
 	ldconfig
 	__stack_chk_fail_local.c
@@ -153,6 +154,7 @@ df96c4bd5ff9c197c8aa599948b69716587837de0f298d3adec56077b073e71a49a3c3345e0508cf
 4dc5cdcab11dee6b62fcb81401a816341e1d802a99e46b072c51575a2c25933354540fe22ae06dcdc85eb9a3cbf7256e7c43aab0e75843846551f9e18bfc39c2  0006-fix-crash-from-corrupted-tls-module-list-after-faile.patch
 39eaf56fe30c7098c75c09567a0d990b90c1017c1c2c160017b2d5f41e6503a23d21c7b20bad0186cf3e6fec9fa28ab4f7d655a8382140186c96302f262379fe  0007-add-s390x-dlsym.patch
 4018ca56adef65df0041805b9359caba467c7f95fe40cba90dfd32333b7dab180bff519b42f8c56c55eab88a35c040bdf4882e15ce5f6dcf155d545578ab8f7b  0008-fix-ld-behavior-dependent-crash-in-ppc64-ldso-startu.patch
+8060f8094c55857a7f21be6d5092e249eebf312507e02c1e6a469824407f5399e613fa3e47af25ed0c91bf0d5cedb325a92908b137727ca588996daf75037606  0009-fix-fpreg_t-remove-unused-per_struct-s390x.patch
 8d3a2d5315fc56fee7da9abb8b89bb38c6046c33d154c10d168fb35bfde6b0cf9f13042a3bceee34daf091bc409d699223735dcf19f382eeee1f6be34154f26f  ldconfig
 062bb49fa54839010acd4af113e20f7263dde1c8a2ca359b5fb2661ef9ed9d84a0f7c3bc10c25dcfa10bb3c5a4874588dff636ac43d5dbb3d748d75400756d0b  __stack_chk_fail_local.c
 0d80f37b34a35e3d14b012257c50862dfeb9d2c81139ea2dfa101d981d093b009b9fa450ba27a708ac59377a48626971dfc58e20a3799084a65777a0c32cbc7d  getconf.c
-- 
2.11.1

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---

---

From: "Tuan M. Hoang" <[email-masked]>
Date: Fri, 17 Mar 2017 07:02:46 -0400

---
 main/gdb/APKBUILD                           |   8 +-
 main/gdb/s390x-use-elf-gdb_fpregset_t.patch | 156 ++++++++++++++++++++++++++++
 2 files changed, 160 insertions(+), 4 deletions(-)
 create mode 100644 main/gdb/s390x-use-elf-gdb_fpregset_t.patch

diff --git a/main/gdb/APKBUILD b/main/gdb/APKBUILD
index 8b0b8f5d31..cce676fa8e 100644
--- a/main/gdb/APKBUILD
+++ b/main/gdb/APKBUILD
@@ -10,7 +10,8 @@ depends=
 makedepends="ncurses-dev expat-dev texinfo readline-dev python2-dev
 	zlib-dev autoconf automake libtool linux-headers perl"
 subpackages="$pkgname-doc"
-source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz"
+source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz
+	s390x-use-elf-gdb_fpregset_t.patch"
 builddir="$srcdir"/$pkgname-$pkgver
 
 build () {
@@ -53,6 +54,5 @@ package() {
 	rm -rf "$pkgdir"/usr/lib
 }
 
-md5sums="193453347ddced7acb6b1cd2ee8f2e4b  gdb-7.12.1.tar.xz"
-sha256sums="4607680b973d3ec92c30ad029f1b7dbde3876869e6b3a117d8a7e90081113186  gdb-7.12.1.tar.xz"
-sha512sums="0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8  gdb-7.12.1.tar.xz"
+sha512sums="0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8  gdb-7.12.1.tar.xz
+c3872eb51b3a42c5a33f8b7542c37fab7b0548560202e5eda740a2176cdfadff9bf73c6d26bceb225829dcb509c823acae2ccc796237ac97ebe552b82582bdf5  s390x-use-elf-gdb_fpregset_t.patch"
diff --git a/main/gdb/s390x-use-elf-gdb_fpregset_t.patch b/main/gdb/s390x-use-elf-gdb_fpregset_t.patch
new file mode 100644
index 0000000000..2b3f318da7
--- /dev/null
+++ b/main/gdb/s390x-use-elf-gdb_fpregset_t.patch
@@ -0,0 +1,156 @@
+The s390 versions of fill_gregset / supply_gregset and fill_fpregset /
+supply_fpregset declare the data structure to be filled or supplied from
+as gregset_t and fpregset_t, respectively, instead of gdb_gregset_t and
+gdb_fpregset_t.  This is incompatible with the declaration of these
+functions in gregset.h.
+gdb/ChangeLog:
+
+	* s390-linux-nat.c (supply_gregset, fill_gregset, fetch_regs)
+	(store_regs): Replace gregset_t by gdb_gregset_t.
+	(supply_fpregset, fill_fpregset, fetch_fpregs, store_fpregs):
+	Replace fpregset_t by gdb_fpregset_t.
+Credit to Andreas Arnez at IBM
+
+---
+ gdb/s390-linux-nat.c | 34 ++++++++++++++++++----------------
+ 1 file changed, 18 insertions(+), 16 deletions(-)
+
+diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c
+index 55a3899..84c304f 100644
+--- a/gdb/s390-linux-nat.c
++++ b/gdb/s390-linux-nat.c
+@@ -100,7 +100,7 @@ static const struct regset s390_64_gregset =
+    make them look like 32-bit registers.  */
+ 
+ void
+-supply_gregset (struct regcache *regcache, const gregset_t *regp)
++supply_gregset (struct regcache *regcache, const gdb_gregset_t *regp)
+ {
+ #ifdef __s390x__
+   struct gdbarch *gdbarch = get_regcache_arch (regcache);
+@@ -111,7 +111,7 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp)
+       gdb_byte buf[4];
+ 
+       regcache_supply_regset (&s390_64_gregset, regcache, -1,
+-			      regp, sizeof (gregset_t));
++			      regp, sizeof (gdb_gregset_t));
+       pswm = extract_unsigned_integer ((const gdb_byte *) regp
+ 				       + S390_PSWM_OFFSET, 8, byte_order);
+       pswa = extract_unsigned_integer ((const gdb_byte *) regp
+@@ -126,7 +126,7 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp)
+ #endif
+ 
+   regcache_supply_regset (&s390_gregset, regcache, -1, regp,
+-			  sizeof (gregset_t));
++			  sizeof (gdb_gregset_t));
+ }
+ 
+ /* Fill register REGNO (if it is a general-purpose register) in
+@@ -134,14 +134,15 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp)
+    do this for all registers.  */
+ 
+ void
+-fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno)
++fill_gregset (const struct regcache *regcache, gdb_gregset_t *regp,
++	      int regno)
+ {
+ #ifdef __s390x__
+   struct gdbarch *gdbarch = get_regcache_arch (regcache);
+   if (gdbarch_ptr_bit (gdbarch) == 32)
+     {
+       regcache_collect_regset (&s390_64_gregset, regcache, regno,
+-			       regp, sizeof (gregset_t));
++			       regp, sizeof (gdb_gregset_t));
+ 
+       if (regno == -1
+ 	  || regno == S390_PSWM_REGNUM || regno == S390_PSWA_REGNUM)
+@@ -178,26 +179,27 @@ fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno)
+ #endif
+ 
+   regcache_collect_regset (&s390_gregset, regcache, regno, regp,
+-			   sizeof (gregset_t));
++			   sizeof (gdb_gregset_t));
+ }
+ 
+ /* Fill GDB's register array with the floating-point register values
+    in *REGP.  */
+ void
+-supply_fpregset (struct regcache *regcache, const fpregset_t *regp)
++supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *regp)
+ {
+   regcache_supply_regset (&s390_fpregset, regcache, -1, regp,
+-			  sizeof (fpregset_t));
++			  sizeof (gdb_fpregset_t));
+ }
+ 
+ /* Fill register REGNO (if it is a general-purpose register) in
+    *REGP with the value in GDB's register array.  If REGNO is -1,
+    do this for all registers.  */
+ void
+-fill_fpregset (const struct regcache *regcache, fpregset_t *regp, int regno)
++fill_fpregset (const struct regcache *regcache, gdb_fpregset_t *regp,
++	       int regno)
+ {
+   regcache_collect_regset (&s390_fpregset, regcache, regno, regp,
+-			   sizeof (fpregset_t));
++			   sizeof (gdb_fpregset_t));
+ }
+ 
+ /* Find the TID for the current inferior thread to use with ptrace.  */
+@@ -217,7 +219,7 @@ s390_inferior_tid (void)
+ static void
+ fetch_regs (struct regcache *regcache, int tid)
+ {
+-  gregset_t regs;
++  gdb_gregset_t regs;
+   ptrace_area parea;
+ 
+   parea.len = sizeof (regs);
+@@ -226,7 +228,7 @@ fetch_regs (struct regcache *regcache, int tid)
+   if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea, 0) < 0)
+     perror_with_name (_("Couldn't get registers"));
+ 
+-  supply_gregset (regcache, (const gregset_t *) &regs);
++  supply_gregset (regcache, (const gdb_gregset_t *) &regs);
+ }
+ 
+ /* Store all valid general-purpose registers in GDB's register cache
+@@ -234,7 +236,7 @@ fetch_regs (struct regcache *regcache, int tid)
+ static void
+ store_regs (const struct regcache *regcache, int tid, int regnum)
+ {
+-  gregset_t regs;
++  gdb_gregset_t regs;
+   ptrace_area parea;
+ 
+   parea.len = sizeof (regs);
+@@ -254,7 +256,7 @@ store_regs (const struct regcache *regcache, int tid, int regnum)
+ static void
+ fetch_fpregs (struct regcache *regcache, int tid)
+ {
+-  fpregset_t fpregs;
++  gdb_fpregset_t fpregs;
+   ptrace_area parea;
+ 
+   parea.len = sizeof (fpregs);
+@@ -263,7 +265,7 @@ fetch_fpregs (struct regcache *regcache, int tid)
+   if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea, 0) < 0)
+     perror_with_name (_("Couldn't get floating point status"));
+ 
+-  supply_fpregset (regcache, (const fpregset_t *) &fpregs);
++  supply_fpregset (regcache, (const gdb_fpregset_t *) &fpregs);
+ }
+ 
+ /* Store all valid floating-point registers in GDB's register cache
+@@ -271,7 +273,7 @@ fetch_fpregs (struct regcache *regcache, int tid)
+ static void
+ store_fpregs (const struct regcache *regcache, int tid, int regnum)
+ {
+-  fpregset_t fpregs;
++  gdb_fpregset_t fpregs;
+   ptrace_area parea;
+ 
+   parea.len = sizeof (fpregs);
+-- 
+1.8.5.6
+
-- 
2.11.1

---

---

From: "Tuan M. Hoang" <[email-masked]>
Date: Fri, 17 Mar 2017 07:02:48 -0400

---
 main/qt/APKBUILD                                   | 33 ++++------------------
 ...erywhere-opensource-src-4.8.0-s390-atomic.patch | 20 +++++++++++++
 .../qt-everywhere-opensource-src-4.8.6-s390.patch  | 31 ++++++++++++++++++++
 3 files changed, 56 insertions(+), 28 deletions(-)
 create mode 100644 main/qt/qt-everywhere-opensource-src-4.8.0-s390-atomic.patch
 create mode 100644 main/qt/qt-everywhere-opensource-src-4.8.6-s390.patch

diff --git a/main/qt/APKBUILD b/main/qt/APKBUILD
index 935222e0db..788b3eb751 100644
--- a/main/qt/APKBUILD
+++ b/main/qt/APKBUILD
@@ -35,6 +35,9 @@ source="http://download.qt-project.org/official_releases/qt/4.8/$pkgver/qt-every
 	qt-aarch64.patch
 	qtcore-4.8.5-libressl.patch
 	gcc-6.2.1-workaround.patch
+
+	qt-everywhere-opensource-src-4.8.0-s390-atomic.patch
+	qt-everywhere-opensource-src-4.8.6-s390.patch
 	"
 
 _builddir="$srcdir"/qt-everywhere-opensource-src-$pkgver
@@ -280,34 +283,6 @@ lang() {
 		"$subpkgdir"/usr/share/qt/
 }
 
-md5sums="d990ee66bf7ab0c785589776f35ba6ad  qt-everywhere-opensource-src-4.8.7.tar.gz
-a445c6917086d80f1cfc1e40cb6b0132  assistant.desktop
-d457f0a0ad68a3861c3cadefe3b42ded  designer.desktop
-668331d9798a0e2b94381efb7be4c513  linguist.desktop
-c29f2993d6a0f73d756d2fa36e130e1c  qtconfig.desktop
-8eeac363a5d9bc1ca06501a7cbe59b08  qt-gtk-theme-fix.patch
-bc83dc99f866423b4803453a0e2949d2  qt-musl.patch
-077e31e0cb0d25637a3b3638fffbef3c  qt-musl-iconv-no-bom.patch
-14549e243772acfe2e9e0bf5d8d001f3  qt-clucene-timeb.patch
-7467e168418c50b2737b4b2fab4448fe  qsettings-recursive-global-mutex.patch
-8ba77cd8f325c38daca8eadc982395a4  qt-everywhere-opensource-src-4.8.7-gcc6.patch
-2a9572f3b758fc3ca9ff5fc40012a2a4  qt-aarch64.patch
-5fb430ea26cc72dcb16164bd952c1b91  qtcore-4.8.5-libressl.patch
-2cbcd6e279e50eb2f230960c235dd35f  gcc-6.2.1-workaround.patch"
-sha256sums="e2882295097e47fe089f8ac741a95fef47e0a73a3f3cdf21b56990638f626ea0  qt-everywhere-opensource-src-4.8.7.tar.gz
-1094300e3d69e55eb69d87cbaac6724f68b0618938c6eb1b0ddd22ba99c7f8a2  assistant.desktop
-74c2c5d27a1c1ad08ab01122bcf333f75d0a014b4755d3ddd8764c2425f6e320  designer.desktop
-1b9ecd839c1a5dfcec87653849287c31bf2f4044300958be802ebb943e896998  linguist.desktop
-1e5cb7c2f12d4db35d668f01548a2bef131fe92133d76c78170fb74a377d5ef8  qtconfig.desktop
-b64ea69ca9ed18f464a3810964b340432c528ebb02c9c7851ecc8e99cfe74877  qt-gtk-theme-fix.patch
-e70bdddf67c358c02099bebee460e3c5456666562bff9ef9ebaacf9f4ea7a6df  qt-musl.patch
-40b337c16bbb1d259f315fe5a1b110f9917223aee53b82809934efa4fa5e62a3  qt-musl-iconv-no-bom.patch
-0c74a82080bcb8f4a700e907f4f1ed98a0338c6954620ee42c82002b199acedc  qt-clucene-timeb.patch
-8ef97783ff93a515a31c1e27c6b3b22e2ad2fd9cf0fa94965e5c413ae579e64c  qsettings-recursive-global-mutex.patch
-aaa073195b6fc47ebdc241574da4a29e7ba0a1ae51bdf9a64b866c683f30684a  qt-everywhere-opensource-src-4.8.7-gcc6.patch
-9269bd8552688b75be1468eaca6afdc0c054e644a73a9cffddb6855a96faf86f  qt-aarch64.patch
-0efa3b6f7f25e775874a5f2e09c4111143aafcf9b17b4494b0922a501750bc2c  qtcore-4.8.5-libressl.patch
-781d8ec3a2cfe4980e6707d1dcbb2a223c3aaa23f68a553527f0d38a765d98f6  gcc-6.2.1-workaround.patch"
 sha512sums="f9f81a2e7205e1fd05c8d923dc73244f29aa33f951fa6b7c5c8193449328b37084796b9b71ad0c317e4e6fd00017c10ea5d67b1b2032551cde00548522218125  qt-everywhere-opensource-src-4.8.7.tar.gz
 005ed6fe50b237e4541c0f30cbd87ec5425eff7e7c8d55d2b9b24ea8469e75e1fc8a3f26296841ab4cbd566517b3f1aa1fa7b36e1a9677d284cfff615fd24614  assistant.desktop
 731aae6a0d776c1be5a49dadc5480b205ba5c8e056d108e2bb96a19dd52b6c6ca22387b37505cf97a2575228cd5dd65c773d0fde1c26299e47fdc11a49f651fd  designer.desktop
@@ -321,4 +296,6 @@ a4947c7210f5b9a39f78b1056d2fe87bc9e25dda7d6287f138f8889ae8a3a8687ed7346261f219e9
 dd58096123e99d8cdd1a29dfca45d1f23c912a21edc6074a5398637ecca29b8b3535d862043c5d15b4ab44609d674242d93c31fcae835fede4ddfcc36e63ea26  qt-everywhere-opensource-src-4.8.7-gcc6.patch
 c76f7cb83e3e48e9798ada7c1d2406d560294fe7c38a73e42317db8f83ff9e86fdf7c18bd408cf658c07782733b72dcf03328b267db30cb9bccc11394b2ee93a  qt-aarch64.patch
 bde982ca01a6ee6a5d10a08babd8474e67e84932d996b1e19970e75fa4a9b71a08e81065a13f0a1cce1ac681d44d2e559562ee5ab92e9dfd5fd2cafe28370a74  qtcore-4.8.5-libressl.patch
+b079084fab01eb048151fec287e2bc8b2db756eaf3d8aadb98ef86bcca18f4a0a8319c06f94cdbbc67cf7792fd2d1780682fd0594a18444368f9fad10e7ba852  qt-everywhere-opensource-src-4.8.0-s390-atomic.patch
+89dbf72732cbec3ddeb5542049e4b810863e121697103212de89401d965fa228cdad5b94efaf5ce00a4e5dae43855a287fda8be47bfb12e3858149da19bece63  qt-everywhere-opensource-src-4.8.6-s390.patch
 bf316db4fbd3dfae40aad25573a201c7acc2fb5e34daff73e074a7c0232d9952f392c08b3b1271c7444c5d7da4d7d03fc56efee86a58a4578a9140739d45a616  gcc-6.2.1-workaround.patch"
diff --git a/main/qt/qt-everywhere-opensource-src-4.8.0-s390-atomic.patch b/main/qt/qt-everywhere-opensource-src-4.8.0-s390-atomic.patch
new file mode 100644
index 0000000000..6fedcc8104
--- /dev/null
+++ b/main/qt/qt-everywhere-opensource-src-4.8.0-s390-atomic.patch
@@ -0,0 +1,20 @@
+diff -up qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h.s390-atomic qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h
+--- qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h.s390-atomic	2011-12-18 16:15:20.000000000 +0100
++++ qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h	2011-12-18 16:17:34.000000000 +0100
+@@ -400,6 +400,16 @@ Q_INLINE_TEMPLATE T* QBasicAtomicPointer
+ 
+ 
+ template <typename T>
++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
++{
++#ifndef __s390x__
++    return (T *)__CS_OLD_LOOP(&_q_value, valueToAdd * sizeof(T), "ar", "", "bcr 15,0\n");
++#else
++    return (T *)__CSG_OLD_LOOP(&_q_value, valueToAdd * sizeof(T), "agr", "", "bcr 15,0\n");
++#endif
++}
++
++template <typename T>
+ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
+ {
+     return fetchAndAddOrdered(valueToAdd);
diff --git a/main/qt/qt-everywhere-opensource-src-4.8.6-s390.patch b/main/qt/qt-everywhere-opensource-src-4.8.6-s390.patch
new file mode 100644
index 0000000000..5098c08225
--- /dev/null
+++ b/main/qt/qt-everywhere-opensource-src-4.8.6-s390.patch
@@ -0,0 +1,31 @@
+diff -up qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
+--- qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390	2014-03-30 15:36:49.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h	2014-03-31 17:59:16.846465899 -0500
+@@ -189,6 +189,18 @@
+ #define WTF_CPU_SPARC 1
+ #endif
+ 
++/* CPU(S390X) - S390 64-bit */
++#if defined(__s390x__)
++#define WTF_CPU_S390X 1
++#define WTF_CPU_BIG_ENDIAN 1
++#endif
++
++/* CPU(S390) - S390 32-bit */
++#if defined(__s390__)
++#define WTF_CPU_S390 1
++#define WTF_CPU_BIG_ENDIAN 1
++#endif
++
+ /* CPU(X86) - i386 / x86 32-bit */
+ #if   defined(__i386__) \
+     || defined(i386)     \
+@@ -903,7 +915,7 @@
+ #endif
+ 
+ #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64)
+-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64)
++#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64) || CPU(S390X)
+ #define WTF_USE_JSVALUE64 1
+ #elif CPU(ARM) || CPU(PPC64)
+ #define WTF_USE_JSVALUE32 1
-- 
2.11.1

---

---

From: "Tuan M. Hoang" <[email-masked]>
Date: Fri, 17 Mar 2017 07:02:50 -0400

Reorder a little bit. Update mismatch sha512 sum.

---
 main/boost/APKBUILD | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/main/boost/APKBUILD b/main/boost/APKBUILD
index 474399a3b4..a0df10b020 100644
--- a/main/boost/APKBUILD
+++ b/main/boost/APKBUILD
@@ -62,6 +62,17 @@ prepare() {
 	__EOF__
 }
 
+case "$CARCH" in
+	armhf|aarch64) _boostarch=arm ;;
+	ppc64*) _boostarch=ppc ;;
+	s390x) _boostarch=s390 ;;
+	*) _boostarch=$CARCH ;;
+esac
+_enginedir=tools/build/src/engine
+_bjam="${builddir}/$_enginedir/bin.linux${_boostarch}/bjam"
+[ "$_boostarch" = "s390" ] && _bjam="${builddir}/$_enginedir/bin.linux390/bjam" && \
+	_options_s390="--without-context --without-coroutine --without-coroutine2"
+
 _options="--user-config=\"$builddir/user-config.jam\"
 	--prefix=\"$pkgdir/usr\"
 	release
@@ -76,22 +87,15 @@ _options="--user-config=\"$builddir/user-config.jam\"
 	--layout=tagged
 	-q
 	-j${JOBS:-2}
+	${_options_s390}
 	"
 
-case "$CARCH" in
-	armhf|aarch64) _boostarch=arm ;;
-	ppc64*) _boostarch=ppc ;;
-	*) _boostarch=$CARCH ;;
-esac
-_enginedir=tools/build/src/engine
-
 build() {
 	export BOOST_ROOT="$builddir"
 
 	msg "Building bjam"
 	cd "$builddir"/$_enginedir
 	CC= ./build.sh cc || return 1
-	local _bjam="$PWD/bin.linux$_boostarch/bjam"
 
 	msg "Building bcp"
 	cd "$builddir"/tools/bcp
@@ -106,7 +110,7 @@ package() {
 	export BOOST_ROOT="$builddir"
 	cd "$builddir"
 
-	install -Dm755 $_enginedir/bin.linux${_boostarch}/bjam \
+	install -Dm755 $_bjam \
 		"$pkgdir"/usr/bin/bjam || return 1
 
 	install -Dm755 dist/bin/bcp "$pkgdir"/usr/bin/bcp || return 1
@@ -138,7 +142,7 @@ _pyversion() {
 	$1 -c 'import sys; print("%i.%i" % (sys.version_info.major, sys.version_info.minor))'
 }
 
-sha512sums="26f9bd25133e459e2e583cec7e0cbaf805de920a411dd1aa4e2b88091f6a6a9ea3642545da38fa3e7b8f44c336b8b909a4ce76db5502f7140fd62a1505e18e7c  boost_1_62_0.tar.bz2
+sha512sums="5385ae3d5255a433a704169ad454d8dc2b0b5bcae3fb23defd6570df4ff7d845cf9fcbeebccdc1c5db0eec9f82ee3d90040de9507c8167467c635d3b215463be  boost_1_62_0.tar.bz2
 5804c344b5e5ece17811e744f1965c58840b6695a084dd09c23c9db380f3cbfbca201d6c595b5379bc12ff6f285794509799d28864df6037db6212c63adb2207  libressl.patch
 d96d4d37394a31764ed817d0bc4a99cffa68a75ff1ecfd4417b9e1e5ae2c31a96ed24f948c6f2758ffdac01328d2402c4cf0d33a37107e4f5f721e636daebd66  boost-1.57.0-python-abi_letters.patch
 132c4b62815d605c2d3c9038427fa4f422612a33711d47b2862f2311516af8a371d6b75bf078a7bffe20be863f8d21fb9fe74dc1a1bac3a10d061e9768ec3e02  boost-1.57.0-python-libpython_dep.patch
-- 
2.11.1

---

---

From: "Tuan M. Hoang" <[email-masked]>
Date: Fri, 17 Mar 2017 07:02:52 -0400

---
 main/valgrind/APKBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/main/valgrind/APKBUILD b/main/valgrind/APKBUILD
index f4fb43aed0..f21a3f7eae 100644
--- a/main/valgrind/APKBUILD
+++ b/main/valgrind/APKBUILD
@@ -4,7 +4,7 @@ pkgver=3.12.0
 pkgrel=0
 pkgdesc="A tool to help find memory-management problems in programs"
 url="http://valgrind.org/"
-arch="x86 x86_64 armhf ppc64le"
+arch="x86 x86_64 armhf ppc64le s390x"
 license="GPL2+"
 depends=""
 # it seems like busybox sed works but the configure script requires GNU sed
-- 
2.11.1

---

---

From: "Tuan M. Hoang" <[email-masked]>
Date: Fri, 17 Mar 2017 07:02:54 -0400

---
 main/lua-turbo/APKBUILD | 2 +-
 main/luajit/APKBUILD    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/main/lua-turbo/APKBUILD b/main/lua-turbo/APKBUILD
index 08c9c3e669..53660a7417 100644
--- a/main/lua-turbo/APKBUILD
+++ b/main/lua-turbo/APKBUILD
@@ -7,7 +7,7 @@ pkgver=2.0.4
 pkgrel=2
 pkgdesc="a framework built for LuaJIT 2 and Linux"
 url="http://www.turbolua.org/"
-arch="all"
+arch="!s390x"
 license="GPL"
 depends="luajit"
 depends_dev=""
diff --git a/main/luajit/APKBUILD b/main/luajit/APKBUILD
index 87affb348b..d0a8787f94 100644
--- a/main/luajit/APKBUILD
+++ b/main/luajit/APKBUILD
@@ -7,7 +7,7 @@ _realver=${pkgver/_/-}
 pkgrel=0
 pkgdesc='Just-in-time compiler and replacement for Lua 5.1 '
 url='http://luajit.org'
-arch="all"
+arch="!s390x"
 license="MIT"
 makedepends="$depends_dev paxmark"
 subpackages="$pkgname-dev $pkgname-doc"
-- 
2.11.1

---

---

From: "Tuan M. Hoang" <[email-masked]>
Date: Fri, 17 Mar 2017 07:02:57 -0400

---
 main/acpica/APKBUILD             |  2 +-
 main/acpica/disable-werror.patch | 15 ++++++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/main/acpica/APKBUILD b/main/acpica/APKBUILD
index 0cd66d833a..964fe6e1d8 100644
--- a/main/acpica/APKBUILD
+++ b/main/acpica/APKBUILD
@@ -46,4 +46,4 @@ sha256sums="8f69ac88fb14ef8dcdb6d5bcfb912115dead15d64cb06f78f44867d2e826c931  ac
 0b368cfdd71390b139564eac079e0c3190f9acfe53247591494f616e0e752b59  disable-werror.patch"
 sha512sums="82c8bc733c082e045f3087b3ffb82a828defe8702507534771aa00a84774bcd04f8b0eabd7e987c40f9dd8feff6ad8e9f272857428ed3accc2812fefbed5b024  acpica-unix-20160930.tar.gz
 7999047808e26bd83696cf11641a2ba99a986d89ac861cc95d79a9849d1ae1aef7eb107b1c472f1e886cf6556a78554ed6cc7af269b1e2671f3445d1a7ced268  COPYING
-066643cdf1beaa0ba4747e4973d5cc7a83c1e9a24acc142fa1525d4f1340ff3a7133a9fff139abe0f409faed88d0e1479eed5ce14b82e37ff46e91a4421c2d4e  disable-werror.patch"
+5be37c6e90e7141f2246ec8eb5205002c100f81d59c7106cf69a06773a4806f55d99b70be02b13df89d5d2c22725292b611b84b23c686c967d176ad35b110c69  disable-werror.patch"
diff --git a/main/acpica/disable-werror.patch b/main/acpica/disable-werror.patch
index 70acc6e79b..d6b5a63819 100644
--- a/main/acpica/disable-werror.patch
+++ b/main/acpica/disable-werror.patch
@@ -1,10 +1,19 @@
---- ./generate/unix/Makefile.config.orig
-+++ ./generate/unix/Makefile.config
-@@ -185,7 +185,6 @@
+---
+ generate/unix/Makefile.config | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/generate/unix/Makefile.config b/generate/unix/Makefile.config
+index da0f61d..78b5f84 100644
+--- a/generate/unix/Makefile.config
++++ b/generate/unix/Makefile.config
+@@ -185,7 +185,7 @@ CWARNINGFLAGS = \
      -Wall\
      -Wbad-function-cast\
      -Wdeclaration-after-statement\
 -    -Werror\
++    -Wno-pointer-to-int-cast\
      -Wformat=2\
      -Wmissing-declarations\
      -Wmissing-prototypes\
+--
+2.11.1
-- 
2.11.1

---