Closed agraef closed 7 years ago
Build log as text file: buildlog.txt
Fixed in f261a90ca915c06dee9e3a8e62a69664fe17082d
Thanks! I'm still getting a linker error on Linux (seems that there's a -lpthread
missing somewhere), but I can probably take care of that myself.
llvm-config tool is supposed to give the correct set of libraries to use. Please follow this path...
Yeah, but apparently it doesn't on Linux (this is on Arch):
$ llvm-config --libs
-lLLVM-4.0
$ llvm-config --system-libs
It's not the first time that they mess this up either. :(
FWIW, here's how the link command looks like, including the error message:
make[1]: Entering directory '/home/ag/Sources/github/faust2/compiler'
g++ -O3 -std=c++11 -Wall -Wuninitialized -Wno-parentheses -I. -Iboxes -Ierrors -Ievaluate -Inormalize -Iparser -Ipropagate -Iparallelize -Isignals -Itlib -Idraw -Idraw/device -Idraw/schema -Iextended -Ipatternmatcher -Idocumentator -Iutils -I../libraries -Igenerator -Igenerator/asmjs -Igenerator/c -Igenerator/cpp -Igenerator/java -Igenerator/js -Igenerator/llvm -Igenerator/fir -Igenerator/wasm -Igenerator/interpreter -DINSTALL_PREFIX='"/usr/local"' -std=gnu++11 -O1 -fPIC -D__USE_MINGW_ANSI_STDIO -Wall -Wuninitialized -fvisibility=hidden -Wno-overloaded-virtual -Wno-parentheses -I. -Iboxes -Ierrors -Ievaluate -Inormalize -Iparser -Ipropagate -Iparallelize -Isignals -Itlib -Idraw -Idraw/device -Idraw/schema -Iextended -Ipatternmatcher -Idocumentator -Iutils -I../libraries -Igenerator -Igenerator/asmjs -Igenerator/c -Igenerator/cpp -Igenerator/java -Igenerator/js -Igenerator/llvm -Igenerator/fir -Igenerator/wasm -Igenerator/interpreter -DINSTALL_PREFIX='"/usr/local"' -I`/usr/bin/llvm-config --includedir` -I../architecture -DLLVM_40 -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DASMJS_BUILD -DC_BUILD -DCPP_BUILD -DFIR_BUILD -DINTERP_BUILD -DJAVA_BUILD -DJS_BUILD -DLLVM_BUILD -DWASM_BUILD ../libraries/loki/SafeFormat.o boxes/boxcomplexity.o boxes/boxes.o boxes/boxtype.o boxes/ppbox.o documentator/doc.o documentator/doc_Text.o documentator/doc_autodoc.o documentator/doc_compile.o documentator/doc_lang.o documentator/doc_metadatas.o documentator/doc_notice.o documentator/doc_sharing.o documentator/lateq.o draw/device/PSDev.o draw/device/SVGDev.o draw/drawschema.o draw/schema/blockSchema.o draw/schema/cableSchema.o draw/schema/collector.o draw/schema/connectorSchema.o draw/schema/cutSchema.o draw/schema/decorateSchema.o draw/schema/enlargedSchema.o draw/schema/inverterSchema.o draw/schema/mergeSchema.o draw/schema/parSchema.o draw/schema/recSchema.o draw/schema/seqSchema.o draw/schema/splitSchema.o draw/schema/topSchema.o draw/sigToGraph.o errors/errormsg.o errors/timing.o evaluate/environment.o evaluate/eval.o evaluate/loopDetector.o extended/xtended.o generator/Text.o generator/code_container.o generator/contextor.o generator/dag_instructions_compiler.o generator/description.o generator/dsp_aux.o generator/fir_to_fir.o generator/floats.o generator/instructions.o generator/instructions_compiler.o generator/occurences.o generator/omp_code_container.o generator/tools.o generator/uitree.o generator/vec_code_container.o generator/wss_code_container.o normalize/aterm.o normalize/mterm.o normalize/normalize.o normalize/privatise.o normalize/simplify.o parallelize/code_loop.o parallelize/colorize.o parser/enrobage.o parser/faustlexer.o parser/faustparser.o parser/sourcefetcher.o parser/sourcereader.o patternmatcher/patternmatcher.o propagate/labels.o propagate/propagate.o signals/binop.o signals/ppsig.o signals/prim2.o signals/recursivness.o signals/signals.o signals/sigorderrules.o signals/sigprint.o signals/sigtype.o signals/sigtyperules.o signals/sigvisitor.o signals/subsignals.o tlib/compatibility.o tlib/list.o tlib/node.o tlib/occurrences.o tlib/recursive-tree.o tlib/shlysis.o tlib/symbol.o tlib/tree.o utils/files.o utils/names.o libcode.o global.o generator/asmjs/asmjs_dsp_aux.o generator/asmjs/asmjs_code_container.o generator/c/c_code_container.o generator/cpp/cpp_gpu_code_container.o generator/cpp/cpp_code_container.o generator/fir/fir_code_container.o generator/interpreter/interpreter_code_container.o generator/interpreter/interpreter_dsp_aux.o generator/java/java_code_container.o generator/js/js_code_container.o generator/llvm/clang_code_container.o generator/llvm/llvm_code_container.o generator/llvm/llvm_dsp_aux.o generator/wasm/wast_code_container.o generator/wasm/wasm_dsp_aux.o generator/wasm/wasm_code_container.o main.o `/usr/bin/llvm-config --ldflags` -lLLVM-4.0.0 -lLLVM-4.0 `pkg-config --libs libcrypto` -o faust
/usr/bin/ld: generator/llvm/llvm_dsp_aux.o: undefined reference to symbol 'pthread_mutexattr_settype@@GLIBC_2.2.5'
/usr/lib/../lib/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile.unix:265: faust] Error 1
make[1]: Leaving directory '/home/ag/Sources/github/faust2/compiler'
make: *** [Makefile:44: all] Error 2
Just adding -lpthread
manually to LLVMLIBS
in Makefile.unix:182 fixes the issue for me. I don't think that this will do any harm on macOS, but I'm not so sure about Windows...
OK so please commit (possibly doing a "git pull" first since I just did a merge of master branch...)
Done. (Got caught up with other things, sorry.) While I was at it, I also fixed 'make install' (does not try to install the faustbench stuff any more if it hasn't been build) and added the faustbench stuff to make world
.
One thing I noticed is that dynamic-jack-gtk gets installed by the tools/benchmark/Makefile, but not in the global Makefile. Is this intentional, or an oversight?
Ok, I see now why the benchmark programs are not built by default (they require Jack which might not be available everywhere), so I removed them from make world
again.
Tested now also on Mac, works fine there.
NB: One obstacle I have with Faust on the Mac is that MacPorts doesn't have a working Jack port which is required to build Faust with all the Jack features in MacPorts. Well, there is a Jack port in MP, but it's in a sorry state (ancient 1.x version which doesn't even compile on Sierra any more). If you have the time and inclination to help me with this, we should really try to get a proper Jack2 port into MP some time. :)
Compiling with LLVM 4.0.0 on Arch, I'm getting these compilation errors: