Restore fastcontext support for big-endian PPC64 #301
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background:
I conduct automated regression testing of Chapel using GASNet-EX for multi-locale support on a variety of systems.
Recently my testing on big-endian PPC64/Linux began failing (SEGV early in startup).
Based on the last-good/first-bad test dates, Brad Chamberlain identified Chapel's update of Qthreads from 1.20 to 1.21 as a likely cause.
I have confirmed that if I build the 1.21 release of Qthreads on a big-endian PPC64 it fails in
make check, with a SEGV in nearly every test. However,make checkpasses fine with the 1.20 release.This single-commit PR is necessary and sufficient to allow the
hello_worldtest (among others) to PASS.However, this is not sufficient to get a clean run of
make check.I, unfortunately, cannot devote additional time to addressing whatever else is wrong.
I hope to reach out via email to the Qthreads team (probably next week) to provide access to a BE PPC64 system.
Please note that I am making this contribution under the assumption that there is a desire to retain (restore, actually) support for BE PPC64/Linux. However, if the Qthreads team determines that dropping support for this target is the appropriate action, I will not lobby against such a decision.
Commits:
Restore fastcontext support for big-endian PPC64
This commit restores support in fastcontext for the "function descriptor" of the 64-bit PowerPC ELF ABI, which is common to both AIX and Linux on big-endian PPC64. It appears to have been unintentionally removed along with AIX support in pull request Drop Various Rare OSs and Remove Unnecessary Config Checks #277 due to the (unfortunate) choice of
QTHREAD_PPC_ABI_AIXto identify this ABI.Partially reverts 4f3031c