Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 898658 Details for
Bug 1080073
atlas build failure on ppc64le archi
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
atlas.ppc64le-abiv2.patch
atlas.ppc64le-abiv2.patch (text/plain), 9.32 KB, created by
Michel Normand
on 2014-05-23 11:34:55 UTC
(
hide
)
Description:
atlas.ppc64le-abiv2.patch
Filename:
MIME Type:
Creator:
Michel Normand
Created:
2014-05-23 11:34:55 UTC
Size:
9.32 KB
patch
obsolete
>From: Michel Normand <normand@linux.vnet.ibm.com> >Subject: atlas.ppc64le abiv2 >Date: Mon, 14 Apr 2014 18:03:06 +0200 > >atlas.ppc64le abiv2 >* do not use opd section for ABI V2 >* define TOC in r2 in function call > TODO: may be not required everywhere. >based on work of Guy and Thierry > >TODO: still have to work on stack FSIZE > >TODO: for atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c > need to better understand the change about ld pC0 > > >Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com> >--- > ATLAS/CONFIG/src/backend/probe_AltiVec.S | 2 - > ATLAS/CONFIG/src/backend/probe_VSX.S | 2 - > ATLAS/src/threads/ATL_DecAtomicCount_ppc.S | 8 ++++++- > ATLAS/src/threads/ATL_ResetAtomicCount_ppc.S | 8 ++++++- > ATLAS/tune/blas/gemm/CASES/ATL_cmm4x4x128_av.c | 8 ++++++- > ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x2pf_av.c | 10 +++++++-- > ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x32_ppc.c | 8 ++++++- > ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c | 26 +++++++++++++++++++++++-- > ATLAS/tune/blas/gemm/CASES/ATL_smm4x4x128_av.c | 8 ++++++- > 9 files changed, 69 insertions(+), 11 deletions(-) > >Index: atlas/ATLAS/CONFIG/src/backend/probe_AltiVec.S >=================================================================== >--- atlas.orig/ATLAS/CONFIG/src/backend/probe_AltiVec.S >+++ atlas/ATLAS/CONFIG/src/backend/probe_AltiVec.S >@@ -6,7 +6,7 @@ > * > */ > .text >-#if defined(ATL_USE64BITS) && defined (ATL_OS_Linux) >+#if defined(ATL_USE64BITS) && defined (ATL_OS_Linux) && _CALL_ELF != 2 > .align 2 > .globl ATL_asmdecor(do_vsum) > .section ".opd","aw" >Index: atlas/ATLAS/CONFIG/src/backend/probe_VSX.S >=================================================================== >--- atlas.orig/ATLAS/CONFIG/src/backend/probe_VSX.S >+++ atlas/ATLAS/CONFIG/src/backend/probe_VSX.S >@@ -6,7 +6,7 @@ > * > */ > .text >-#if defined(ATL_USE64BITS) && defined (ATL_OS_Linux) >+#if defined(ATL_USE64BITS) && defined (ATL_OS_Linux) && _CALL_ELF != 2 > .align 2 > .globl ATL_asmdecor(do_vsum) > .section ".opd","aw" >Index: atlas/ATLAS/src/threads/ATL_DecAtomicCount_ppc.S >=================================================================== >--- atlas.orig/ATLAS/src/threads/ATL_DecAtomicCount_ppc.S >+++ atlas/ATLAS/src/threads/ATL_DecAtomicCount_ppc.S >@@ -4,7 +4,7 @@ > .globl _ATL_DecAtomicCount > _ATL_DecAtomicCount: > #else >- #if defined(ATL_USE64BITS) >+ #if defined(ATL_USE64BITS) && _CALL_ELF != 2 > /* > * Official Program Descripter section, seg fault w/o it on Linux/PPC64 > */ >@@ -22,6 +22,12 @@ ATL_DecAtomicCount: > #else > .globl ATL_DecAtomicCount > ATL_DecAtomicCount: >+ #if _CALL_ELF == 2 >+ .type ATL_DecAtomicCount,@function >+0: addis 2,12,.TOC.-0b@ha >+ addi 2,2,.TOC.-0b@l >+ .localentry ATL_DecAtomicCount, .-ATL_DecAtomicCount >+ #endif > #endif > #endif > #error "Code is not reliable on PPC, don't know why" >Index: atlas/ATLAS/src/threads/ATL_ResetAtomicCount_ppc.S >=================================================================== >--- atlas.orig/ATLAS/src/threads/ATL_ResetAtomicCount_ppc.S >+++ atlas/ATLAS/src/threads/ATL_ResetAtomicCount_ppc.S >@@ -4,7 +4,7 @@ > .globl _ATL_ResetAtomicCount > _ATL_ResetAtomicCount: > #else >- #if defined(ATL_USE64BITS) >+ #if defined(ATL_USE64BITS) && _CALL_ELF != 2 > /* > * Official Program Descripter section, seg fault w/o it on Linux/PPC64 > */ >@@ -22,6 +22,12 @@ ATL_ResetAtomicCount: > #else > .globl ATL_ResetAtomicCount > ATL_ResetAtomicCount: >+ #if _CALL_ELF == 2 >+ .type ATL_ResetAtomicCount,@function >+0: addis 2,12,.TOC.-0b@ha >+ addi 2,2,.TOC.-0b@l >+ .localentry ATL_ResetAtomicCount, .-ATL_ResetAtomicCount >+ #endif > #endif > #endif > /* r3 r3 r4 */ >Index: atlas/ATLAS/tune/blas/gemm/CASES/ATL_cmm4x4x128_av.c >=================================================================== >--- atlas.orig/ATLAS/tune/blas/gemm/CASES/ATL_cmm4x4x128_av.c >+++ atlas/ATLAS/tune/blas/gemm/CASES/ATL_cmm4x4x128_av.c >@@ -181,7 +181,7 @@ void ATL_USERMM(const int M, const int N > .globl Mjoin(_,ATL_USERMM) > Mjoin(_,ATL_USERMM): > #else >- #if defined(ATL_USE64BITS) >+ #if defined(ATL_USE64BITS) && _CALL_ELF != 2 > /* > * Official Program Descripter section, seg fault w/o it on Linux/PPC64 > */ >@@ -199,6 +199,12 @@ Mjoin(.,ATL_USERMM): > #else > .globl ATL_USERMM > ATL_USERMM: >+ #if _CALL_ELF == 2 >+ .type ATL_USERMM,@function >+0: addis 2,12,.TOC.-0b@ha >+ addi 2,2,.TOC.-0b@l >+ .localentry ATL_USERMM, .-ATL_USERMM >+ #endif > #endif > #endif > /* Save regs */ >Index: atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x2pf_av.c >=================================================================== >--- atlas.orig/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x2pf_av.c >+++ atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x2pf_av.c >@@ -279,7 +279,7 @@ void ATL_USERMM(const int M, const int N > #endif > .text > #ifdef ATL_GAS_LINUX_PPC >- #if defined(ATL_USE64BITS) >+ #if defined(ATL_USE64BITS) && _CALL_ELF != 2 > /* > * No idea what this does, but seg fault without it (I think it is > * partially resp for making code callable from both static & PIC code) >@@ -296,8 +296,14 @@ ATL_USERMM: > .globl Mjoin(.,ATL_USERMM) > Mjoin(.,ATL_USERMM): > #else >-.globl ATL_USERMM >+ .globl ATL_USERMM > ATL_USERMM: >+ #if _CALL_ELF == 2 >+ .type ATL_USERMM,@function >+0: addis 2,12,.TOC.-0b@ha >+ addi 2,2,.TOC.-0b@l >+ .localentry ATL_USERMM, .-ATL_USERMM >+ #endif > #define IROFF 8 > #define FROFF IROFF+48 > #define FSIZE (((IROFF+FROFF+144+15)/16)*16) >Index: atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x32_ppc.c >=================================================================== >--- atlas.orig/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x32_ppc.c >+++ atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x32_ppc.c >@@ -268,7 +268,7 @@ Mjoin(.,ATL_USERMM): > .globl Mjoin(_,ATL_USERMM) > Mjoin(_,ATL_USERMM): > #else >- #if defined(ATL_USE64BITS) >+ #if defined(ATL_USE64BITS) && _CALL_ELF != 2 > /* > * Official Program Descripter section, seg fault w/o it on Linux/PPC64 > */ >@@ -285,6 +285,12 @@ Mjoin(.,ATL_USERMM): > #else > .globl ATL_USERMM > ATL_USERMM: >+ #if _CALL_ELF == 2 >+ .type ATL_USERMM,@function >+0: addis 2,12,.TOC.-0b@ha >+ addi 2,2,.TOC.-0b@l >+ .localentry ATL_USERMM, .-ATL_USERMM >+ #endif > #endif > #endif > #endif >Index: atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c >=================================================================== >--- atlas.orig/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c >+++ atlas/ATLAS/tune/blas/gemm/CASES/ATL_dmm4x4x80_ppc.c >@@ -170,13 +170,21 @@ void ATL_USERMM(const int M, const int N > const TYPE beta, TYPE *C, const int ldc) > (r10) 8(r1) > ******************************************************************************* >-64 bit ABIs: >+64 bit ABIv1s: > r3 r4 r5 r6/f1 > void ATL_USERMM(const int M, const int N, const int K, const TYPE alpha, > r7 r8 r9 r10 > const TYPE *A, const int lda, const TYPE *B, const int ldb, > f2 120(r1) 128(r1) > const TYPE beta, TYPE *C, const int ldc) >+ >+64 bit ABIv2s: >+ r3 r4 r5 r6/f1 >+void ATL_USERMM(const int M, const int N, const int K, const TYPE alpha, >+ r7 r8 r9 r10 >+ const TYPE *A, const int lda, const TYPE *B, const int ldb, >+ f2 104(r1) 112(r1) >+ const TYPE beta, TYPE *C, const int ldc) > #endif > #ifdef ATL_AS_AIX_PPC > .csect .text[PR] >@@ -202,7 +210,7 @@ Mjoin(.,ATL_USERMM): > .globl Mjoin(_,ATL_USERMM) > Mjoin(_,ATL_USERMM): > #else >- #if defined(ATL_USE64BITS) >+ #if defined(ATL_USE64BITS) && _CALL_ELF != 2 > /* > * Official Program Descripter section, seg fault w/o it on Linux/PPC64 > */ >@@ -219,6 +227,12 @@ Mjoin(.,ATL_USERMM): > #else > .globl ATL_USERMM > ATL_USERMM: >+ #if _CALL_ELF == 2 >+ .type ATL_USERMM,@function >+0: addis 2,12,.TOC.-0b@ha >+ addi 2,2,.TOC.-0b@l >+ .localentry ATL_USERMM, .-ATL_USERMM >+ #endif > #endif > #endif > #endif >@@ -257,9 +271,17 @@ ATL_USERMM: > #endif > #endif > >+ > #if defined (ATL_USE64BITS) >+#if _CALL_ELF == 2 >+/* ABIv2 */ >+ ld pC0, 104(r1) >+ ld incCn, 112(r1) >+#else >+/* ABIv1 */ > ld pC0, 120(r1) > ld incCn, 128(r1) >+#endif > #elif defined(ATL_AS_OSX_PPC) || defined(ATL_AS_AIX_PPC) > lwz pC0, 68(r1) > lwz incCn, 72(r1) >Index: atlas/ATLAS/tune/blas/gemm/CASES/ATL_smm4x4x128_av.c >=================================================================== >--- atlas.orig/ATLAS/tune/blas/gemm/CASES/ATL_smm4x4x128_av.c >+++ atlas/ATLAS/tune/blas/gemm/CASES/ATL_smm4x4x128_av.c >@@ -196,7 +196,7 @@ void ATL_USERMM(const int M, const int N > .globl Mjoin(_,ATL_USERMM) > Mjoin(_,ATL_USERMM): > #else >- #if defined(ATL_USE64BITS) >+ #if defined(ATL_USE64BITS) && _CALL_ELF != 2 > /* > * Official Program Descripter section, seg fault w/o it on Linux/PPC64 > */ >@@ -214,6 +214,12 @@ Mjoin(.,ATL_USERMM): > #else > .globl ATL_USERMM > ATL_USERMM: >+ #if _CALL_ELF == 2 >+ .type ATL_USERMM,@function >+0: addis 2,12,.TOC.-0b@ha >+ addi 2,2,.TOC.-0b@l >+ .localentry ATL_USERMM, .-ATL_USERMM >+ #endif > #endif > #endif > /*
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1080073
:
878111
|
898654
|
898655
|
898656
|
898657
|
898658
|
898659
|
917277
|
917280
|
917284
|
919654
|
927912
|
927913
|
927915
|
927916
|
939224
|
939225
|
939357
|
940404
|
942268
|
942576
|
942578
|
943255