New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support PPC64? #554
Comments
Btw. is the target at least partially supported? I still see:
|
Our implementation supports only little-endian PPC64 system with the ELFv2 ABI as a target. It looks like you are trying to build mold on a big-endian PPC machine. That's not a supported host (and not a supported target as well). |
Yeah, I noticed your recent commits that were prefixed as |
Oh, sure, if you have one, please share it with me. I don't have a PPC box, so it's just tested with QEMU user-mode emulator. I'm curious if it actually works on a real system. |
Great, so for cda57cf I see:
Where
Apart from that, all tests are green! |
That's great news! I think I can fix the first issue easily. The second valgrind issue is a bit mysterious. Can you share that executable valgrind is complaining with me? |
Note that I'm pretty sure that mold won't work with |
Sure: Note my GCC compiler is configured as:
So |
Your binary works fine on qemu-ppc64le, so I'm not sure what's wrong. Maybe I need an access to a real machine. |
But still that is a quite good result. It took less than a week for me to get to this point! By the way, do you think mold's multi-target support is good enough? I believe with PPC64LE, we've covered almost all modern systems. It looks like SPARC has been discontinued. MIPS is probably being replaced by RISC-V. Alpha and Itanium have died out. We don't need to support all living targets, but we aim to support a reasonable set of target machines. |
You should definitely create an account for GCC Compiler Farm: Where we have a rich variety of machines: |
From |
Thanks, I requested an account for GCC Compiler Farm.
Is s390x PPC64LE or something else? |
No, It's IBM mainframe architecture: |
Same for me! |
So the remaining issue is somehow caused by debug info, because:
|
and
|
On PPC64, page size is 65536 bytes or 0x10000 bytes. #554
My wild guess is that we need to pass a multiple of the page size as an argument for |
It works! The wild one was the correct one. |
Btw. you can watch the build of the nightly updated |
There is an existing issue for that: #267. |
FWIW, you can access real machines from various architectures through the GCC compile farm. No need to use QEMU. |
Yes, I already got an account for GCC compiler farm. Though there seems no s390x nor POWER10 machines available there. |
@rui314 Still no access to any of these 2 targets? If so, I can directly ask IBM folks involved in the GCC community for machine access. Will you be interested? |
@rui314 Still no access to any of these 2 targets? If so, I can directly ask IBM folks involved in the GCC community for machine access. Will you be interested?Indeed. IBM is very helpful in this regard and they are usually very quick in providing access to the requested architectures.You can also ask OSUOSL whether they already have POWER10 machines available.See: https://osuosl.org/services/powerdev/request_hosting/FWIW, gcc203, the big-endian ppc64 machine in the GCC compile farm will soon return to service. It has been offline because it was moved to a different server room.
|
I still don't have access to neither s390x nor POWER10. I'll appreciate if you can ask for IBM folks to help on this. |
I've just added OBS |
I've just added OBS ppc64 target, you can take a look at the current test suite success rate:
https://build.opensuse.org/package/show/home:marxin:mold/mold
mold is also being built on many architectures in Debian and with the latest version, mold builds on sparc64 now: \o/
If there is any interest for access to any of the above targets, let me know.
I have fast MIPS64EL machines available, for example. But also ppc64, sh4, ia64 etc.
|
Thanks. I don't need an access to these machines for now, but I may in the future. Speaking of MIPS, MIPS is probably the trickiest target to support. It's not because of its ISA but because of its psABI. It looks like Sillicon Graphics made lots of extensions to their own ELF implementation and then the extensions were kind of abandoned after MIPS SGI workstations were replaced with Windows NT-based graphics workstations. As a result, MIPS ELF even today still has many odd extensions, and most of them are not really documented. I don't exactly know what to do to support MIPS. I also don't know what is the "right level of support" of ELF MIPS; I don't think we need to support all of them, but since I have no knowledge about real MIPS systems, I can't decide what extensions are needed. So unless there's a strong commercial interest in it, it is unlikely that mold will support MIPS ELF. |
The company behind the LoongArch (a MIPS derivative) architecture, Loongson, is investing a lot of efforts to port as much FOSS software to the architecture. So I think it's quite likely that they will send you patches in the near future to add support for LoongArch. Btw, would you also be willing to add architecture support on request if the community was sponsoring it? I would be interested in M68k support which is supported by LLVM as well. Adding M68k support to LLVM was supported through a BountySource campaign and I think we could gather money for support in Mold as well ;). |
I hope LoongArch guys wanted to pay me instead to make me support their platforms 😎 I'm open to community-sponsored funding. I don't know how hard/easy it is to support m68k, but with funding I can raise the priority. At the moment, I'm working hard to make my company profitable (I'm still losing my money), so I don't have enough time to work on retro computers. |
I can confirm all |
Yes! Now we can close this bug. |
We may want to support PPC64 ELF v2 ABI (https://github.com/inconstante/ELFv2-ABI). I don't know if there's a need for it though.
The text was updated successfully, but these errors were encountered: