Commit graph

318 commits

Author SHA1 Message Date
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
Niko Matsakis
15d60326f6 helpful targets 2011-12-06 19:55:45 -08:00
Graydon Hoare
447414f007 Establish 'core' library separate from 'std'. 2011-12-06 12:13:04 -08:00
Brian Anderson
a92218e630 Upgrade LLVM to svn revision 145779
This pulls in commits 145765 & 145766, which are required for split stacks.
2011-12-04 14:59:56 -08:00
Niko Matsakis
493492910f adopt -H-all convention 2011-12-02 19:05:49 -08:00
Niko Matsakis
3bbfe515df make convenient rustc targets 2011-12-02 19:05:49 -08:00
Graydon Hoare
d1fd7d49a7 Build infra and minor build-enabling bugfixes for cargo. 2011-12-01 11:31:29 -08:00
Graydon Hoare
766e29c0e1 Fix terminology typo. 2011-11-29 19:28:38 -08:00
Niko Matsakis
5ce33ceb76 improve install, fix MKFILE_DEPS so it works 2011-11-29 13:01:10 -08:00
Niko Matsakis
9c00c62b08 fix makefiles, add option to ignore changes in makefiles 2011-11-29 12:51:09 -08:00
Niko Matsakis
8371beb590 makefiles now seem to be working, rustc is not 2011-11-29 12:51:08 -08:00
Niko Matsakis
9c12c7c7f5 basic builds function 2011-11-29 12:51:07 -08:00
Brian Anderson
8d7863fad0 configure: Add --disable-manage-submodules switch
This will keep configure/make from updating submodules, which becomes
very annoying when you are working on LLVM
2011-11-28 18:01:42 -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
143f87899b build: Fix the rules for reconfiguring on git submodule changes 2011-11-25 20:01:14 -08:00
Stefan Plantikow
99c421f01d Removed --no-typestate flag from rutsc
Fixes issue #1139
2011-11-16 18:52:46 -08:00
Niko Matsakis
599baf9325 remove rustc target: it breaks mingw32 and I don't care enough 2011-11-09 20:45:01 -08:00
Niko Matsakis
711a3b066b add rustc to set of targets to build 2011-11-09 20:05:48 -08:00
Erick Tryzelaar
ab265586eb Re-add libuv as a submodule. 2011-11-08 19:01:47 -08: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
0e150116f3 Reconfigure when the git submodule status changes 2011-11-05 13:23:10 -07:00
Brian Anderson
f96f1692ef Add mk/llvm.mk 2011-11-05 13:23:10 -07:00
Brian Anderson
19797dfe9d Fix typo in Makefile.in comments 2011-11-03 10:53:49 -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
20946e6970 start going back to an i386 build 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
Haitao Li
d1cc00fef5 Rename libstd.so to libruststd.so
Fixes Issue #999
2011-10-31 14:43:43 -07:00
Brian Anderson
33f2f22bef Fix typo in Makefile.in 2011-10-27 15:04:29 -07:00
Brian Anderson
0c6200743c Add std docs to the build process 2011-10-27 14:59:22 -07:00
Marijn Haverbeke
ba1c6fcf38 Remove the last vestiges of main.ll
Closes #992
2011-10-20 17:36:28 +02: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
4709038d64 Bring make distcheck up to date 2011-10-06 18:12:15 -07:00
Brian Anderson
b7db0f1237 Don't run stage0 compiler under valgrind
The stage0 compiler can't be fixed anyway. We used to have this in place but I
lost it during recent build changes.
2011-10-05 11:09:52 -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
f525f6e94c Register new snapshots 2011-09-30 18:03:54 -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
b0560965c4 Refix the fuzzer make rule 2011-09-30 16:18:19 -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
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
86ed9053da Fix make all build rule 2011-09-29 22:58:34 -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
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
Graydon Hoare
18c6cc6371 More steps to arch-specific target libs (#474) 2011-09-23 10:50:16 -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
Graydon Hoare
d5b2d62b20 Add build-system mechanisms for running benchmarks under 'perf'. 2011-09-13 15:06:41 -07: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
c9c5ee252a Implement non-internal ivecs
Vectors are now similar to our old, pre-internal vectors, except that
they are uniquely owned, not refcounted.

Their name should probably change too, then. I've renamed them to vec
in the runtime, will do so throughout the compiler later.
2011-08-29 09:07:53 +02:00
Marijn Haverbeke
9db4d9c6fd Add CFG_USE_SNAP_LIBS_FOR_STAGE1 hack to makefiles 2011-08-29 09:01:27 +02:00
Brian Anderson
e3d3aaadaa Don't run the stage0 compiler under valgrind when CFG_VALGRIND_COMPILE
There's nothing to be done for stage0 at this point.
2011-08-26 13:20:22 -07:00
Graydon Hoare
7da64ae461 Munge libuv makefiles sufficiently to build out of tree. 2011-08-05 11:57:07 -07:00
Marijn Haverbeke
863d121043 Revert 66c1ca857b 2011-07-27 15:44:21 +02:00
Marijn Haverbeke
f45524d0d4 This time, I'm almost sure it'll work
(Tinderbox workaround kludge)
2011-07-27 15:19:31 +02:00
Graydon Hoare
ad954fcecc Add an NSIS script for building a win32 installer. Closes #522. 2011-07-23 12:27:06 -07:00
Brian Anderson
6fc33163dc Change the CFG_STDLIB_DEFAULT macro into a call that picks the correct stage
stageN/rustc depends on either stageN/libstd.so or stage(N-1)/lib/libstd.rlib
so CFG_STDLIB_DEFAULT needs to try harder to get the dependencies right.
2011-07-22 10:18:28 -07:00
Michael Sullivan
b01ecb10c3 Instantiate the stage0/lib/stdlib rules from stage0.mk instead of stageN.mk. 2011-07-21 12:15:36 -07:00
Rafael Ávila de Espíndola
ea371a3d37 Cleanup the library path now that we copy from stageN/lib to stageN+1/ 2011-07-21 15:12:10 -04:00
Rafael Ávila de Espíndola
88894b6f9c Add support for building with a static libstd for testing static crate support. 2011-07-20 16:02:36 -04:00
Brian Anderson
2cb3a798ab Build the fuzzer on Windows 2011-07-20 10:11:35 -07:00
Graydon Hoare
46b0aa5c5c Enable fuzzer build *when not on windows*. We'll get to windows when we can. 2011-07-18 15:57:12 -07:00
Graydon Hoare
fafb42e6b1 Merge the stage1,2,3.mk files into a common definition in stageN.mk, more rearrangement of host/target libs. 2011-07-15 16:16:51 -07:00
Brian Anderson
d9cc4cb81b Revert "Add fuzzer as part of 'all' standard build target so people know when it breaks."
Try to put out windows tinderbox. The librustc build rules don't seem to work
there yet.

This reverts commit ce6a77e24e.
2011-07-14 19:42:12 -07:00
Graydon Hoare
ce6a77e24e Add fuzzer as part of 'all' standard build target so people know when it breaks. 2011-07-14 17:27:37 -07:00
Graydon Hoare
39151f2ad8 Prohibit trailing whitespace under 'tidy' script. Clean up all caught cases. 2011-07-13 15:44:09 -07:00
Rafael Ávila de Espíndola
d151e18633 Move llvm out of stageN/lib so that the host building stage 1+ can
have a newer and incompatible llvm with the bots.
2011-07-11 16:31:47 -04:00
Brian Anderson
106d0f3b72 Complete the transition of glue.o to the lib directory 2011-07-07 17:19:24 -07:00
Brian Anderson
5fb9cad38d Partially restore the fuzzer crate's build rules
Right now the stage1/fuzzer crate will build but it's not linked to librustc
because stage1/librustc won't link.
2011-07-01 10:43:21 -07:00
Graydon Hoare
df8161d44c Correct make rules a bit. 2011-06-30 13:41:28 -07:00
Graydon Hoare
c796a8f24d Re-enable tidy (it was broken) and fix various non-tidy things. 2011-06-29 15:14:55 -07:00
Graydon Hoare
0dc2aa3d09 Bit more work on mingw cross. Pending on other changes now (test combination, build artifact locations) 2011-06-28 11:18:34 -07:00
Graydon Hoare
8fc51dfc65 Some work on reviving the mingw-cross build. Not working yet. 2011-06-27 11:53:28 -07:00
Graydon Hoare
79ba31504b Fixes to speed and clean up makefiles. 2011-06-25 19:23:32 +00:00
Rafael Ávila de Espíndola
164230dcb6 Finish the transition to having the std library in stageN/lib. 2011-06-20 13:38:11 -04:00
Brian Anderson
2752284f4b Add TIME_LLVM_PASSES flag to the Makefile 2011-06-18 20:23:05 -07:00
Brian Anderson
bd93e1abcd Register new snapshots. Update location of stage0's libstd 2011-06-17 18:19:37 -07:00
Rafael Ávila de Espíndola
fc31c90b5c Break long lines. 2011-06-17 15:49:23 -04:00
Rafael Ávila de Espíndola
342dbd7abe Put std in stageN/lib. This avoids windows trying to load stageN/std.ll when
stageN/runstc.exe is run.
2011-06-17 15:34:59 -04:00
Rafael Ávila de Espíndola
1dbc0442cd Automatically add a -L to the directory the binary is in. 2011-06-17 13:36:08 -04:00
Rafael Ávila de Espíndola
32895ad990 Switch to using the rustc driver in the bootstrap process. 2011-06-16 14:43:35 -04:00
Graydon Hoare
0a8f9a394b Handle missing git in build env. 2011-06-13 14:45:49 -07:00
Rafael Ávila de Espíndola
2c16be424b Use main.o directly now that stage0 is ok with it. 2011-06-08 13:33:35 -04:00
Rafael Ávila de Espíndola
b1d6f12a05 Don't put a copy of main (the C one) in each binary we produce. This is a step
in getting a driver that works on all linux systems.

Sorry for the linker hacks, I will remove them after snapshotting a new compiler.
2011-06-07 16:56:27 -04:00
Graydon Hoare
49742b86be Add a 'make reformat' rule. 2011-06-01 12:01:55 -07:00
Tim Chevalier
60399ed198 Tell Makefile to look an extra level deep for dependencies 2011-05-19 11:40:16 -07:00
Rafael Ávila de Espíndola
96516e9ca2 One exit_task_glue to rule them all. 2011-05-18 15:43:48 -04:00
Graydon Hoare
6a4a85f452 Re-export CFG_LLVM_ROOT to reconfiguring. 2011-05-18 12:00:33 -07:00
Graydon Hoare
9ac29480ce Be a bit noisier about being in a transition. 2011-05-16 15:14:58 -07:00
Brian Anderson
072305af13 Remove CFG_OCAMLC_OPT 2011-05-14 16:08:22 -04:00
Brian Anderson
cad8c734bd Add a flag to run the compiler under valgrind 2011-05-14 00:15:40 -04:00
Graydon Hoare
ae784df3ce Add support for 'T' transition snapshots, which are identical to S snapshots except they tell the makefile to stop at stage1. 2011-05-13 17:06:58 -07:00
Brian Anderson
9a12ad62f6 Add targets for building rustc as a library 2011-05-10 21:31:14 -04:00
Brian Anderson
a5ea56c6f0 Introduce the fuzzer crate and make rules 2011-05-10 21:31:14 -04:00
Patrick Walton
404db4d9a1 build: Add a DEBUG flag that turns on -g 2011-05-10 17:50:39 -07:00
Graydon Hoare
1e03f00404 Use #env to bake a git revision string into rustc's --version output. 2011-05-06 11:21:51 -07:00
Patrick Walton
518e2d249c build: Disable valgrind by default on the Mac. Our suppressions file doesn't even begin to cover the huge stream of errors that dyld generates. 2011-05-05 18:11:40 -07:00
Ralph Giles
0b2cfcaab9 Make ocamlc and optional dependency.
Since moving to a downloadable snapshot for stage0, it's been
possible to complete the build without compiling code written
in ocaml. However, the configure script still required it to
be present.

This commit changes detection failure to a non-fatal condition,
allowing the build to complete on systems without an ocaml
compiler.

An info message is also made conditional.
2011-05-05 11:02:16 -07:00
Patrick Walton
04f966f0bc build: Build intrinsics.bc 2011-05-04 18:29:08 -07:00
Graydon Hoare
4f52ab52c1 Remove everything to do with rustboot from makefiles. 2011-05-03 15:56:00 -07:00
Graydon Hoare
d987b49a4b More hacking on the snapshot system. 2011-05-02 23:37:52 -07:00
Graydon Hoare
5d1c8dbfa9 Add stage1, stage2 to Makefile.in default target, so tinderboxes notice breakage. 2011-05-02 17:56:33 -07:00
Graydon Hoare
40624e35d7 Start splitting up Makefile.in 2011-05-01 20:20:25 +00:00
Graydon Hoare
73ba2dd4c7 Shift stages around; stage0/rustc depends on stage0/libstd.so. 2011-04-30 18:44:34 +00:00
Patrick Walton
9aeb67987c rustc: Temporarily add a switch and a corresponding makefile variable to disable typestate 2011-04-29 12:16:14 -07:00
Patrick Walton
648c4ae2ba build: Add a TIME_PASSES=1 variable 2011-04-29 11:55:32 -07:00
Patrick Walton
c52fb52fbc rustc: Remove the wrong-compiler warning; we're self-hosting now. 2011-04-29 10:23:53 -07:00
Marijn Haverbeke
6b11f6c46f Change rustc to use GetOpts rather than ad-hoc command-line parsing
NOTE: all 'long' parameters now use a double dash, so --shared, rather
than gcc-style -shared.
2011-04-26 20:32:14 +02:00
Patrick Walton
3f77e7df6d rustc: Add a SAVE_TEMPS option to the Makefile for use when debugging stage1 and test cases 2011-04-25 14:20:28 -07:00
Graydon Hoare
0cffc58225 Fix LD_LIBRARY_PATH on STAGE0, STAGE1 defs; define STAGE2. 2011-04-24 00:29:19 -07:00
Graydon Hoare
9eec7e3b15 Expansion of rules to cover stage1, stage2 in more cases. Fix typo in makefile. 2011-04-24 06:06:29 +00:00
Rafael Ávila de Espíndola
fac8cc3b06 Use -c in the Makefiles. 2011-04-22 15:15:52 -04:00
Graydon Hoare
186717fae0 Fix link commands for stage1 and stage2. 2011-04-21 06:07:10 +00:00
Graydon Hoare
c470cd2d66 Fix stage1 Makefile rules. 2011-04-20 15:24:04 +00:00
Graydon Hoare
d2bd07dcb0 Remove effect system from src. 2011-04-19 13:35:49 -07:00
Rafael Ávila de Espíndola
9657e5d2d3 Revert 9ab42038bb while I find what is
wrong on Windows.
2011-04-18 15:37:04 -04:00
Rafael Ávila de Espíndola
9ab42038bb Change the makefiles to use -c. 2011-04-18 15:00:17 -04:00
Rafael Ávila de Espíndola
099e094765 Produce PIC code and use -S in the Makefile. 2011-04-15 19:29:13 -04:00
Rafael Ávila de Espíndola
01b1d4110d Remove code that is already in llvm for some time. 2011-04-13 14:55:44 -04:00
Rafael Ávila de Espíndola
1fa7fe758f Update Makefile.in, not Makefile :-( 2011-04-13 14:05:02 -04:00
Rafael Ávila de Espíndola
4bd8dcccbc Try to fix the windows build. 2011-04-11 15:05:18 -04:00
Rafael Ávila de Espíndola
e733311a95 Make sure RustWrapper.cpp is linked in. 2011-04-11 14:52:11 -04:00
Graydon Hoare
19ebc0f376 Actually disable optimize in --disable-optimize case, duh. 2011-04-08 17:28:14 -07:00
Graydon Hoare
cae703c0b1 Add support for --disable-optimize 2011-04-08 15:49:14 -07:00
Rafael Ávila de Espíndola
2cbe2bcb5e Link with -lm now that it is not included with --whole-archive when
building rustllvm.
2011-04-08 14:51:47 -04:00
Rafael Ávila de Espíndola
f8e22cdff3 Gold is more strict about --whole-archive and will report duplicated
symbols because of an Object.o in a .a and one outside. A similar
problem happens for the non-shared part of libpthread.

This patch moves the -whole-archive/-no-whole-archive to include just the
llvm libs.
2011-04-08 14:25:18 -04:00
Patrick Walton
ed14ea1d3f build: Use -O0 on Darwin. Seems that Darwin's GCC optimizations break rustrt. 2011-04-07 18:14:13 -07:00
Marijn Haverbeke
973023030e add -O2 when compiling rt, fix warnings triggered by optimizer 2011-04-08 00:41:52 +02:00
Rafael Ávila de Espíndola
b4422cca21 Add a -O option and change the Makefile to use it. 2011-04-07 15:42:06 -04:00
Graydon Hoare
6d857c0c84 Fix error where make check would not produce compilers first, due to make's infinite-recursion-prevention heuristic. 2011-03-31 14:58:44 -07:00
Graydon Hoare
a505e3c0ec Improve 'clean' make target. 2011-03-31 14:03:43 -07:00
Graydon Hoare
a154c5b656 Um, that'd be, align the word *before* retpc. Addresses point to the low part of a word. Un-XFAIL nbody on Darwin. 2011-03-30 14:10:06 -07:00
Graydon Hoare
94731fa458 Add support for --enable-foo and --disable-foo flags to configure, that Makefile.in respects. 2011-03-30 04:45:09 +00:00
Graydon Hoare
b55c8333cb Beef up the SREQ variables in Makefile.in, make tests depend on libstd.so 2011-03-29 17:33:39 -07:00
Graydon Hoare
d7a6c83c8c Apparently I learned to type yesterday. 2011-03-29 15:21:39 -07:00
Graydon Hoare
973fd3c4f2 Add -lstd to the stage0, 1, 2 test executable link commands. 2011-03-29 14:56:57 -07:00
Graydon Hoare
6936093992 XFAIL nbody on darwin, quiet tinderbox for now. 2011-03-29 11:20:58 -07:00
Graydon Hoare
b628c352f3 Fix Makefile.in grep for use on weaker greps (win32 mingw). 2011-03-26 17:35:26 -07:00
Graydon Hoare
49d9d5688e Switch xfail system to use comments embedded in source files. 2011-03-25 12:19:20 -07:00
Tim Chevalier
a47cd50dfb Parse FP literals without coercing to int. This allows parsing 64-bit
floats. However, if someone writes a literal that can't be represented
precisely in 64 bits, the front-end will accept it while the back-end
will (presumably) complain.
2011-03-25 11:20:30 -07:00
Brian Anderson
ebc4df3c7a Implement local declarations with receive. Un-XFAIL decl-with-recv.rs. 2011-03-25 11:01:52 -07:00
Brian Anderson
ef1bcdea70 Add test for local declarations with receive. XFAIL in rustc. 2011-03-25 11:01:52 -07:00