Bug 1396814
| Summary: | angelscript: FTBFS on PPC64 / PPC64LE | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Igor Gnatenko <ignatenko> |
| Component: | angelscript | Assignee: | Igor Gnatenko <ignatenko> |
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | ignatenko, rdossant |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-11-25 09:26:21 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1071880 | ||
(In reply to Igor Gnatenko from comment #0) > Unfortunately I don't know what should be the fix due to my limited > knowledge about ppc. Angelscript's native ppc calling was written for Playstation PPC 32 bits. It won't work for ppc64. The function calling part needs to be rewritten since it's not even thread safe. I worked with upstream to make ppc64 work on portability mode. The following change should make angelscript build for that arch: Index: sdk/angelscript/source/as_config.h =================================================================== --- sdk/angelscript/source/as_config.h (revision 2360) +++ sdk/angelscript/source/as_config.h (working copy) @@ -931,6 +931,7 @@ #define STDCALL_RETURN_SIMPLE_IN_MEMORY #undef STDCALL #define STDCALL + #define AS_MAX_PORTABILITY #else #define AS_MAX_PORTABILITY #endif (In reply to Rafael Fonseca from comment #1) > (In reply to Igor Gnatenko from comment #0) > > Unfortunately I don't know what should be the fix due to my limited > > knowledge about ppc. > > Angelscript's native ppc calling was written for Playstation PPC 32 bits. It > won't work for ppc64. The function calling part needs to be rewritten since > it's not even thread safe. I thought there is for PPC 32 bits and for 64 bits: * ../sdk/angelscript/source/as_callfunc_ppc.cpp * ../sdk/angelscript/source/as_callfunc_ppc_64.cpp > > I worked with upstream to make ppc64 work on portability mode. The following > change should make angelscript build for that arch: > > Index: sdk/angelscript/source/as_config.h > =================================================================== > --- sdk/angelscript/source/as_config.h (revision 2360) > +++ sdk/angelscript/source/as_config.h (working copy) > @@ -931,6 +931,7 @@ > #define STDCALL_RETURN_SIMPLE_IN_MEMORY > #undef STDCALL > #define STDCALL > + #define AS_MAX_PORTABILITY > #else > #define AS_MAX_PORTABILITY > #endif Will try, thanks! |
../sdk/angelscript/source/as_callfunc_ppc_64.cpp: In function 'asQWORD CallCDeclFunction(const asDWORD*, const asBYTE*, int, asDWORD, void*)': ../sdk/angelscript/source/as_callfunc_ppc_64.cpp:453:29: error: cast from 'void*' to 'asDWORD {aka unsigned int}' loses precision [-fpermissive] ppcArgs[0] = (asDWORD)retInMemory; ^~~~~~~~~~~ ../sdk/angelscript/source/as_callfunc_ppc_64.cpp: In function 'asQWORD CallThisCallFunction(const void*, const asDWORD*, const asBYTE*, int, asDWORD, void*)': ../sdk/angelscript/source/as_callfunc_ppc_64.cpp:485:29: error: cast from 'void*' to 'asDWORD {aka unsigned int}' loses precision [-fpermissive] ppcArgs[0] = (asDWORD)retInMemory; ^~~~~~~~~~~ ../sdk/angelscript/source/as_callfunc_ppc_64.cpp:492:41: error: cast from 'const void*' to 'asDWORD {aka unsigned int}' loses precision [-fpermissive] ppcArgs[baseArgCount] = (asDWORD)obj; ^~~ ../sdk/angelscript/source/as_callfunc_ppc_64.cpp: In function 'asQWORD CallThisCallFunction_objLast(const void*, const asDWORD*, const asBYTE*, int, asDWORD, void*)': ../sdk/angelscript/source/as_callfunc_ppc_64.cpp:519:29: error: cast from 'void*' to 'asDWORD {aka unsigned int}' loses precision [-fpermissive] ppcArgs[0] = (asDWORD)retInMemory; ^~~~~~~~~~~ ../sdk/angelscript/source/as_callfunc_ppc_64.cpp:535:42: error: cast from 'const void*' to 'asDWORD {aka unsigned int}' loses precision [-fpermissive] ppcArgs[argPos] = (asDWORD)obj; ^~~ ../sdk/angelscript/source/as_callfunc_ppc_64.cpp: In function 'asQWORD CallSystemFunctionNative(asCContext*, asCScriptFunction*, void*, asDWORD*, void*, asQWORD&, void*)': ../sdk/angelscript/source/as_callfunc_ppc_64.cpp:723:66: error: cast from 'void*' to 'asDWORD {aka unsigned int}' loses precision [-fpermissive] retQW = CallCDeclFunction( args, argsType, paramSize, (asDWORD)func, retPointer ); ^~~~ ../sdk/angelscript/source/as_callfunc_ppc_64.cpp:727:73: error: cast from 'void*' to 'asDWORD {aka unsigned int}' loses precision [-fpermissive] retQW = CallThisCallFunction(obj, args, argsType, paramSize, (asDWORD)func, retPointer ); ^~~~ ../sdk/angelscript/source/as_callfunc_ppc_64.cpp:733:85: error: cast from 'void*' to 'asDWORD {aka unsigned int}' loses precision [-fpermissive] retQW = CallThisCallFunction( obj, args, argsType, paramSize, vftable[asDWORD(func)>>2], retPointer ); ^ ../sdk/angelscript/source/as_callfunc_ppc_64.cpp:737:82: error: cast from 'void*' to 'asDWORD {aka unsigned int}' loses precision [-fpermissive] retQW = CallThisCallFunction_objLast( obj, args, argsType, paramSize, (asDWORD)func, retPointer ); ^~~~ ../sdk/angelscript/source/as_callfunc_ppc_64.cpp:741:74: error: cast from 'void*' to 'asDWORD {aka unsigned int}' loses precision [-fpermissive] retQW = CallThisCallFunction( obj, args, argsType, paramSize, (asDWORD)func, retPointer ); ^~~~ Unfortunately I don't know what should be the fix due to my limited knowledge about ppc.