Commit graph

389 commits

Author SHA1 Message Date
Niko Matsakis
c9061733c6 misc fixes 2011-11-29 12:51:07 -08:00
Niko Matsakis
9c12c7c7f5 basic builds function 2011-11-29 12:51:07 -08:00
Brian Anderson
cd91c6d065 rt: Build __morestack as a static library and copy it to the right places 2011-11-28 18:01:42 -08:00
Brian Anderson
e075412a92 build: Stop linking morestack.S to rt
__morestack has to be linked statically. The odd calling convention on x86_64
results in the arguments to __morestack (r10 & r11) being clobbered by the
dynamic linker. gcc links all the __morestack functions statically.
2011-11-28 16:37:29 -08:00
Brian Anderson
aa2fbbac0d build: Create a better definition of LLVM deps 2011-11-25 19:36:19 -08:00
Haitao Li
2ac63801d2 doc: Build keywords multitable automatically
Keywords are now listed in a plain text file. They're sorted in
column-major order and rendered as a texinfo multitable in rust.texi.

Fixes issue #1216.
2011-11-23 21:11:18 +01:00
Brian Anderson
6bdf347418 rt: Make __morestack (without unwinding) work on 32-bit linux 2011-11-22 18:02:10 -08:00
Stefan Plantikow
25b44a8973 Added CFG_NOTIDY flag to the build
This should allow a small speedup for test builds; unset by default
2011-11-18 21:19:18 -08:00
Brian Anderson
3bffb8b5de build: Add various shorthand make check rules 2011-11-17 12:04:37 -08:00
Brian Anderson
d624e523c9 rt: Make stack growth code build on Linux 2011-11-17 10:53:06 -08:00
Patrick Walton
e6c3c4e48c rt: More work on morestack 2011-11-17 10:52:59 -08:00
Brian Anderson
02cebbb9f1 Revert "rt: More work on morestack"
This reverts commit 68aff2ad6d.
2011-11-16 18:49:19 -08:00
Brian Anderson
5559e149e4 Revert "rt: Make stack growth code build on Linux"
This reverts commit da4b7da4e1.
2011-11-16 18:49:07 -08:00
Brian Anderson
da4b7da4e1 rt: Make stack growth code build on Linux 2011-11-16 18:33:00 -08:00
Patrick Walton
68aff2ad6d rt: More work on morestack 2011-11-16 18:00:57 -08:00
Niko Matsakis
938b23e228 fix prereqs 2011-11-16 15:27:09 -08:00
Niko Matsakis
9ccd84a9cd fix prereqs 2011-11-16 15:16:43 -08:00
Niko Matsakis
5502354f33 correct (I think) prereqs 2011-11-16 15:16:42 -08:00
Niko Matsakis
4183023357 correct pre-reqs 2011-11-16 15:16:42 -08:00
Niko Matsakis
c997a353aa make check-stage2-perf target work again, along with rustc, std 2011-11-16 15:16:41 -08:00
Niko Matsakis
36ab948bfa make it so that tests can be run on different target arch 2011-11-16 15:16:40 -08:00
Patrick Walton
b3cf0c4d1b Revert "rt: More work on morestack"
This reverts commit ced0d4f15e.
2011-11-14 16:20:53 -08:00
Patrick Walton
ced0d4f15e rt: More work on morestack 2011-11-14 16:17:08 -08:00
Brian Anderson
453168d917 build: Fix 'make perf'. Closes #1151 2011-11-13 16:51:38 -08:00
Brian Anderson
5d1e321ecb rt: Remove rust_chan 2011-11-11 12:11:21 -08:00
Brian Anderson
f705f68121 rt: Remove rust_aio.cpp. Bitrotted. 2011-11-10 18:02:08 -08:00
Brian Anderson
12f2b4989e Improve make clean rules for libuv 2011-11-10 13:42:02 -08:00
Niko Matsakis
ff5b319ce5 correct stack alignment 2011-11-08 21:14:09 -08:00
Niko Matsakis
a8c0c2b871 make clean delete all .o files from rt directory 2011-11-08 21:14:09 -08:00
Erick Tryzelaar
ab265586eb Re-add libuv as a submodule. 2011-11-08 19:01:47 -08:00
Brian Anderson
8857657640 Rename rust_uv.cpp to rust_aio.cpp 2011-11-07 19:35:39 -08:00
Brian Anderson
fdeb5ba304 Upgrade libuv to f1859eb841be2fe48512bc10e64556383f408b01 2011-11-07 19:24:25 -08:00
Brian Anderson
e7afe11a2a Build LLVM with -fno-omit-frame-pointer on Linux 2011-11-05 13:23:11 -07:00
Brian Anderson
814c3d0d76 Add clean-all rule which also cleans LLVM 2011-11-05 13:23:11 -07:00
Brian Anderson
8ea6d0c5d2 Use $(MAKE) for recursive make 2011-11-05 13:23:11 -07:00
Brian Anderson
4b6585c924 Parameterize the LLVM build over the target triples 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
e47f410536 Use LLVM directly from the build directory
This will cut out the few seconds it takes to run make install.
2011-11-05 13:23:10 -07:00
Brian Anderson
26bb6716ef Tie the LLVM build into ours 2011-11-05 13:23:10 -07:00
Brian Anderson
f96f1692ef Add mk/llvm.mk 2011-11-05 13:23:10 -07:00
Elly Jones
39e0009190 docs: work around texi2dvi bug. (#1134) 2011-11-05 13:18:23 -07:00
Elly Jones
230b279b82 install.mk: make man1 directory 2011-11-04 19:53:23 -04:00
Brian Anderson
af1ce1f3de Remove an old, temporary build rule 2011-11-03 12:22:41 -07:00
Brian Anderson
9435459e89 Make the formatting of the host build message consistent 2011-11-03 11:26:52 -07:00
Brian Anderson
558ca9b4a8 Escape $ when building linux def files 2011-11-02 14:24:15 -07:00
Niko Matsakis
1db9af1bf2 rerun the gyp-uv tool 2011-11-02 14:14:20 -07:00
Niko Matsakis
305cecee4f pass proper options to libuv make 2011-11-02 14:14:20 -07:00
Niko Matsakis
2bfa72ea42 virtualize rustllvm construction per target triple 2011-11-02 14:14:20 -07:00
Niko Matsakis
54af489e6f virtualize the runtime per target triple. 2011-11-02 14:14:20 -07:00
Niko Matsakis
e8e2f3395d Fix build on windows 2011-11-02 14:14:20 -07:00
Niko Matsakis
3f4fd29db8 fix failed merge 2011-11-02 14:14:20 -07:00
Niko Matsakis
d0887996e5 get the dependencies right so that all target archs are built 2011-11-02 14:13:22 -07:00
Niko Matsakis
93781297bf enable building with different target arch 2011-11-02 14:13:22 -07:00
Niko Matsakis
f05761ddb3 enable intrinsics for multiple arch 2011-11-02 14:13:22 -07:00
Niko Matsakis
f0c1f999ac arch is ia32 in libuv, annoyingly. this should be changed. 2011-11-02 14:13:22 -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
93035722a4 Remove temporary build rules 2011-10-31 15:19:03 -07:00
Brian Anderson
86459b3517 Add some transitional build rules for moving libstd.so to libruststd.so 2011-10-31 14:43:43 -07:00
Patrick Walton
c9003d301f Stub a __morestack implementation and stack segment allocation. Untested. 2011-10-31 14:20:56 -07:00
Brian Anderson
799ba7b122 Split 'make tidy' into multiple commands
The echo command line seems to be getting too large
2011-10-31 12:57:50 -07:00
Brian Anderson
0b331e5934 Add a make docs target 2011-10-27 15:02:32 -07:00
Brian Anderson
1b75e5c315 Use web-style paragraphs in std docs 2011-10-26 11:55:28 -07:00
Brian Anderson
d611067d7f Add more comments to install.mk 2011-10-25 21:18:22 -07:00
Brian Anderson
28051a8e3d Install man page for rustc 2011-10-25 21:17:57 -07:00
Brian Anderson
7ae757583a Begin documenting std and add doc generation using naturaldocs
Naturaldocs isn't really that great but it seems easier to get
something working than with doxygen, for which we would need to
convert rust code to something C++ish. We probably want to just
write a rustdoc utility at some point.
2011-10-25 18:01:52 -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
bdbeb75bfb Upgrade libuv to 179f475b2ad64729feb0422f06ce133cb364482a 2011-10-22 17:37:18 -07:00
Brian Anderson
160c56e768 Get 'make tidy' to work rustllvm and rt again 2011-10-21 17:35:52 -07:00
Brian Anderson
ff813f84a8 Run perf on the stage 2 compiler 2011-10-20 22:40:21 -07:00
Marijn Haverbeke
ba1c6fcf38 Remove the last vestiges of main.ll
Closes #992
2011-10-20 17:36:28 +02:00
Marijn Haverbeke
243c5c3479 Use snap runtime, and the old main.o, for stage1
This is intended to be reverted again after I register the next
snapshot.
2011-10-20 13:14:28 +02:00
Niko Matsakis
86735c0d7d make ctags targets phony 2011-10-18 10:37:27 -07:00
Niko Matsakis
9476692b52 move ctags.rust into src/etc 2011-10-12 13:57:32 -07:00
Niko Matsakis
e1c470c9ed new targets, TAGS.emacs and TAGS.vi. they must be manually made. 2011-10-12 13:57:32 -07:00
Brian Anderson
dd484369dc Fix test dependencies 2011-10-11 08:54:20 -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
ae7bdc22a5 Fix make clean on windows 2011-10-07 15:41:15 -07:00
Brian Anderson
fed56b07ba Make windows packaging work again 2011-10-07 13:48:20 -07:00
Brian Anderson
4709038d64 Bring make distcheck up to date 2011-10-06 18:12:15 -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
Brian Anderson
e963cfd41a Run tests with LD_LIBRARY_PATH set to the target libs, not the host libs
Setting it to the host libs uses those compiled from the previous stage
2011-10-05 16:21:55 -07:00
Brian Anderson
6335529c36 Fix #1003 harder 2011-10-04 11:24:18 -07:00
Brian Anderson
f5e668c877 Fix a typo in tests.mk. Closes #1003 2011-10-04 11:19:37 -07:00
Brian Anderson
9be0dc1250 Cleanup mk/tests.mk 2011-10-02 18:00:13 -07:00
Brian Anderson
3a6f3cf275 Move compiletest to src/ and cleanup build rules 2011-10-02 17:28:59 -07:00
Brian Anderson
6e654564db Lots of build system cleanup and documentation
This splits mk/stageN.mk into host.mk and target.mk and makes
the build rules somewhat simpler - there's no more building from stageN
into stageN+1; instead we always build from stageN(host) to
stageN(target) then promote from stageN(target) to stageN+1(host).

Add a big honkin explaination right at the top of Makefile.in
2011-10-02 00:57:53 -07:00
Brian Anderson
9563c17d78 Have 'make install' do something close to useful
We'll copy the files to the right location. Still need to rpath.

Issue #529
2011-09-30 22:47:40 -07:00
Brian Anderson
821dd6c02c Change the directory for target libs
This pushes them down from stageN/lib/rustc/$(target) to
stageN/lib/rustc/$(target)/lib in order to make room for a target bin dir
2011-09-30 17:19:24 -07:00
Brian Anderson
e71d17ffa6 Refix the snapshot rules 2011-09-30 16:27:18 -07:00
Brian Anderson
f634eb2bfd Make config of static stdlib more consistent with rest of makefile
I haven't tested if it actually works. Static stdlib is probably becoming
bitrotted.
2011-09-30 16:18:19 -07:00
Brian Anderson
38c67a4c8d Abstract the build directories further in the makefiles
This defines variables for host bin and lib directories as well as all target
bin and lib directories then uses them everywhere.
2011-09-30 16:18:19 -07:00
Brian Anderson
ed106dd6ea Fix some make variables in tests.mk 2011-09-30 16:18:19 -07:00
Brian Anderson
de6d07abf9 Register snapshots and finish filesystem reorg 2011-09-29 23:33:44 -07:00
Brian Anderson
80829af872 Remove legacy library search paths 2011-09-29 23:12:31 -07:00
Brian Anderson
b569e9c657 Update snapshot scripts for the new regime 2011-09-29 22:58:34 -07:00
Brian Anderson
9f9666af6e Tweak makefiles, change the way the fuzzer is built
Since librustc and the fuzzer depend on rustllvm, build them
like rustc, linking to libraries in lib instead of lib/rustc/$(target)
2011-09-29 22:58:34 -07:00
Brian Anderson
9385ad4952 Remove redundant make clean rules 2011-09-29 22:58:34 -07:00
Brian Anderson
b61e17bdfd Fix CFG_RUN_TARG on windows 2011-09-29 22:58:33 -07:00
Brian Anderson
6306c81826 Fix a variety of things in the makefiles
Make tests and perf work again. Correctly get the host triple in rustc. Add
some FIXMEs about transitional code that needs to be removed.
2011-09-29 22:58:33 -07:00
Brian Anderson
7dbce103fb Remove the redundant definition of STAGE in makefiles 2011-09-29 22:58:33 -07:00
Brian Anderson
4ee9b86384 Update make clean rules 2011-09-29 22:58:33 -07:00
Brian Anderson
ab8338fb5a Make rustc's host triple agree with the build system's 2011-09-29 22:58:33 -07:00
Brian Anderson
0148daa058 Reorganize structure of build directory
Each stage is organized more according to Unix standards and to
accommodate multiple target architectures.

stageN/
  bin - rustc lives here
  lib - libraries that rustc needs
  lib/rustc/$(target_triple/ - target libraries
2011-09-29 22:58:33 -07:00
Brian Anderson
15e34deba3 Eliminate glue.o. Closes #990 2011-09-28 15:35:21 -07:00
Patrick Walton
d8a80cb31f rt: Add a call stub that switches to the C stack, untested as of yet 2011-09-28 12:26:36 -07:00
Erick Tryzelaar
5f066e06b9 Update to libuv commit 3ca382.
This patch changes libuv's gyp build system to
make it's own makefiles. To generate them for rust,
run these commands. They requires python 2.x to
work:

$ mkdir -p src/rt/libuv/build
$ svn co http://gyp.googlecode.com/svn src/rt/libuv/build/gyp
$ ./etc/src/gyp_uv
2011-09-23 16:53:06 -07:00
Brian Anderson
acb0e8dcad Don't pipe check-fast results through tee
This was having the effect of scrubbing failure error codes. The only affect
of removing this should be that the .out file isn't generated, so subsequent
make invocations will re-run the tests (which is how our other tests work
anyway).
2011-09-23 12:30:35 -07:00
Patrick Walton
61afef29a1 rt: Add a RUST_TRACK_ORIGINS debug flag to help track down memory corruption 2011-09-23 11:42:20 -07:00
Graydon Hoare
18c6cc6371 More steps to arch-specific target libs (#474) 2011-09-23 10:50:16 -07:00
Graydon Hoare
f2b49b8309 Remove -i for real. 2011-09-22 11:32:53 -07:00
Graydon Hoare
31c04a53e9 One little 'n', so much harm! 2011-09-21 12:34:30 -07:00
Graydon Hoare
13215809a8 Expand our own config.guess-like logic in configure, rather than only asking LLVM. We have to decide some things before we get an LLVM to ask. 2011-09-21 11:24:59 -07:00
Patrick Walton
e26b1883dd rt: Stub code for the cycle collector 2011-09-20 16:49:31 -07:00
Graydon Hoare
939a9dd738 Simplify perf target flags. Apparently the event names aren't stable/portable. 2011-09-19 14:56:02 -07:00
Graydon Hoare
c0ffd2ea26 Print perf measurement outputs on completion of 'perf' target. 2011-09-13 17:32:25 -07:00
Graydon Hoare
e45c91135a Add a compile-stage2-under-perf step to "make perf" target. 2011-09-13 16:05:53 -07:00
Graydon Hoare
d5b2d62b20 Add build-system mechanisms for running benchmarks under 'perf'. 2011-09-13 15:06:41 -07:00
Brian Anderson
f1e348ce6a Change the exit status used for valgrind errors and check for it in tests 2011-09-11 17:31:37 -07:00
Brian Anderson
1bd627039e Begin compiling with exceptions enabled
Issue #236
2011-09-07 10:32:58 -07:00
Marijn Haverbeke
6209e844ee Replace xfail-stageN with simply xfail-test
Closes #799
2011-08-31 16:32:16 +02:00
Marijn Haverbeke
66bc014720 Revert "Replace xfail-stageN with simply xfail-test"
This reverts commit 574194f6bc.
2011-08-31 14:24:08 +02:00
Marijn Haverbeke
574194f6bc Replace xfail-stageN with simply xfail-test
Closes #799
2011-08-31 13:43:09 +02:00
Marijn Haverbeke
49e59e4ba7 Remove makefile CFG_USE_SNAP_LIBS_FOR_STAGE1 hack
It didn't work as intended, due to my lack of Makefile-fu
2011-08-29 14:31:32 +02:00
Marijn Haverbeke
9db4d9c6fd Add CFG_USE_SNAP_LIBS_FOR_STAGE1 hack to makefiles 2011-08-29 09:01:27 +02:00
Patrick Walton
db72bd90f5 mk: Introduce CFG_DISABLE_OPTIMIZE_CXX 2011-08-24 11:59:21 -07:00
Patrick Walton
25416bfae1 rustc: Introduce ABI versioning so we can change value representations without breaking the compiler 2011-08-20 14:22:09 -07:00
Patrick Walton
396f6b4f59 rustc: Stub GC routines 2011-08-18 18:48:32 -07:00
Patrick Walton
0fedea39ce rt: Remove rust_alarm dead code 2011-08-18 18:21:03 -07:00
Brian Anderson
28fbc591fd Add more verbosity to 'make reformat'
For each file it will indicate that it was reformatted, unchanged, or failed
2011-08-18 15:46:10 -07:00
Patrick Walton
d8c5bd6195 rt: Implement obstacks, untested as of yet 2011-08-16 19:49:25 -07:00
Eric Holk
a332043561 Updating to build on Linux and Mac, and hopefully Windows too. 2011-08-15 09:26:51 -07:00
Brian Anderson
25b85df370 Register new snapshots
Use main.o from the snapshot
2011-08-14 14:38:08 -07:00
Brian Anderson
1dbf0965a1 Add lib/main.o to snapshot
Snapshotting main.o is going to make it easier (I think) to convert main to
use ivecs
2011-08-14 12:14:58 -07:00
Patrick Walton
e8d170beae rt: Stub Rust GC metadata printer and Rust GC strategy modules 2011-08-11 21:15:26 -07:00
Rafael Ávila de Espíndola
6402b63b4f Use the new C API for PassManagerBuilder. 2011-08-11 19:09:52 -04:00
Brian Anderson
40ae704ff2 Begin valgrinding run-fail tests
Introduce a temporary no-valgrind directive for the few that aren't clean
2011-08-10 13:36:57 -07:00
Brian Anderson
c6bb04aba6 Add make clean rules for libuv 2011-08-05 11:57:07 -07:00
Brian Anderson
1758876381 Build libuv with the same C compiler as the rest of rt 2011-08-05 11:57:07 -07:00
Brian Anderson
43313b5504 Introduce CC and CXX variables to the makefiles 2011-08-05 11:57:07 -07:00
Graydon Hoare
7da64ae461 Munge libuv makefiles sufficiently to build out of tree. 2011-08-05 11:57:07 -07:00
Brian Anderson
b2c3fc739c More win32 libuv build tweaks 2011-08-05 11:57:07 -07:00
Brian Anderson
585c6f96d1 Update build rules so rt builds with libuv on Linux.
Needed to shuffle around the linker arguments and add -lpthread
2011-08-05 11:57:06 -07:00
Rob Arnold
8229c3fa75 Update libuv to revision ee599ec1141cc48f895de1f9d148033babdf9c2a 2011-08-05 11:57:06 -07:00
Rob Arnold
f4b87c749f Basic async IO module using libuv 2011-08-05 11:57:06 -07:00