[LLVMdev] llvm-gcc build of inferno/plan 9 'mk' fails

james northrup northrup.james at gmail.com
Thu Jul 30 23:03:39 PDT 2009


hello,

I'm attempting to build the inferno source tree using either of native
LTO or jit'd bins and having no obvious luck.

im using macports (current as of this email) llvm-2.5 and llvm-gcc on
a macbook pro (x86)

following the inferno directions verbatim will use 'cc' as the
compiler and just works.
the build tools are different from the naive build tools as follows:

CC="p llvm-gcc-4.2 `llvm-config --cflags` -march=i386  --emit-llvm -O0
  -c -I$PLAT/include -I$ROOT/include -I$ROOT/utils/    include"
LD="p llvm-ld `llvm-config --ldflags --libs all  `"
AR="p llvm-ar crvs"

any simplifications or rules of thumb that might help would be greatly
appreciated....

the build proceeds, finishes, and leaves me guessing:

#957$457 Thu 09073022:29:22 jim at bframe4:~/work/inferno
: CC=llvm-gcc-4.2
PATH=/usr/local/inferno/MacOSX/386/bin/:/opt/local/bin:$PATH
./makemk.sh
removing old libraries and binaries
llvm-gcc-4.2 -I/opt/local/include -D_DEBUG -D_GNU_SOURCE
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O3 -march=i386
--emit-llvm -O0 -c -I/usr/local/inferno/MacOSX/386/include
-I/usr/local/inferno/include -I/usr/local/inferno/utils/include
regaux.c regcomp.c regerror.c regexec.c regsub.c rregexec.c rregsub.c
llvm-ar crvs /usr/local/inferno/MacOSX/386/lib/libregexp.a regaux.o
regcomp.o regerror.o regexec.o regsub.o rregexec.o rregsub.o
llvm-ranlib /usr/local/inferno/MacOSX/386/lib/libregexp.a
llvm-gcc-4.2 -I/opt/local/include -D_DEBUG -D_GNU_SOURCE
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O3 -march=i386
--emit-llvm -O0 -c -I/usr/local/inferno/MacOSX/386/include
-I/usr/local/inferno/include -I/usr/local/inferno/utils/include
bbuffered.c bfildes.c bflush.c bgetc.c bgetd.c bgetrune.c binit.c
boffset.c bprint.c bputc.c bputrune.c brdline.c bread.c bseek.c
bwrite.c
llvm-ar crvs /usr/local/inferno/MacOSX/386/lib/libbio.a bbuffered.o
bfildes.o bflush.o bgetc.o bgetd.o bgetrune.o binit.o boffset.o
bprint.o bputc.o bputrune.o brdline.o bread.o bseek.o bwrite.o
llvm-ranlib /usr/local/inferno/MacOSX/386/lib/libbio.a
llvm-gcc-4.2 -I/opt/local/include -D_DEBUG -D_GNU_SOURCE
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O3 -march=i386
--emit-llvm -O0 -c -I/usr/local/inferno/MacOSX/386/include
-I/usr/local/inferno/include -I/usr/local/inferno/utils/include
dirstat-posix.c rerrstr.c errstr-posix.c getuser-posix.c charstod.c
cleanname.c create.c dirwstat.c fmtprint.c fmtvprint.c fprint.c
print.c runeseprint.c runesmprint.c runesnprint.c runevseprint.c
seprint.c smprint.c snprint.c sprint.c vfprint.c vseprint.c vsmprint.c
vsnprint.c dofmt.c dorfmt.c errfmt.c fcallfmt.c fltfmt.c fmt.c fmtfd.c
fmtlock.c fmtprint.c fmtquote.c fmtrune.c fmtstr.c fmtvprint.c exits.c
getfields.c pow10.c print.c qsort.c rune.c runestrlen.c seek.c
strdup.c strtoll.c utflen.c utfrrune.c utfrune.c utfecpy.c utflen.c
utfnlen.c utfrrune.c utfrune.c strecpy.c
llvm-ar crvs /usr/local/inferno/MacOSX/386/lib/lib9.a dirstat-posix.o
rerrstr.o errstr-posix.o getuser-posix.o charstod.o cleanname.o
create.o dirwstat.o fmtprint.o fmtvprint.o fprint.o print.o
runeseprint.o runesmprint.o runesnprint.o runevseprint.o seprint.o
smprint.o snprint.o sprint.o vfprint.o vseprint.o vsmprint.o
vsnprint.o dofmt.o dorfmt.o errfmt.o fcallfmt.o fltfmt.o fmt.o fmtfd.o
fmtlock.o fmtprint.o fmtquote.o fmtrune.o fmtstr.o fmtvprint.o exits.o
getfields.o pow10.o print.o qsort.o rune.o runestrlen.o seek.o
strdup.o strtoll.o utflen.o utfrrune.o utfrune.o utfecpy.o utflen.o
utfnlen.o utfrrune.o utfrune.o strecpy.o
llvm-ranlib /usr/local/inferno/MacOSX/386/lib/lib9.a
llvm-gcc-4.2 -I/opt/local/include -D_DEBUG -D_GNU_SOURCE
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O3 -march=i386
--emit-llvm -O0 -c -I/usr/local/inferno/MacOSX/386/include
-I/usr/local/inferno/include -I/usr/local/inferno/utils/include
Posix.c sh.c arc.c archive.c bufblock.c env.c file.c graph.c job.c
lex.c main.c match.c mk.c parse.c recipe.c rule.c run.c shprint.c
symtab.c var.c varsub.c word.c
llvm-ld -L/opt/local/lib -lpthread -lm /opt/local/lib/LLVMXCore.o
/opt/local/lib/LLVMSparcCodeGen.o /opt/local/lib/LLVMSparcAsmPrinter.o
/opt/local/lib/LLVMPowerPCAsmPrinter.o
/opt/local/lib/LLVMPowerPCCodeGen.o /opt/local/lib/LLVMPIC16.o
/opt/local/lib/LLVMMSIL.o /opt/local/lib/LLVMMips.o -lLLVMLinker
-lLLVMipo /opt/local/lib/LLVMInterpreter.o -lLLVMInstrumentation
/opt/local/lib/LLVMIA64.o /opt/local/lib/LLVMExecutionEngine.o
/opt/local/lib/LLVMJIT.o -lLLVMDebugger
/opt/local/lib/LLVMCppBackend.o /opt/local/lib/LLVMCellSPUCodeGen.o
/opt/local/lib/LLVMCellSPUAsmPrinter.o /opt/local/lib/LLVMCBackend.o
-lLLVMBitWriter /opt/local/lib/LLVMX86AsmPrinter.o
/opt/local/lib/LLVMX86CodeGen.o -lLLVMAsmParser
/opt/local/lib/LLVMARMAsmPrinter.o /opt/local/lib/LLVMARMCodeGen.o
-lLLVMArchive -lLLVMBitReader /opt/local/lib/LLVMAlphaCodeGen.o
-lLLVMSelectionDAG /opt/local/lib/LLVMAlphaAsmPrinter.o
-lLLVMAsmPrinter -lLLVMCodeGen -lLLVMScalarOpts -lLLVMTransformUtils
-lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMCore -lLLVMSupport
-lLLVMSystem -o mk Posix.o sh.o arc.o archive.o bufblock.o env.o
file.o graph.o job.o lex.o main.o match.o mk.o parse.o recipe.o rule.o
run.o shprint.o symtab.o var.o varsub.o word.o
/usr/local/inferno/MacOSX/386/lib/libregexp.a
/usr/local/inferno/MacOSX/386/lib/libbio.a
/usr/local/inferno/MacOSX/386/lib/lib9.a
mk binary built successfully!
#958$458 Thu 09073022:29:31 jim at bframe4:~/work/inferno
: cp utils/mk/mk{,.bc} MacOSX/386/bin/
#959$459 Thu 09073022:29:48 jim at bframe4:~/work/inferno
: CC=llvm-gcc-4.2
PATH=/usr/local/inferno/MacOSX/386/bin/:/opt/local/bin:$PATH mk


running the build :

#974$474 Thu 09073022:59:13 jim at bframe4:~/work/inferno
: cp utils/mk/mk{,.bc} MacOSX/386/bin/
#975$475 Thu 09073022:59:25 jim at bframe4:~/work/inferno
: CC=llvm-gcc-4.2
PATH=/usr/local/inferno/MacOSX/386/bin/:/opt/local/bin:$PATH mk
Could not resolve external global address: environ
0   lli               0x0078b172 std::_Rb_tree<llvm::sys::Path,
llvm::sys::Path, std::_Identity<llvm::sys::Path>,
std::less<llvm::sys::Path>, std::allocator<llvm::sys::Path>
>::insert_unique(llvm::sys::Path const&) + 7970
1   libSystem.B.dylib 0x91e1c2bb _sigtramp + 43

suggestions?
 a) is macports known bad?
 b) am i missing the 'not reinvent the whole makefile for llvm
compilation' FAQ ?
 c) just missing a step?

the env is a mbp, with Xcode 3.1 and llvm-gcc installed, and macports
llvm/llvm-gcc installed and on the build-tools path



More information about the llvm-dev mailing list