Breno Leitao created TS-2922:
--------------------------------
Summary: support the new ppc64le platform
Key: TS-2922
URL: https://issues.apache.org/jira/browse/TS-2922
Project: Traffic Server
Issue Type: New Feature
Components: Build
Reporter: Breno Leitao
HI,
I would like to have support for trafficserver on the PPC64 little endian.
I basically enabled it as 64 bits architecture, and using the barriers from the
kernel.
Thank you,
Here is the patch:
Index: trafficserver-4.1.2/plugins/experimental/geoip_acl/lulu.h
===================================================================
--- a/plugins/experimental/geoip_acl/lulu.h 2014-07-07 19:16:43.000000000
+0000
+++ b/plugins/experimental/geoip_acl/lulu.h 2014-07-07 19:40:25.000000000
+0000
@@ -46,6 +46,10 @@
#define mb() __asm__ __volatile__ ( "sync" : : : "memory")
#define rmb() __asm__ __volatile__ ( "sync" : : : "memory")
#define wmb() __asm__ __volatile__ ( "" : : : "memory")
+#elif defined(__powerpc64__)
+#define mb() __asm__ __volatile__ ("sync" : : : "memory")
+#define rmb() __asm__ __volatile__ ("sync" : : : "memory")
+#define wmb() __asm__ __volatile__ ("sync" : : : "memory")
#else
#error "Define barriers"
#endif
Index: trafficserver-4.1.2/plugins/header_filter/lulu.h
===================================================================
--- a/plugins/header_filter/lulu.h 2014-07-07 19:16:43.000000000 +0000
+++ b/plugins/header_filter/lulu.h 2014-07-07 19:39:47.000000000 +0000
@@ -45,6 +45,10 @@
#define mb() __asm__ __volatile__ ( "sync" : : : "memory")
#define rmb() __asm__ __volatile__ ( "sync" : : : "memory")
#define wmb() __asm__ __volatile__ ( "" : : : "memory")
+#elif defined(__powerpc64__)
+#define mb() __asm__ __volatile__ ("sync" : : : "memory")
+#define rmb() __asm__ __volatile__ ("sync" : : : "memory")
+#define wmb() __asm__ __volatile__ ("sync" : : : "memory")
#elif defined(__arm__)
#else
#error "Define barriers"
Index: trafficserver-4.1.2/plugins/header_rewrite/lulu.h
===================================================================
--- a/plugins/header_rewrite/lulu.h 2014-07-07 19:16:43.000000000 +0000
+++ b/plugins/header_rewrite/lulu.h 2014-07-07 19:39:26.000000000 +0000
@@ -43,6 +43,10 @@
#define mb() __asm__ __volatile__ ( "sync" : : : "memory")
#define rmb() __asm__ __volatile__ ( "sync" : : : "memory")
#define wmb() __asm__ __volatile__ ( "" : : : "memory")
+#elif defined(__powerpc64__)
+#define mb() __asm__ __volatile__ ("sync" : : : "memory")
+#define rmb() __asm__ __volatile__ ("sync" : : : "memory")
+#define wmb() __asm__ __volatile__ ("sync" : : : "memory")
#else
#error "Define barriers"
#endif
Index: trafficserver-4.1.2/lib/ts/ink_queue.h
===================================================================
--- a/lib/ts/ink_queue.h 2014-07-07 19:16:43.000000000 +0000
+++ b/lib/ts/ink_queue.h 2014-07-07 20:44:34.000000000 +0000
@@ -134,7 +134,7 @@
#define FREELIST_VERSION(_x) (_x).s.version
#define SET_FREELIST_POINTER_VERSION(_x,_p,_v) \
(_x).s.pointer = _p; (_x).s.version = _v
-#elif defined(__x86_64__) || defined(__ia64__)
+#elif defined(__x86_64__) || defined(__ia64__) || defined(__powerpc64__)
#define FREELIST_POINTER(_x) ((void*)(((((intptr_t)(_x).data)<<16)>>16) | \
(((~((((intptr_t)(_x).data)<<16>>63)-1))>>48)<<48))) // sign extend
#define FREELIST_VERSION(_x) (((intptr_t)(_x).data)>>48)
--
This message was sent by Atlassian JIRA
(v6.2#6252)