From 0cc900aace99c3ffbb357794c5be7ab2b2902ef9 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Wed, 18 May 2011 19:32:18 -0700 Subject: [PATCH 1/3] Use CFG_LLVM_ROOT's llvm-config if it exists. On some platform (OS X), llvm needs macros like __STDC_LIMIT_MACROS defined in order to work, which is normally defined in llvm-config. This patch modifies the config to use CFG_LLVM_ROOT's llvm-config if it exists, which fixes the compile failures. --- configure | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/configure b/configure index ad56f1122718b..f9045950032e7 100755 --- a/configure +++ b/configure @@ -226,7 +226,12 @@ then putvar CFG_BAD_VALGRIND fi -if [ ! -z "$CFG_LLVM_ROOT" ] +if [ ! -z "$CFG_LLVM_ROOT" -a -e "$CFG_LLVM_ROOT/bin/llvm-config" ] +then + CFG_LLVM_CONFIG="$CFG_LLVM_ROOT/bin/llvm-config" +fi + +if [ ! -z "$CFG_LLVM_ROOT" -a -z "$CFG_LLVM_CONFIG" ] then CFG_LLVM_INCDIR="$CFG_LLVM_ROOT/include" CFG_LLVM_BINDIR="$CFG_LLVM_ROOT/bin" @@ -247,14 +252,14 @@ then | cut -d ' ' -f 4-) elif [ ! -z "$CFG_LLVM_CONFIG" ] then - CFG_LLVM_VERSION=$(llvm-config --version) - CFG_LLVM_INCDIR=$(llvm-config --includedir) - CFG_LLVM_BINDIR=$(llvm-config --bindir) - CFG_LLVM_LIBDIR=$(llvm-config --libdir) - CFG_LLVM_CXXFLAGS=$(llvm-config --cxxflags) - CFG_LLVM_LDFLAGS=$(llvm-config --ldflags) - CFG_LLVM_LIBS=$(llvm-config --libs) - CFG_LLVM_TRIPLE=$(llvm-config --host-target) + CFG_LLVM_VERSION=$($CFG_LLVM_CONFIG --version) + CFG_LLVM_INCDIR=$($CFG_LLVM_CONFIG --includedir) + CFG_LLVM_BINDIR=$($CFG_LLVM_CONFIG --bindir) + CFG_LLVM_LIBDIR=$($CFG_LLVM_CONFIG --libdir) + CFG_LLVM_CXXFLAGS=$($CFG_LLVM_CONFIG --cxxflags) + CFG_LLVM_LDFLAGS=$($CFG_LLVM_CONFIG --ldflags) + CFG_LLVM_LIBS=$($CFG_LLVM_CONFIG --libs) + CFG_LLVM_TRIPLE=$($CFG_LLVM_CONFIG --host-target) else err "either the \"CFG_LLVM_ROOT\" environment variable must be set, or a \ \"llvm-config\" script must be present" From 12f4d047e1866223c5064407cd2890fa98e39f61 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Wed, 18 May 2011 21:41:40 -0700 Subject: [PATCH 2/3] Make sure we're using clang >=3.0svn. --- configure | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/configure b/configure index f9045950032e7..5925ccd3cafed 100755 --- a/configure +++ b/configure @@ -274,6 +274,23 @@ case $CFG_LLVM_VERSION in ;; esac +if [ ! -z "$CFG_CLANG" ] +then + CFG_CLANG_VERSION=$("$CFG_CLANG" \ + --version \ + | grep version \ + | cut -d ' ' -f 3) + + case $CFG_CLANG_VERSION in + (3.0svn | 3.0) + step_msg "found ok version of CLANG: $CFG_CLANG_VERSION" + ;; + (*) + err "bad CLANG version: $CFG_CLANG_VERSION, need >=3.0svn" + ;; + esac +fi + putvar CFG_LLVM_ROOT putvar CFG_LLVM_INCDIR putvar CFG_LLVM_BINDIR From 23259c2f69ece77d16ace0696502ca81b2ffc5a9 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Thu, 19 May 2011 08:36:55 -0700 Subject: [PATCH 3/3] librustc depends on rustllvm and std. This fixes compiling the fuzzer application. --- mk/stage1.mk | 2 +- mk/stage2.mk | 2 +- mk/stage3.mk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mk/stage1.mk b/mk/stage1.mk index 44521f9480eaf..f2ca6321d9455 100644 --- a/mk/stage1.mk +++ b/mk/stage1.mk @@ -16,7 +16,7 @@ stage1/librustc.o: $(COMPILER_CRATE) $(COMPILER_INPUTS) $(SREQ0) stage1/$(CFG_RUSTCLIB): stage1/librustc.o stage1/glue.o @$(call E, link: $@) $(Q)gcc $(CFG_GCCISH_CFLAGS) stage1/glue.o $(CFG_GCCISH_LINK_FLAGS) \ - -o $@ $< -Lstage1 -Lrt -lrustrt + -o $@ $< -Lstage1 -Lrustllvm -Lrt -lrustrt -lrustllvm -lstd stage1/rustc.o: $(COMPILER_CRATE) $(COMPILER_INPUTS) $(SREQ0) @$(call E, compile: $@) diff --git a/mk/stage2.mk b/mk/stage2.mk index 6f5ffa6f7ae30..e084a19a8d3a7 100644 --- a/mk/stage2.mk +++ b/mk/stage2.mk @@ -16,7 +16,7 @@ stage2/librustc.o: $(COMPILER_CRATE) $(COMPILER_INPUTS) $(SREQ1) stage2/$(CFG_RUSTCLIB): stage2/librustc.o stage2/glue.o @$(call E, link: $@) $(Q)gcc $(CFG_GCCISH_CFLAGS) stage2/glue.o $(CFG_GCCISH_LINK_FLAGS) \ - -o $@ $< -Lstage2 -Lrt -lrustrt + -o $@ $< -Lstage2 -Lrustllvm -Lrt -lrustrt -lrustllvm -lstd stage2/rustc.o: $(COMPILER_CRATE) $(COMPILER_INPUTS) $(SREQ1) @$(call E, compile: $@) diff --git a/mk/stage3.mk b/mk/stage3.mk index a753d52c17247..dc2792446e21e 100644 --- a/mk/stage3.mk +++ b/mk/stage3.mk @@ -16,7 +16,7 @@ stage3/librustc.o: $(COMPILER_CRATE) $(COMPILER_INPUTS) $(SREQ2) stage3/$(CFG_RUSTCLIB): stage3/librustc.o stage3/glue.o @$(call E, link: $@) $(Q)gcc $(CFG_GCCISH_CFLAGS) stage3/glue.o $(CFG_GCCISH_LINK_FLAGS) \ - -o $@ $< -Lstage3 -Lrt -lrustrt + -o $@ $< -Lstage3 -Lrustllvm -Lrt -lrustrt -lrustllvm -lstd stage3/rustc.o: $(COMPILER_CRATE) $(COMPILER_INPUTS) $(SREQ2) @$(call E, compile: $@)