[LLVMdev] darwin dragon-egg build issues
Jack Howarth
howarth at bromo.med.uc.edu
Fri Apr 9 19:23:12 PDT 2010
Is anyone building dragon-egg on darwin? I am trying
to build against the fink gcc45 package that I have prepared
for darwin and a updated fink llvm 2.7 package that is built
as...
../llvm-2.7/configure --prefix=/sw --prefix=/sw/lib/llvm --mandir=/sw/share/man --infodir=/sw/share/info --with-gmp=/sw --with-libiconv-prefix=/usr --with-system-zlib --with-as=/Developer/usr/bin/as --with-ld=/Developer/usr/bin/ld --with-nm=/Developer/usr/bin/nm --enable-optimized --enable-assertions --enable-pic --enable-targets=host-only
Since the gcc45 package installs symlinks to the compilers
in /sw/bin as gcc-4, g++-4, etc, I executed...
GCC=/sw/bin/gcc-4 LLVM_CONFIG=/sw/lib/llvm/bin/llvm-config make
This fails with...
g++ -c -I/sw/lib/llvm/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -MD -MP -DIN_GCC -DREVISION=\"100909M\" -DTARGET_NAME=\"x86_64-apple-darwin10.3.0\" -I/Users/howarth/llvm_svn/dragonegg -Iplugin/include -Wall -Werror -I/sw/lib/llvm/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O2 -fno-exceptions -fno-rtti -fno-common -Woverloaded-virtual /Users/howarth/llvm_svn/dragonegg/utils/target.cpp
<command-line>: error: "__STDC_LIMIT_MACROS" redefined
<command-line>: error: this is the location of the previous definition
<command-line>: error: "__STDC_CONSTANT_MACROS" redefined
<command-line>: error: this is the location of the previous definition
make: *** [target.o] Error 1
with GCC apparently being insufficent to redirect the compilers. Instead, I had to use...
GCC=/sw/bin/gcc-4 CC=/sw/bin/gcc-4 CXX=/sw/bin/g++-4 LLVM_CONFIG=/sw/lib/llvm/bin/llvm-config make
This however fails with...
/sw/bin/gcc-4 -c -I/sw/lib/llvm/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -MD -MP -DIN_GCC -DREVISION=\"100909M\" -DTARGET_NAME=\"x86_64-apple-darwin10.3.0\" -I/Users/howarth/llvm_svn/dragonegg -Iplugin/include -I/Users/howarth/llvm_svn/dragonegg/x86 -I/Users/howarth/llvm_svn/dragonegg/darwin -Wall -Werror -I/sw/lib/llvm/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O2 -fno-common /Users/howarth/llvm_svn/dragonegg/llvm-cache.c
In file included from /Users/howarth/llvm_svn/dragonegg/llvm-cache.c:28:0:
/Users/howarth/llvm_svn/dragonegg/llvm-cache.h:31:20: fatal error: config.h: No such file or directory
compilation terminated.
make: *** [llvm-cache.o] Error 1
If I manually run /sw/lib/llvm/bin/llvm-config, I get...
bash-3.2$ /sw/lib/llvm/bin/llvm-config --prefix
/sw/lib/llvm
bash-3.2$ /sw/lib/llvm/bin/llvm-config --src-root
/sw/src/fink.build/llvm-2.7-1/llvm-2.7
bash-3.2$ /sw/lib/llvm/bin/llvm-config --obj-root
/sw/src/fink.build/llvm-2.7-1/llvm_objdir
bash-3.2$ /sw/lib/llvm/bin/llvm-config --bindir
/sw/lib/llvm/bin
bash-3.2$ /sw/lib/llvm/bin/llvm-config --includedir
/sw/lib/llvm/include
bash-3.2$ /sw/lib/llvm/bin/llvm-config --libdir
/sw/lib/llvm/lib
bash-3.2$ /sw/lib/llvm/bin/llvm-config --cppflags
-I/sw/lib/llvm/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
bash-3.2$ /sw/lib/llvm/bin/llvm-config --cflags
-I/sw/lib/llvm/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O2 -fno-common
bash-3.2$ /sw/lib/llvm/bin/llvm-config --cxxflags
-I/sw/lib/llvm/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O2 -fno-exceptions -fno-rtti -fno-common -Woverloaded-virtual
bash-3.2$ /sw/lib/llvm/bin/llvm-config --ldflags
-L/sw/lib/llvm/lib -lpthread -lm
bash-3.2$ /sw/lib/llvm/bin/llvm-config --libs
-lLLVMLinker -lLLVMipo -lLLVMInterpreter -lLLVMInstrumentation -lLLVMJIT -lLLVMExecutionEngine -lLLVMBitWriter -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMMCParser -lLLVMX86AsmPrinter -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMX86Info -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAsmParser -lLLVMArchive -lLLVMBitReader -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMCore -lLLVMSupport -lLLVMSystem
bash-3.2$ /sw/lib/llvm/bin/llvm-config --libnames
libLLVMLinker.a libLLVMipo.a libLLVMInterpreter.a libLLVMInstrumentation.a libLLVMJIT.a libLLVMExecutionEngine.a libLLVMBitWriter.a libLLVMX86Disassembler.a libLLVMX86AsmParser.a libLLVMMCParser.a libLLVMX86AsmPrinter.a libLLVMX86CodeGen.a libLLVMSelectionDAG.a libLLVMX86Info.a libLLVMAsmPrinter.a libLLVMCodeGen.a libLLVMScalarOpts.a libLLVMInstCombine.a libLLVMTransformUtils.a libLLVMipa.a libLLVMAsmParser.a libLLVMArchive.a libLLVMBitReader.a libLLVMAnalysis.a libLLVMTarget.a libLLVMMC.a libLLVMCore.a libLLVMSupport.a libLLVMSystem.a
bash-3.2$ /sw/lib/llvm/bin/llvm-config --components
all analysis archive asmparser asmprinter backend bitreader bitwriter codegen core engine executionengine instcombine instrumentation interpreter ipa ipo jit linker mc mcparser native nativecodegen scalaropts selectiondag support system target transformutils x86 x86asmparser x86asmprinter x86codegen x86disassembler x86info
bash-3.2$ /sw/lib/llvm/bin/llvm-config --targets-built
x86
bash-3.2$ /sw/lib/llvm/bin/llvm-config --host-target
x86_64-apple-darwin10.3.0
bash-3.2$ /sw/lib/llvm/bin/llvm-config --build-mode
Release
Out of those, actually the --src-root and --obj-root mess up and
output...
bash-3.2$ /sw/lib/llvm/bin/llvm-config --obj-root
/sw/src/fink.build/llvm-2.7-1/llvm_objdirbash-3.2$
and
bash-3.2$ /sw/lib/llvm/bin/llvm-config --src-root
/sw/src/fink.build/llvm-2.7-1/llvm-2.7bash-3.2$
with a missing newline after the output. It seems that
dragonegg gets confused by the fact that llvm actually
installs the headers in...
/sw/lib/llvm/include/llvm
and
/sw/lib/llvm/include/llvm-c
rather than directly into /sw/lib/llvm/include.
Jack
More information about the llvm-dev
mailing list