We need some help to finally fix Darwin ppc64 assembler so that not just build succeeds but also tests pass
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Stale
- Domain
- compilers, operating-systems
Research direction
Start with the failing Darwin PPC tests reported in the linked MacPorts PR and inspect the context assembler changes described there. Compare the PPC code with the earlier PPC ELF work and the alternative libcontext implementation, while checking whether Boost shared-pointer alignment could also be involved. Done means the context tests, including the Fibonacci case, pass rather than merely building.
Written by the indexing model from the issue text.
Description
In a couple of recent PRs I have made some fixes to Darwin PPC assembler here (nothing big, just fixing which was actually breaking the build), which fixed building of context and made it somewhat functional (in a sense that certain dependencies that require context now build successfully, folly and friends being the case).
However, tests do not pass: https://github.com/macports/macports-ports/pull/16407#issuecomment-1304974991
From earlier PRs by @kernigh and @DaoWen for PPC ELF it looks like the issue is quite non-trivial and requires a thorough understanding of both what Boost is doing and the magic code :)
Unfortunately, my knowledge of PPC assembler is rather limited and does not suffice here. I am not going to drop the case, since we really want this fixed properly, but any advice or help will be greatly appreciated.
This has been broken apparently forever – can we fix it now? :)
(Considering a recent case with Boost shared pointer (https://github.com/boostorg/smart_ptr/issues/105), I cannot be entirely sure that it is assembler which is to blame and not again some wrong alignment, but probably it is assembler, given that it was also broken for *BSD.)
P. S. For the record, alternative version of PPC code for context from the following repo also fails, at least with Fibonacci test: https://github.com/twlostow/libcontext
P. P. S. @iains I am aware you are very busy atm, so please feel free to completely ignore the issue. But still tagging you as the person who understands Darwin magic code best.
- Dominant language
- Assembly
- Stars
- 371
- Forks
- 186
- Avg merge
- 4d 13h
- Merged PRs (30d)
- 1
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from boostorg/context
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Support for the PACOpen
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
-
Difficulty 3/5 1-2 days Newbie friendliness 42/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
All issues in boostorg/context
Similar issues
-
self-host checker: E021 bound check reads an untyped literal at i32, not the type the call bindsOpen
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
JakeChampion/lang#11055 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
rhalbersma/xstd-bits#307 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day