diff options
| author | Shawn Walker-Salas <shawn.walker@oracle.com> | 2017-02-16 21:19:43 -0800 |
|---|---|---|
| committer | Shawn Walker-Salas <shawn.walker@oracle.com> | 2017-02-16 21:40:14 -0800 |
| commit | 2e756e22b3d5ffcb9cf8b199796ecb35cfc7b415 (patch) | |
| tree | 50b3ee502357f3b8912077327bf28c74c2149b92 /src/libcompiler_builtins | |
| parent | 087c2337c156af2f7e408145737b2415e66693da (diff) | |
| download | rust-2e756e22b3d5ffcb9cf8b199796ecb35cfc7b415.tar.gz rust-2e756e22b3d5ffcb9cf8b199796ecb35cfc7b415.zip | |
add solaris sparcv9 support
* 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 #39901
Diffstat (limited to 'src/libcompiler_builtins')
| -rw-r--r-- | src/libcompiler_builtins/build.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libcompiler_builtins/build.rs b/src/libcompiler_builtins/build.rs index 5360bbdeacd..16ecf882566 100644 --- a/src/libcompiler_builtins/build.rs +++ b/src/libcompiler_builtins/build.rs @@ -92,7 +92,15 @@ fn main() { // compiler-rt's build system already cfg.flag("-fno-builtin"); cfg.flag("-fvisibility=hidden"); - cfg.flag("-fomit-frame-pointer"); + // Accepted practice on Solaris is to never omit frame pointer so that + // system observability tools work as expected. In addition, at least + // on Solaris, -fomit-frame-pointer on sparcv9 appears to generate + // references to data outside of the current stack frame. A search of + // the gcc bug database provides a variety of issues surrounding + // -fomit-frame-pointer on non-x86 platforms. + if !target.contains("solaris") && !target.contains("sparc") { + cfg.flag("-fomit-frame-pointer"); + } cfg.flag("-ffreestanding"); cfg.define("VISIBILITY_HIDDEN", None); } |
