-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
add solaris sparcv9 support #39903
add solaris sparcv9 support #39903
Conversation
* Update bootstrap to recognize the cputype 'sparcv9' (used on Solaris) * Change to never use -fomit-frame-pointer on Solaris or for sparc * Adds rust target sparcv9-sun-solaris Fixes rust-lang#39901
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @eddyb (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
Please note that this pull request depends upon another pull request #39871 to actually function as expected. |
Note that there is little point in ever using -fomit-frame-pointer on sparc since the sparc ABI requires a minimum of 176 bytes of stack frame, which means space is always reserved for %fp regardless of whether it's used. Also, most debuggers and other tools on any platform for sparc generally expect %fp to be valid. |
Looks good to me, thanks! Out of curiosity, would |
SPARC v9 (as in version 9) is the official name of the 64-bit architecture and is what is always used on Solaris and in SPARC architecture documentation. The ELF ABI documentation also refers to it as sparcv9. The C compilers also set __sparcv9 to be defined. For reasons unknown to me, the BSDs have always used sparc64 instead. So, at least on Solaris, it would be unexpected and surprising to refer to it as sparc64. |
GCC built on Solaris and LLVM built on Solaris also refer to it as sparcv9 for this reason. |
Ok, sounds good to me, thanks! @bors: r+ I wonder though if we should rename the |
📌 Commit 2e756e2 has been approved by |
⌛ Testing commit 2e756e2 with merge 83815d9... |
💔 Test failed - status-appveyor |
@bors: retry
* network error
…On Sun, Feb 19, 2017 at 12:30 AM, bors ***@***.***> wrote:
💔 Test failed - status-appveyor
<https://ci.appveyor.com/project/rust-lang/rust/build/1.0.2024>
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#39903 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAD95Bh8S35IYQmHcjvcFbf_auYQ7mvqks5rd-GMgaJpZM4MD5O2>
.
|
…richton add solaris sparcv9 support Fixes rust-lang#39901
…richton add solaris sparcv9 support Fixes rust-lang#39901
…richton add solaris sparcv9 support Fixes rust-lang#39901
…richton add solaris sparcv9 support Fixes rust-lang#39901
…richton add solaris sparcv9 support Fixes rust-lang#39901
Rollup of 28 pull requests - Successful merges: #39859, #39864, #39888, #39903, #39905, #39914, #39945, #39950, #39953, #39961, #39980, #39988, #39993, #39995, #40019, #40020, #40022, #40024, #40025, #40026, #40027, #40031, #40035, #40037, #40038, #40064, #40069, #40086 - Failed merges: #39927, #40008, #40047
As an FYI, the frame pointer bug on sparc turned out to be an old oversight in gcc; a bug was filed and the issue fixed for future gcc versions. I'd still heavily discourage use of -fomit-frame-pointer on sparc for some of the reasons I previously mentioned. |
Fixes #39901