diff options
| author | bors <bors@rust-lang.org> | 2015-01-15 05:12:30 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-01-15 05:12:30 +0000 |
| commit | 0c96037ec1676b420002a06ea337865f95abbf2c (patch) | |
| tree | cec4f5e86bd892800d343105da4332ad94b3f61a /src/rt/arch | |
| parent | 451e134c180e88b06e3b747ed750e4901ca93721 (diff) | |
| parent | 78278d0c76f3c868a4a4bcc47336c384968c6b3a (diff) | |
auto merge of #20980 : richo/rust/final-power, r=alexcrichton
Originally, this was going to be discussed and revisted, however I've been working on this for months, and a rebase on top of master was about 1 flight's worth of work so I just went ahead and did it.
This gets you as far as being able to target powerpc with, eg:
LD_LIBRARY_PATH=./x86_64-unknown-linux-gnu/stage2/lib/ x86_64-unknown-linux-gnu/stage2/bin/rustc -C linker=powerpc-linux-gnu-gcc --target powerpc-unknown-linux-gnu hello.rs
Would really love to get this out before 1.0. r? @alexcrichton
Diffstat (limited to 'src/rt/arch')
| -rw-r--r-- | src/rt/arch/powerpc/morestack.S | 18 | ||||
| -rw-r--r-- | src/rt/arch/powerpc/record_sp.S | 4 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/rt/arch/powerpc/morestack.S b/src/rt/arch/powerpc/morestack.S new file mode 100644 index 00000000000..2502ac1eb48 --- /dev/null +++ b/src/rt/arch/powerpc/morestack.S @@ -0,0 +1,18 @@ +// Mark stack as non-executable +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif + +/* See i386/morestack.S for the lengthy, general explanation. */ + +.global rust_stack_exhausted + +.hidden __morestack + +// FIXME(POWERPC): this might not be perfectly right but works for now +__morestack: + .cfi_startproc + bl rust_stack_exhausted + // the above function ensures that it never returns + .cfi_endproc +.end __morestack diff --git a/src/rt/arch/powerpc/record_sp.S b/src/rt/arch/powerpc/record_sp.S new file mode 100644 index 00000000000..e93a69a711b --- /dev/null +++ b/src/rt/arch/powerpc/record_sp.S @@ -0,0 +1,4 @@ +// Mark stack as non-executable +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack, "", %progbits +#endif |
