grame-cncm / faust

Functional programming language for signal processing and sound synthesis
http://faust.grame.fr
Other
2.53k stars 319 forks source link

The faust2 branch requires LLVM built with RTTI but prebuilt binaries of LLVM are not built with RTTI #95

Closed gogins closed 6 years ago

gogins commented 6 years ago

The Faust compiler in the faust2 branch requires the LLVM infrastructure to be built with runtime type information (RTTI). However, prebuilt binaries from LLVM are not built with RTTI. It therefore appears to be necessary to build LLVM from source and install it before the faust2 branch can be built.

This is not documented.

EIther this dependency should be documented in the build instructions, or instructions on where to find a prebuilt binary package of LLVM with RTTI should be documented.

sletz commented 6 years ago

We are currently trying to fix that (avoid to have a RTTI version of LLVM). If we fail, then I'll add this need the the build instructions

giuliomoro commented 6 years ago

FWIW, Debian packages are built with RTTI

sletz commented 6 years ago

Recent versions of LLVM (like 5.0 and later) do not have the RTTI related issue anymore.

gogins commented 6 years ago

Thanks for the info.

Regards, Mike

On Wed, Mar 28, 2018, 23:56 Stéphane Letz notifications@github.com wrote:

Recent versions of LLVM (like 5.0 and later) do not have the RTTI related issue anymore.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/grame-cncm/faust/issues/95#issuecomment-377104860, or mute the thread https://github.com/notifications/unsubscribe-auth/AGCDJVtohxI8T8ZWuJccVEv9AEPUtGRkks5tjE1sgaJpZM4QpABP .

gogins commented 6 years ago

This now builds the Csound Faust opcodes for me on:

Linux bodhimandala 4.13.0-37-generic #42-Ubuntu SMP Wed Mar 7 14:13:23 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

using gcc:

Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.2.0-8ubuntu3.2' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.2.0 (Ubuntu 7.2.0-8ubuntu3.2)

with clang 5 installed:

clang version 5.0.0 (https://github.com/kripken/emscripten-fastcomp-clang.git c8606950a97dea79eb578599bb13a48a1639661a) (https://github.com/kripken/emscripten-fastcomp.git 0d8129bb20f502b9ba26d54414f05120f5622b4b) (emscripten 1.37.36 : 1.37.36) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /home/mkg/emsdk/clang/fastcomp/build_incoming_64/bin Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/7 Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/7.2.0 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.4.0 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.2.0 Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.2.0 Candidate multilib: .;@m64 Candidate multilib: 32;@m32 Candidate multilib: x32;@mx32 Selected multilib: .;@m64

But when Csound runs I get this error message:

WARNING: could not open library '/usr/local/lib/csound/plugins64-6.0/libfaustcsound.so' (/usr/local/lib/csound/plugins64-6.0/libfaustcsound.so: undefined symbol: _Z16deleteDSPFactoryP16llvm_dsp_factory)

gogins commented 6 years ago

Actually the issue appears to be caused by the clang I have installed for WebAssembly not having debug stuff that needs to be linked in.