Your message dated Thu, 03 Apr 2014 05:19:09 +0000
with message-id <[email protected]>
and subject line Bug#743395: fixed in trafficserver 4.1.2-1.1
has caused the Debian Bug report #743395,
regarding trafficserver: support for mips
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
743395: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=743395
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: trafficserver
Version: 4.1.2-1
Tags: sid patch
Severity: important
Justification: FTBFS
User: [email protected]
Usertags: mips-patch


While trying to build trafficserver on mips architecture,
build fails with an error:

> In file included from ../../lib/ts/libts.h:64:0,
>                  from P_EventSystem.h:34,
>                  from EventSystem.cc:31:
> ../../lib/ts/ink_queue.h:144:2: error: #error "unsupported processor"
>  #error "unsupported processor"

After some extensions,
I was able to build trafficserver successfully.
Also, all tests passed.
Mips related changes are included in add-mips-support.patch.


Beside these changes,
for trafficserver version 4.1.2-1 it is needed to
apply patch:
0001-TS-2454-Fix-undefined-reference-to-__sync_fetch_and_.patch
from:
https://issues.apache.org/jira/browse/TS-2454.

These changes are needed to avoid an error:
> ../../lib/ts/.libs/libtsutil.so: undefined reference to 
> `__sync_fetch_and_sub_8'

This patch is included in newer 4.2.0 trafficserver version.



Could you please consider including these changes
in order to support trafficserver for
MIPS platform?


Thanks,
Dejan
diff -uNr trafficserver-4.1.2/lib/ts/ink_atomic.h trafficserver-4.1.2.mips/lib/ts/ink_atomic.h
--- trafficserver-4.1.2.orig/lib/ts/ink_atomic.h	2013-12-05 22:07:48.000000000 +0000
+++ trafficserver-4.1.2/lib/ts/ink_atomic.h	2014-02-12 16:10:38.000000000 +0000
@@ -168,7 +170,7 @@
 }
 
 // Special hacks for ARM 32-bit
-#if defined(__arm__) && (SIZEOF_VOIDP == 4)
+#if (defined(__arm__)|| defined(__mips__))  && (SIZEOF_VOIDP == 4)
 extern ProcessMutex __global_death;
 
 template<>
diff -uNr trafficserver-4.1.2/lib/ts/ink_queue.h trafficserver-4.1.2.mips/lib/ts/ink_queue.h
--- trafficserver-4.1.2.orig/lib/ts/ink_queue.h	2013-12-05 22:07:48.000000000 +0000
+++ trafficserver-4.1.2/lib/ts/ink_queue.h	2014-02-12 14:09:35.000000000 +0000
@@ -85,7 +85,7 @@
   // lock, use INK_QUEUE_LD to read safely.
   typedef union
   {
-#if (defined(__i386__) || defined(__arm__)) && (SIZEOF_VOIDP == 4)
+#if (defined(__i386__) || defined(__arm__) || defined(__mips__)) && (SIZEOF_VOIDP == 4)
     struct
     {
       void *pointer;
@@ -124,7 +124,7 @@
 #define TO_PTR(_x) ((void*)(_x))
 #endif
 
-#if (defined(__i386__) || defined(__arm__)) && (SIZEOF_VOIDP == 4)
+#if (defined(__i386__) || defined(__arm__) || defined(__mips__)) && (SIZEOF_VOIDP == 4)
 #define FREELIST_POINTER(_x) (_x).s.pointer
 #define FREELIST_VERSION(_x) (_x).s.version
 #define SET_FREELIST_POINTER_VERSION(_x,_p,_v) \
diff -uNr trafficserver-4.1.2/lib/ts/ink_queue_utils.cc trafficserver-4.1.2.mips/lib/ts/ink_queue_utils.cc
--- trafficserver-4.1.2.orig/lib/ts/ink_queue_utils.cc	2013-12-05 22:07:48.000000000 +0000
+++ trafficserver-4.1.2/lib/ts/ink_queue_utils.cc	2014-02-28 15:11:43.000000000 +0000
@@ -68,7 +68,7 @@
 void
 ink_queue_load_64(void *dst, void *src)
 {
-#if (defined(__i386__) || defined(__arm__)) && (SIZEOF_VOIDP == 4)
+#if (defined(__i386__) || defined(__arm__) || defined(__mips__)) && (SIZEOF_VOIDP == 4)
   volatile int32_t src_version = (*(head_p *) src).s.version;
   void *src_pointer = (*(head_p *) src).s.pointer;
 
diff -uNr trafficserver-4.1.2/plugins/experimental/geoip_acl/lulu.h trafficserver-4.1.2.mips/plugins/experimental/geoip_acl/lulu.h
--- trafficserver-4.1.2.orig/plugins/experimental/geoip_acl/lulu.h	2013-12-05 22:07:48.000000000 +0000
+++ trafficserver-4.1.2/plugins/experimental/geoip_acl/lulu.h	2014-02-12 16:35:36.000000000 +0000
@@ -42,6 +42,10 @@
 #define mb()  __asm__ __volatile__ ( "dmb" : : : "memory")
 #define rmb() __asm__ __volatile__ ( "dmb" : : : "memory")
 #define wmb() __asm__ __volatile__ ( "" : : : "memory")
+#elif defined(__mips__)
+#define mb()  __asm__ __volatile__ ( "sync" : : : "memory")
+#define rmb() __asm__ __volatile__ ( "sync" : : : "memory")
+#define wmb() __asm__ __volatile__ ( "" : : : "memory")
 #else
 #error "Define barriers"
 #endif
diff -uNr trafficserver-4.1.2/plugins/header_filter/lulu.h trafficserver-4.1.2.mips/plugins/header_filter/lulu.h
--- trafficserver-4.1.2.orig/plugins/header_filter/lulu.h	2013-12-05 22:07:48.000000000 +0000
+++ trafficserver-4.1.2/plugins/header_filter/lulu.h	2014-02-12 16:30:46.000000000 +0000
@@ -41,6 +41,10 @@
 #define mb()  __asm__ __volatile__ ( "dmb" : : : "memory")
 #define rmb() __asm__ __volatile__ ( "dmb" : : : "memory")
 #define wmb() __asm__ __volatile__ ( "" : : : "memory")
+#elif defined(__mips__)
+#define mb()  __asm__ __volatile__ ( "sync" : : : "memory")
+#define rmb() __asm__ __volatile__ ( "sync" : : : "memory")
+#define wmb() __asm__ __volatile__ ( "" : : : "memory")
 #elif defined(__arm__)
 #else
 #error "Define barriers"
diff -uNr trafficserver-4.1.2/plugins/header_rewrite/lulu.h trafficserver-4.1.2.mips/plugins/header_rewrite/lulu.h
--- trafficserver-4.1.2.orig/plugins/header_rewrite/lulu.h	2013-12-05 22:07:48.000000000 +0000
+++ trafficserver-4.1.2/plugins/header_rewrite/lulu.h	2014-02-12 16:31:46.000000000 +0000
@@ -39,6 +39,10 @@
 #define mb()  __asm__ __volatile__ ( "dmb" : : : "memory")
 #define rmb() __asm__ __volatile__ ( "dmb" : : : "memory")
 #define wmb() __asm__ __volatile__ ( "" : : : "memory")
+#elif defined(__mips__)
+#define mb()  __asm__ __volatile__ ( "sync" : : : "memory")
+#define rmb() __asm__ __volatile__ ( "sync" : : : "memory")
+#define wmb() __asm__ __volatile__ ( "" : : : "memory")
 #else
 #error "Define barriers"
 #endif
From 71c0cfdd7e8da6d792e1ac5771eff6e31561659f Mon Sep 17 00:00:00 2001
From: Yunkai Zhang <[email protected]>
Date: Sat, 28 Dec 2013 19:59:33 +0800
Subject: [PATCH] TS-2454: Fix undefined reference to `__sync_fetch_and_sub_8'
 on ARM 32bit system

Signed-off-by: Yunkai Zhang <[email protected]>
Signed-off-by: Yunkai Zhang <[email protected]>
---
 lib/ts/ink_atomic.h | 39 ++++++++++++++++++++++++++++++++-------
 1 file changed, 32 insertions(+), 7 deletions(-)

diff --git a/lib/ts/ink_atomic.h b/lib/ts/ink_atomic.h
index 51d87c0..fc8a9f3 100644
--- a/lib/ts/ink_atomic.h
+++ b/lib/ts/ink_atomic.h
@@ -50,6 +50,7 @@ typedef volatile int8_t vint8;
 typedef volatile int16_t vint16;
 typedef volatile int32_t vint32;
 typedef volatile int64_t vint64;
+typedef volatile uint64_t vuint64;
 typedef volatile long vlong;
 typedef volatile void *vvoidp;
 
@@ -57,6 +58,7 @@ typedef vint8 *pvint8;
 typedef vint16 *pvint16;
 typedef vint32 *pvint32;
 typedef vint64 *pvint64;
+typedef vuint64 *pvuint64;
 typedef vlong *pvlong;
 typedef vvoidp *pvvoidp;
 
@@ -194,9 +196,8 @@ ink_atomic_cas<int64_t>(pvint64 mem, int64_t old, int64_t new_value) {
   return 0;
 }
 
-template<>
-inline int64_t
-ink_atomic_increment<int64_t>(pvint64 mem, int64_t value) {
+template<typename Amount> static inline int64_t
+ink_atomic_increment(pvint64 mem, Amount value) {
   int64_t curr;
   ink_mutex_acquire(&__global_death);
   curr = *mem;
@@ -205,10 +206,34 @@ ink_atomic_increment<int64_t>(pvint64 mem, int64_t value) {
   return curr;
 }
 
-template<>
-inline int64_t
-ink_atomic_increment<int64_t>(pvint64 mem, int value) {
-  return ink_atomic_increment(mem, static_cast<int64_t>(value));
+template<typename Amount> static inline int64_t
+ink_atomic_decrement(pvint64 mem, Amount value) {
+  int64_t curr;
+  ink_mutex_acquire(&__global_death);
+  curr = *mem;
+  *mem = curr - value;
+  ink_mutex_release(&__global_death);
+  return curr;
+}
+
+template<typename Amount> static inline uint64_t
+ink_atomic_increment(pvuint64 mem, Amount value) {
+  uint64_t curr;
+  ink_mutex_acquire(&__global_death);
+  curr = *mem;
+  *mem = curr + value;
+  ink_mutex_release(&__global_death);
+  return curr;
+}
+
+template<typename Amount> static inline uint64_t
+ink_atomic_decrement(pvuint64 mem, Amount value) {
+  uint64_t curr;
+  ink_mutex_acquire(&__global_death);
+  curr = *mem;
+  *mem = curr - value;
+  ink_mutex_release(&__global_death);
+  return curr;
 }
 
 #endif /* Special hacks for ARM 32-bit */
-- 
1.8.4.2


--- End Message ---
--- Begin Message ---
Source: trafficserver
Source-Version: 4.1.2-1.1

We believe that the bug you reported is fixed in the latest version of
trafficserver, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Anibal Monsalve Salazar <[email protected]> (supplier of updated trafficserver 
package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Thu, 03 Apr 2014 04:18:23 +0100
Source: trafficserver
Binary: trafficserver trafficserver-dev
Architecture: source mipsel
Version: 4.1.2-1.1
Distribution: unstable
Urgency: medium
Maintainer: Arno Töll <[email protected]>
Changed-By: Anibal Monsalve Salazar <[email protected]>
Description: 
 trafficserver - fast, scalable and extensible HTTP/1.1 compliant caching proxy 
se
 trafficserver-dev - Apache Traffic Server Software Developers Kit (SDK)
Closes: 737510 743395
Changes: 
 trafficserver (4.1.2-1.1) unstable; urgency=medium
 .
   * Non-maintainer upload.
   * Fix undefined reference to `__sync_fetch_and_sub_8' on ARM 32bit
     Add 0001-TS-2454-Fix-undefined-reference-to-__sync_fetch_and_.patch
     from https://issues.apache.org/jira/browse/TS-2454
     Patch by Yunkai Zhang
   * Add support for MIPS
     Add add-mips-support.patch
     Submitted: https://issues.apache.org/jira/browse/TS-2687
     Merged: 
https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;h=2f81790
     Patch by Dejan Latinovic
     Closes: 743395
   * Build-depend on libboost-dev
     Patch by Dejan Latinovic
     Closes: #737510
Checksums-Sha1: 
 d9ef738060db4e60c1af8a41f912136bcc519c8c 2244 trafficserver_4.1.2-1.1.dsc
 57fb68f4b6cbbae7e3635f9e6470584440338387 19240 
trafficserver_4.1.2-1.1.debian.tar.xz
 236d48c4beaa468b27fff8bc7a4f081b9cc47b21 2226128 
trafficserver_4.1.2-1.1_mipsel.deb
 0911bc8d04f26470e49796864401e8ad68c1afa7 178250 
trafficserver-dev_4.1.2-1.1_mipsel.deb
Checksums-Sha256: 
 b0d30f8f360cc67c6fd1956e89e5c74ef8036fb32b81a1f8d562c4aa120b4a7f 2244 
trafficserver_4.1.2-1.1.dsc
 dc08e9992f74882a3b35806112cadc99f475ea1ab3aff30e7b8cdaa90412aa04 19240 
trafficserver_4.1.2-1.1.debian.tar.xz
 b399d32816f0807b750244cdb913967f5f2e698419ff1043b42a9bf702114267 2226128 
trafficserver_4.1.2-1.1_mipsel.deb
 ed2f26cff1ceb026fa8ce285996434933595454424ccb3e1a71642dadfb55f8b 178250 
trafficserver-dev_4.1.2-1.1_mipsel.deb
Files: 
 53e6e7a01adbc79b05ba75463a09cd7b 2244 web extra trafficserver_4.1.2-1.1.dsc
 9b2b6b1cf16bce84c420d500a8cf8224 19240 web extra 
trafficserver_4.1.2-1.1.debian.tar.xz
 d096c37c84864990de7bd16821987af3 2226128 web extra 
trafficserver_4.1.2-1.1_mipsel.deb
 5bbd263040d5e3e7155abc1d700e8573 178250 web extra 
trafficserver-dev_4.1.2-1.1_mipsel.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCgAGBQJTPOt4AAoJEHxWrP6UeJfYUSoP/3DZaUmIadzF+ABfMuYVChJW
6uvBcxRtlcbs/ug+hrpswRy2BhnUpx3MsoTbJWXWeYKWo0BaWIv08AgcePul3800
z2PdV65E2xXKwtDv++68Tr9exwSpoq5VrpQJwHJH2zWX0GIx5tLYl0xdjwoTt7fS
rPtA2JENbiiZfbxLkhjypmvFHGqrYdvC4ujJF36wqomtLGhoCq0+kx43NVq82Xxg
tWrpv6uvfoabkrv7Jx5679gBXVQ3sOUk/+E1gUTcrGiO8rWf11/ve0fSc+KK+1qT
+RDBBkg80wDcciUvHLCsFs582C0XptF5Re609RDfg+rUh1dE9/bnbXEah4EKS/c5
71OHDBXfdE0UC9bvViVoluZZjL2721/IIw6/Np0U9wuy9Zny57dBRlLbn6DsBlkx
ZUzDcyVo0GZQRReOPm6e0qQ4VcK6F6S9wg4pY9TKORUZc6+8bMHJyGoZgv+oQJtQ
xLDL0sIdRk1ExZA3jIVNd8MYJ54GhXsb/SQssHKC9jsEt6eGdZcye5JEmVRnYL/U
NVDI4dMAGGGjac7NW/ptLnYZEZCy0nPa52dPEShoWLwQNXd8kuo1w3/5G93EbDoM
TgA4ewQUoeU7pQEv3K9HgDxzddKCZeTHU+3JoiziDq2ERgcmGJO4xoh9DL4blPt8
9ByD2BMDKl/8OutlltST
=2iYm
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to