libomp for ppc32 #30
Replies: 9 comments 20 replies
-
libomp is not even on my horizon yet :-) current status:
It is possible that it might be better to switch to a later llvm/clang (specifically >= 13) since there is now some support for the AIX structure layout rules, powerpc darwin has a similar case (and having a basis would probably be bette than back porting). but .. there are many things at higher priority at present, so not likely that I will be doing anything soon. |
Beta Was this translation helpful? Give feedback.
-
On a closer look, these are but few symbols:
|
Beta Was this translation helpful? Give feedback.
-
UPD. In fact the latter is a result of my partial editing away of failing functions. Initially I was getting these errors:
I found a document which is not immediately related but deals with atomic operations on Darwin PPC: https://svn.blender.org/svnroot/bf-blender/trunk/lib/darwin-9.x.universal/openimageio/build.patch?p=46445 |
Beta Was this translation helpful? Give feedback.
-
@iains In fact it looks like it is lacking the code for Big Endian in general. See this: https://github.com/iains/LLVM-7-branch/blob/7.1.1-Darwin-WIP/openmp/runtime/src/kmp.h
|
Beta Was this translation helpful? Give feedback.
-
@iains I will give it another try, afresh. Gonna commit attempts to implement support for Darwin PPC in Disclaimer: this is WIP, may contain errors and omissions, and eventually may not lead anywhere. But I will try :) |
Beta Was this translation helpful? Give feedback.
-
@iains UPD: I think I got somewhat more correct settings now (and did not have to cut anything out), build still fails at linking, this is what needs to be fixed:
Plus P. S. @catap suggested to build |
Beta Was this translation helpful? Give feedback.
-
UPD. About missing symbols, it may be that this has not been defined for Darwin PPC:
Extra _ should have been added. What may be a real problem is fixing PPC assembler for Darwin in |
Beta Was this translation helpful? Give feedback.
-
most of the symbols missing in your link are found in libatomic. configure.ldflags-append -latomic this is a frequently-required library to support atomics. It should probably be added automatically to the link lines by gcc on all builds, but for some reason gcc upstream specifically doesn’t want to do that, so you’re stuck adding it manually when this happens. |
Beta Was this translation helpful? Give feedback.
-
(I am afraid the update gets lost above in sub-thread, so returning here.) I have established that at least on PPC there seems to be no way to make 64-bit atomics of a form However, simple substitution with new
I do not get why this should be the case, but result is consistent (at least @iains Any idea why is that the case? P. S. I saw some reports of GCC 64-bit atomics not working on |
Beta Was this translation helpful? Give feedback.
-
I was trying to build
libomp
for ppc, taking as an example implementation ofmips
from here: https://github.com/OMPI-X/libompHowever the build fails at the linking stage with:
@iains I thought it may be due to the fact that
z_Linux_asm.s
does’t have definitions forppc32
. (Though there is nearly nothing formips
either.)I have looked into your repo, and
libomp
appears to lackppc32
, unless I miss something: https://github.com/iains/LLVM-7-branch/tree/7.1.1-Darwin-WIP/openmp (judging from errors I was getting, it won’t even configure forpowerpc-apple-darwin
).Is it because it won’t work regardless (i.e. inherently impossible due to OS lacking required functionality) or just because you did not fix it yet?
As always, I am not expecting some ready-made solution “for me”. Rather I have some interest to work on this and will appreciate advices from people who understand much more than me.
P. S. @catap @kencu @fangism Tagging you in a case you may be interested.
Beta Was this translation helpful? Give feedback.
All reactions