Use -c in the Makefiles.

This commit is contained in:
Rafael Ávila de Espíndola 2011-04-19 17:07:30 -04:00
parent c1335510d5
commit fac8cc3b06
2 changed files with 29 additions and 34 deletions

View file

@ -463,27 +463,27 @@ boot/$(CFG_STDLIB): $(STDLIB_CRATE) $(STDLIB_INPUTS) \
@$(call E, compile: $@) @$(call E, compile: $@)
$(BOOT) -shared -o $@ $< $(BOOT) -shared -o $@ $<
stage0/std.s: $(STDLIB_CRATE) $(STDLIB_INPUTS) stage0/rustc$(X) $(MKFILES) stage0/std.o: $(STDLIB_CRATE) $(STDLIB_INPUTS) stage0/rustc$(X) $(MKFILES)
@$(call E, compile: $@) @$(call E, compile: $@)
$(STAGE0) -S -shared -o $@ $< $(STAGE0) -c -shared -o $@ $<
stage0/$(CFG_STDLIB): stage0/std.o stage0/glue.o stage0/$(CFG_STDLIB): stage0/std.o stage0/glue.o
@$(call E, link: $@) @$(call E, link: $@)
$(Q)gcc $(CFG_GCC_CFLAGS) stage0/glue.o $(CFG_GCC_LINK_FLAGS) -o $@ $< \ $(Q)gcc $(CFG_GCC_CFLAGS) stage0/glue.o $(CFG_GCC_LINK_FLAGS) -o $@ $< \
-Lstage0 -Lrt -lrustrt -Lstage0 -Lrt -lrustrt
stage1/std.s: $(STDLIB_CRATE) $(STDLIB_INPUTS) stage1/rustc$(X) $(MKFILES) stage1/std.o: $(STDLIB_CRATE) $(STDLIB_INPUTS) stage1/rustc$(X) $(MKFILES)
@$(call E, compile: $@) @$(call E, compile: $@)
$(STAGE1) -S -shared -o $@ $< $(STAGE1) -c -shared -o $@ $<
stage1/$(CFG_STDLIB): stage1/std.o stage1/glue.o stage1/$(CFG_STDLIB): stage1/std.o stage1/glue.o
@$(call E, link: $@) @$(call E, link: $@)
$(Q)gcc $(CFG_GCC_CFLAGS) stage1/glue.o $(CFG_GCC_LINK_FLAGS) -o $@ $< \ $(Q)gcc $(CFG_GCC_CFLAGS) stage1/glue.o $(CFG_GCC_LINK_FLAGS) -o $@ $< \
-Lstage1 -Lrt -lrustrt -Lstage1 -Lrt -lrustrt
stage2/std.s: $(STDLIB_CRATE) $(STDLIB_INPUTS) stage2/rustc$(X) $(MKFILES) stage2/std.o: $(STDLIB_CRATE) $(STDLIB_INPUTS) stage2/rustc$(X) $(MKFILES)
@$(call E, compile: $@) @$(call E, compile: $@)
$(STAGE2) -S -shared -o $@ $< $(STAGE2) -c -shared -o $@ $<
stage2/$(CFG_STDLIB): stage2/std.o stage2/glue.o stage2/$(CFG_STDLIB): stage2/std.o stage2/glue.o
@$(call E, link: $@) @$(call E, link: $@)
@ -497,30 +497,30 @@ stage0/rustc$(X): $(COMPILER_CRATE) $(COMPILER_INPUTS) $(BREQ)
$(BOOT) -minimal -o $@ $< $(BOOT) -minimal -o $@ $<
$(Q)chmod 0755 $@ $(Q)chmod 0755 $@
stage1/rustc.s: $(COMPILER_CRATE) $(COMPILER_INPUTS) $(SREQ0) stage1/rustc.o: $(COMPILER_CRATE) $(COMPILER_INPUTS) $(SREQ0)
@$(call E, compile: $@) @$(call E, compile: $@)
$(STAGE0) -S -o $@ $< $(STAGE0) -c -o $@ $<
stage2/rustc.s: $(COMPILER_CRATE) $(COMPILER_INPUTS) $(SREQ1) stage2/rustc.o: $(COMPILER_CRATE) $(COMPILER_INPUTS) $(SREQ1)
@$(call E, compile: $@) @$(call E, compile: $@)
$(STAGE1) -S -o $@ $< $(STAGE1) -c -o $@ $<
stage0/glue.s: stage0/rustc$(X) boot/$(CFG_STDLIB) \ stage0/glue.o: stage0/rustc$(X) boot/$(CFG_STDLIB) \
rustllvm/$(CFG_RUSTLLVM) rt/$(CFG_RUNTIME) rustllvm/$(CFG_RUSTLLVM) rt/$(CFG_RUNTIME)
@$(call E, generate: $@) @$(call E, generate: $@)
$(STAGE0) -S -o $@ -glue $(STAGE0) -c -o $@ -glue
stage1/glue.s: stage1/rustc$(X) stage0/$(CFG_STDLIB) \ stage1/glue.o: stage1/rustc$(X) stage0/$(CFG_STDLIB) \
rustllvm/$(CFG_RUSTLLVM) rt/$(CFG_RUNTIME) rustllvm/$(CFG_RUSTLLVM) rt/$(CFG_RUNTIME)
@$(call E, generate: $@) @$(call E, generate: $@)
$(STAGE1) -S -o $@ -glue $(STAGE1) -c -o $@ -glue
stage2/glue.s: stage2/rustc$(X) stage1/$(CFG_STDLIB) \ stage2/glue.o: stage2/rustc$(X) stage1/$(CFG_STDLIB) \
rustllvm/$(CFG_RUSTLLVM) rt/$(CFG_RUNTIME) rustllvm/$(CFG_RUSTLLVM) rt/$(CFG_RUNTIME)
@$(call E, generate: $@) @$(call E, generate: $@)
$(STAGE2) -S -o $@ -glue $(STAGE2) -c -o $@ -glue
# Due to make not wanting to run the same implicit rules twice on the same # Due to make not wanting to run the same implicit rules twice on the same
# rule tree (implicit-rule recursion prevention, see "Chains of Implicit # rule tree (implicit-rule recursion prevention, see "Chains of Implicit
@ -805,35 +805,29 @@ compile-check: tidy \
@$(call E, compile [boot]: $@) @$(call E, compile [boot]: $@)
$(BOOT) -o $@ $< $(BOOT) -o $@ $<
%.stage0.s: %.rc $(SREQ0) %.stage0.o: %.rc $(SREQ0)
@$(call E, compile [stage0]: $@) @$(call E, compile [stage0]: $@)
$(STAGE0) -S -o $@ $< $(STAGE0) -c -o $@ $<
%.stage0.s: %.rs $(SREQ0) %.stage0.o: %.rs $(SREQ0)
@$(call E, compile [stage0]: $@) @$(call E, compile [stage0]: $@)
$(STAGE0) -S -o $@ $< $(STAGE0) -c -o $@ $<
%.stage1.s: %.rc $(SREQ1) %.stage1.o: %.rc $(SREQ1)
@$(call E, compile [stage1]: $@) @$(call E, compile [stage1]: $@)
$(STAGE1) -S -o $@ $< $(STAGE1) -c -o $@ $<
%.stage1.s: %.rs $(SREQ1) %.stage1.o: %.rs $(SREQ1)
@$(call E, compile [stage1]: $@) @$(call E, compile [stage1]: $@)
$(STAGE1) -S -o $@ $< $(STAGE1) -c -o $@ $<
%.stage2.s: %.rc $(SREQ2) %.stage2.o: %.rc $(SREQ2)
@$(call E, compile [stage2]: $@) @$(call E, compile [stage2]: $@)
$(STAGE2) -S -o $@ $< $(STAGE2) -c -o $@ $<
%.stage2.s: %.rs $(SREQ2) %.stage2.o: %.rs $(SREQ2)
@$(call E, compile [stage2]: $@) @$(call E, compile [stage2]: $@)
$(STAGE2) -S -o $@ $< $(STAGE2) -c -o $@ $<
%.o: %.s
@$(call E, assemble [llvm]: $@)
$(Q)gcc $(CFG_GCC_CFLAGS) -o $@ -c $<
# Cancel the implicit .out rule in GNU make. # Cancel the implicit .out rule in GNU make.
%.out: % %.out: %

View file

@ -53,6 +53,7 @@ extern "C" void LLVMRustWriteOutputFile(LLVMPassManagerRef PMR, LLVMModuleRef M,
LLVMCodeGenFileType FileType) { LLVMCodeGenFileType FileType) {
InitializeAllTargets(); InitializeAllTargets();
InitializeAllAsmPrinters(); InitializeAllAsmPrinters();
InitializeAllAsmParsers();
TargetMachine::setRelocationModel(Reloc::PIC_); TargetMachine::setRelocationModel(Reloc::PIC_);
std::string Err; std::string Err;
const Target *TheTarget = TargetRegistry::lookupTarget(triple, Err); const Target *TheTarget = TargetRegistry::lookupTarget(triple, Err);