Alex Crichton
508b7b996e
Move runtime files to C instead of C++
...
Explicitly have the only C++ portion of the runtime be one file with exception
handling. All other runtime files must now live in C and be fully defined in C.
2013-11-18 21:45:58 -08:00
kud1ing
2a333ed088
Fixes for compilation to iOS:
...
- remove /usr/include from the include path since the iOS SDK provides the correct version
- `_NSGetEnviron()` is private and not available on iOS
- `.align` without an argument is not allowed with the Apple tools. 2^2 should be the default alignment
- ignore error messages for XCode < 5
- pass include path to libuv
2013-11-06 22:11:09 +01:00
bors
fa8a202858
auto merge of #10203 : kud1ing/rust/ios, r=alexcrichton
...
This is based on the work by @dobkeratops, updated and extended to work for Xcode 5.
This gets you going. I will add separate PRs for compilation/linking fixes.
See also https://github.com/mozilla/rust/wiki/Doc-building-for-ios
2013-11-01 02:26:23 -07:00
kud1ing
5864ad9ab1
add target triple arm-apple-darwin
2013-10-31 22:43:59 +01:00
Heather
8a593a8bdb
support for GNU configure syntax
2013-10-29 16:22:08 -07:00
Mark Rowe
fd8c06e7b5
Fix unwinding on OS X 10.9.
...
OS X 10.9's linker has a bug that results in it failing to preserve
DWARF unwind information when passed the -no_compact_unwind flag.
This flag is passed on OS X because the unwind information for
__morestack cannot be represented by the compact unwind format.
We can work around this problem by using a more targeted approach
to disabling compact unwind information. The OS X linker looks for
a particular pattern in the DWARF unwind information and will not
attempt to convert the unwind information to the compact format.
The pattern in question is the return address register being saved
twice to the same location.
Fixes #6849 .
2013-10-22 03:02:25 -07:00
Alex Crichton
6d8330afb6
Use __morestack to detect stack overflow
...
This commit resumes management of the stack boundaries and limits when switching
between tasks. This additionally leverages the __morestack function to run code
on "stack overflow". The current behavior is to abort the process, but this is
probably not the best behavior in the long term (for deails, see the comment I
wrote up in the stack exhaustion routine).
2013-10-19 09:43:31 -07:00
Daniel Micay
f766acad62
drop the linenoise library
...
Closes #5038
2013-10-16 22:57:51 -04:00
Alex Crichton
d858360483
Build libuv/jemalloc only once (not per stage)
...
Reorganize the makefiles to stop building these once per stage because there's
no need to do this at all.
Closes #7002
2013-10-08 14:26:56 -07:00
Jyun-Yan You
350b5438cd
add -Z soft-float option
...
This change adds -Z soft-float option for generating
software floating point library calls.
It also implies using soft float ABI, that is the same as llc.
It is useful for targets that have no FPU.
2013-10-01 11:19:18 +08:00
bors
b43ee6cd2e
auto merge of #9277 : crabtw/rust/mips, r=brson
...
This patch fixes some errors of MIPS target, however, MIPS C ABI is still broken. I will send another PR to fix the problem.
Because MIPS target has no "generic" CPU name, I add --target-cpu and --target-feature to RUST_FLAGS. In order to workaround the "compact frame descriptions incompatible with DWARF2 .eh_frame" problem, the linker I used is CXX but not CC.
2013-09-18 09:15:56 -07:00
Jyun-Yan You
d11f746cc1
fix compilation errors of mips target
2013-09-18 10:10:32 +08:00
Vadim Chugunov
c3fd430603
The purpose of these headers is to fix issues with mingw v4.0, as described in #9246 .
...
This works by adding this directory to GCC include search path before mingw system headers directories,
so we can intercept their inclusions and add missing definitions without having to modify files in mingw/include.
2013-09-17 01:06:01 -07:00
Brian Anderson
4c49a3d8cd
mk: Fix valgrinding with jemalloc
...
This fixes valgrind on the linux snapshot bot. The command added here
makes us require a fairly recent valgrind.
2013-09-16 15:29:46 -07:00
Brian Anderson
3801534d10
Revert "auto merge of #8695 : thestinger/rust/build, r=pcwalton"
...
This reverts commit 2c0f9bd354
, reversing
changes made to f8c4f0ea9c
.
Conflicts:
src/rustllvm/RustWrapper.cpp
2013-08-28 19:59:52 -07:00
Daniel Micay
0ac02e7c4f
make: stop disabling frame pointer elimination
...
We currently have no need for the frame pointers on any platform. They
may eventually be needed on platforms without an equivalent to the DWARF
call frame information to walk the stack in the garbage collector.
Closes #7477
2013-08-22 20:49:48 -04:00
Daniel Micay
db14469e21
make: rm LLVM_BUILD_ENV
...
using this to turn off the frame pointers isn't needed, and doesn't
actually work right now because the reference to it omits the target
triple
2013-08-22 20:43:50 -04:00
Luqman Aden
9c39992021
Add support for vanilla linux on arm.
2013-08-04 19:28:06 -04:00
Luqman Aden
5007fb2d4d
Add x64 windows to platform.mk and mingw64 header fixes.
2013-07-03 23:33:59 -04:00
Brian Anderson
829b5de998
mk: Bulid rustrt with -pthread instead of -lpthread
2013-06-05 20:08:47 -04:00
Felix S. Klock II
7f410b326c
Attempt to get reuse of common code from multiple clones in different directories.
2013-05-30 16:26:12 +02:00
Felix S. Klock II
2b083373e4
Fix #6805 : add --enable-ccache configure option to prefix compiler invocations with ccache to attempt to reuse common results, e.g. for LLVM (re)builds.
2013-05-29 23:18:09 +02:00
Alex Crichton
af27e17992
Set the USE_UTF8 flag for linenoise to handle utf8-input
2013-05-24 22:32:55 -05:00
bors
d68c0279ea
auto merge of #6249 : crabtw/rust/arm, r=brson
...
It uses the private field of TCB head to store stack limit. I tested on my Raspberry PI. A simple hello world program ran without any problem. However, for a more complex program, it segfaulted as #6231 .
2013-05-17 18:19:27 -07:00
Jyun-Yan You
c2bf9bf9fe
improve MIPS backend and implement segmented stacks
2013-05-09 16:51:42 +08:00
Jyun-Yan You
48b6262b38
preliminary Linux ARM support
2013-05-07 13:17:14 +08:00
Daniel Micay
86efd97a10
add gitattributes and fix whitespace issues
2013-05-03 20:01:42 -04:00
Jyun-Yan You
99b156e78a
mk: mips toolchain config
2013-04-04 18:52:24 +08:00
Daniel Micay
c0be7df5de
mark the assembly object stacks as non-executable
...
Closes #5643
This also removes the need to pass noexecstack to gcc, but that wasn't
actually working anymore.
2013-03-31 18:23:05 -04:00
Young-il Choi
268faef63a
mk: target triple rename arm-unknown-android->arm-linux-androideabi
2013-03-13 09:21:12 +09:00
ILyoan
cc76cb02fb
mk: cleanup - minor fixes for android check
2013-03-08 14:45:16 +09:00
Brian Anderson
14e5a6e5f7
mk: Cleanup. Minor fixes
2013-03-06 22:37:52 -08:00
Young-il Choi
a35dc95969
mk: --android-cross-path to rustc
2013-03-05 13:12:23 +09:00
Young-il Choi
23eb105895
mk: platform.mk typo UNIXY
2013-03-04 16:48:27 +09:00
Young-il Choi
9cf67513ea
mk: platform.mk more flags added
2013-03-04 14:23:20 +09:00
Brian Anderson
dae97b4812
mk: Restore toolchain config for i386 mac/linux, and freebsd
...
Conflicts:
mk/platform.mk
2013-03-04 14:00:55 +09:00
Young-il Choi
7714d52cd9
mk: cleanup - lib and executable suffix handling
2013-03-02 21:25:12 +09:00
Young-il Choi
5e6c04b9fa
mk: mingw32 fix
2013-03-02 13:51:10 +09:00
Young-il Choi
2102597392
mk: mingw32 flags added
2013-03-01 20:02:29 +09:00
Young-il Choi
26a5dc593c
mk: rewrite make files
2013-02-27 14:53:35 +09:00
Brian Anderson
42be216848
mk: Refactor platform.mk a bit
2013-02-21 19:11:38 -08:00
Brian Anderson
15c0c35352
mk: Split target triples into bulid triple + host triples + target triples
...
For cross compiling to targets that don't want to build a compiler
2013-02-21 17:51:55 -08:00
Jeff Olson
a3516ae834
build: add link flag for freebsd libuv build
2013-02-10 11:51:05 -08:00
Jeff Olson
1cbbb58d87
build: change libuv to point at joyent's repo and make unpatched build libuv work on mingw
2013-02-10 11:51:05 -08:00
Graydon Hoare
d1affff623
Reliciense makefiles and testsuite. Yup.
2012-12-10 17:32:58 -08:00
Zack Corr
ea996556b9
rusti: Remove linenoise module, add to rt, remove core::rl
2012-10-30 11:08:36 +10:00
Zack Corr
4912428cb5
rusti: Add linenoise, wrap into core::rl and add rusti REPL tool
...
Add Brian Leibig to AUTHORS.txt for REPL contributions
2012-10-27 18:03:15 +10:00
Graydon Hoare
e356959bb2
Attempt to fix the DSYM_GLOB issue again, differently.
2012-10-10 14:06:18 -07:00
Graydon Hoare
6426f05b8f
Revert "Try less complicated trick for solving the dSYM glob portability issue."
...
This reverts commit 86dfca278d
.
2012-07-13 13:04:36 -07:00
Graydon Hoare
86dfca278d
Try less complicated trick for solving the dSYM glob portability issue.
2012-07-11 15:10:18 -07:00
Graydon Hoare
63df248414
Revert "Reorganize lib-glob code to avoid accidentally duplicating lib/ subdirectory."
...
This reverts commit 2cf6bf87c3
.
2012-07-11 15:04:32 -07:00
Graydon Hoare
2cf6bf87c3
Reorganize lib-glob code to avoid accidentally duplicating lib/ subdirectory.
2012-07-11 12:10:54 -07:00
Brian Anderson
8910b2ff7c
build: Remove bogus -fno-strict-aliasing flags. Issue #2701
2012-06-25 15:41:03 -07:00
Michael Sullivan
f99f2e8ce2
Update the build system to handle dependency on header files. Closes #2547 .
2012-06-14 14:50:14 -07:00
Michael Sullivan
3a36ffe5ff
Revert "Update the build system to handle dependency on header files. Closes #2547."
...
This reverts commit 31f4b63dff
.
2012-06-13 18:37:07 -07:00
Michael Sullivan
31f4b63dff
Update the build system to handle dependency on header files. Closes #2547 .
2012-06-13 16:39:09 -07:00
Brian Anderson
41df9cbb44
rt: Turn on frame pointers for stack walking
2012-06-11 22:44:16 -07:00
Jyun-Yan You
8f5f45bfe1
fix compiletest deadlock on freebsd
2012-06-07 16:38:10 +08:00
Brian Anderson
f452973a7f
build: Add --enable-debug configure option
...
When CFG_ENABLE_DEBUG is defined it will call rustc with -g --cfg=debug
and cc with -DRUST_DEBUG. Otherwise it calls rustc with --cfg=ndebug and cc
with -DRUST_NDEBUG.
I plan to use this for a few things in the runtime.
2012-03-29 19:10:38 -07:00
Graydon Hoare
45c74f04ab
Override all non-default origins for CC/CXX/CPP, not just undefined.
2012-03-28 14:26:51 -07:00
Graydon Hoare
211d41948a
Conditionalize CC / CXX / CPP to permit using other gcc versions.
2012-03-28 13:52:47 -07:00
Graydon Hoare
a9e7bff731
Remove incorrect uses of NVALGRIND, Close #1435 .
2012-03-21 18:21:11 -07:00
Josh Matthews
8142438938
Avoid mangling names differently in debug builds to work around a build error. Fix up file name and path debug information, and build one compilation unit for a crate instead of one per source file.
2012-03-21 18:56:36 -04:00
Brian Anderson
3de30f4ef2
rt: Change alignof to rust_alignof. Remove -Wno-c++11-compat. Closes #1644
2012-03-12 18:03:48 -07:00
Brian Anderson
8a32f8efe5
build: Add --enable-helgrind option
2012-03-02 14:08:02 -08:00
Graydon Hoare
a4d2beb16b
Only modify PATH on win32 when in MSYSTEM shell
2012-02-17 23:02:25 -08:00
Brian Anderson
4eeb706e84
build: Set RUST_THREADS=1 on FreeBSD to avoid a threading bug
2012-02-12 18:23:23 -08:00
Niko Matsakis
5163606d06
platform-specific valgrind suppression
2012-02-05 09:07:23 -08:00
Brian Anderson
7356126457
build: Add a comment explaining -Wno-c++11-compat
2012-01-24 11:55:42 -08:00
Jyun-Yan You
c2bf9b7726
freebsd clang support
2012-01-24 11:48:36 -08:00
Haitao Li
ef0775fec8
build: Check and set perf --log-fd option
...
Linux perf tool version 3.2 introduced a new option "--log-fd" defaults
to 0, which leads to error "Failed opening logfd: Illegal argument" when
executing perf tests.
Set logfd to stderr to let perf test work.
Issue #1538
2012-01-17 10:48:46 +08:00
Brian Anderson
9e40e43e74
build: Build libraries in the bin directory on win32
2012-01-14 13:43:04 -08:00
Brian Anderson
dcac427795
Revert "build: Build libraries in the bin directory on win32"
...
This reverts commit 23e0d16b5f
.
2012-01-12 20:06:45 -08:00
Brian Anderson
23e0d16b5f
build: Build libraries in the bin directory on win32
2012-01-12 13:59:05 -08:00
Brian Anderson
f921e2e3d1
Revert "build: Build libraries in the bin directory on win32"
...
This reverts commit c00ec5f9c9
.
2012-01-11 14:13:11 -08:00
Brian Anderson
c00ec5f9c9
build: Build libraries in the bin directory on win32
2012-01-11 13:57:11 -08:00
Jyun-Yan You
274fc1b59c
fix link error
2012-01-01 20:18:55 -08:00
Jyun-Yan You
21eadbe6f1
add missing library, enable segmented stacks for freebsd
2012-01-01 20:18:55 -08:00
User Jyyou
a59c4b1b47
freebsd support
2012-01-01 20:18:55 -08:00
Brian Anderson
cb5f636ff1
rustc: Don't emit compact unwind info on mac
...
It's not compatible with the subtlety of __morestack
2011-12-18 00:42:37 -08:00
Haitao Li
6dbd4c21e9
rustc: build versioned library with hash in its name
...
Also updated build to install versioned libraries and added a few
missing actions for `make clean`.
2011-12-12 16:15:29 -08:00
Brian Anderson
4699b6865f
build: Use llvm-mc as our assembler
...
LLVM's assembler understands .cfi pseudo-ops on the mac, which we need in
order to generate frames that can be DWARF-unwound
2011-12-10 18:51:21 -08:00
Austin Seipp
b513a5a500
Make valgrind usage more consistent and less error prone.
...
I was still having issues with the build system somehow getting confused
as to which set of valgrind headers to use when compiling rt.
This commit moves all the valgrind headers into their own directory
under rt and makes the usage more consistent. The compiler is now passed
the -DNVALGRIND flag when valgrind is not installed, as opposed to
passing -DHAVE_VALGRIND.
We also pass -I src/rt to the compiler when building rt so you can more
easily import what you want. I also cleaned up some erroneous #includes
along the way.
It should be safe to always just import the local valgrind headers and use
them without question. NVALGRIND turns the operations to no-ops when it
is active, and the build and tests run cleanly with or without.
2011-12-06 01:15:29 -06:00
Niko Matsakis
aba6e63543
work on perf
2011-11-29 12:51:12 -08:00
Niko Matsakis
6e55426c8c
tweak to get windows test-running correct
2011-11-29 12:51:10 -08:00
Niko Matsakis
9c12c7c7f5
basic builds function
2011-11-29 12:51:07 -08:00
Brian Anderson
e7afe11a2a
Build LLVM with -fno-omit-frame-pointer on Linux
2011-11-05 13:23:11 -07:00
Brian Anderson
a4e1a438f6
Cleanup LLVM build rules after rebase onto x64 changes
2011-11-05 13:23:11 -07:00
Brian Anderson
a0ff3db258
LLVM build cleanup
2011-11-05 13:23:11 -07:00
Brian Anderson
9435459e89
Make the formatting of the host build message consistent
2011-11-03 11:26:52 -07:00
Niko Matsakis
54af489e6f
virtualize the runtime per target triple.
2011-11-02 14:14:20 -07:00
Niko Matsakis
20946e6970
start going back to an i386 build
2011-11-02 14:13:22 -07:00
Niko Matsakis
8011e3fabb
hack around on makefiles trying to get a 64 bit build
...
right now there are many temporary hacks, search for NDM to find them
2011-11-02 14:13:22 -07:00
Brian Anderson
8c4e192d91
Add commentary about -znoexecstack
2011-10-23 19:07:55 -07:00
Austin Seipp
7a8e12ca6d
Make sure librustrt.so is linked with a non-executable stack.
...
Fixes #798 .
2011-10-23 19:05:23 -07:00
Brian Anderson
96f6a1861c
Revert "Revert "Stop using (DY)LD_LIBRARY_PATH on Unix""
...
This reverts commit 941d5e737c
.
2011-10-09 15:23:41 -07:00
Brian Anderson
941d5e737c
Revert "Stop using (DY)LD_LIBRARY_PATH on Unix"
...
This reverts commit 4b58071f96
.
2011-10-09 15:05:12 -07:00
Brian Anderson
4b58071f96
Stop using (DY)LD_LIBRARY_PATH on Unix
2011-10-06 15:23:20 -07:00
Brian Anderson
d8a85f0758
Make rpath work on mac
2011-10-06 13:09:00 -07:00
Patrick Walton
8d8b48a901
rt: Make C stack switching Valgrind-clean by warning Valgrind when we're about to write to the C stack from the Rust stack
2011-10-05 16:33:17 -07:00