Byfl icon indicating copy to clipboard operation
Byfl copied to clipboard

bf-clang aborts with exit code 1

Open AtanuBarai opened this issue 5 years ago • 1 comments

I am trying to use Byfl after installing from the source code (master branch). I am using GCC 8.3.0 and LLVM 8.0.1 on an Ubuntu 18.04 machine. But when I try to compile any program with bf-clang I get the following message.

atanu@labpc:~/Installers/Byfl/Byfl/tests$ bf-clang simple.c /usr/local/lib/libbyfl.so: undefined reference to `llvm::Value::getName() const' clang-8: error: linker command failed with exit code 1 (use -v to see invocation) bf-clang: Aborting

When I use bf-clang with verbose, I get the following output:

atanu@labpc:~/Installers/Byfl/Byfl/tests$ bf-clang simple.c -v clang version 8.0.1 Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/local/bin Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.5 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.5.0 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.5.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.4.0 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8 Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8 Candidate multilib: .;@m64 Selected multilib: .;@m64 "/usr/local/bin/clang-8" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name simple.c -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debug-info-kind=limited -dwarf-version=4 -debugger-tuning=gdb -v -resource-dir /usr/local/lib/clang/8.0.1 -internal-isystem /usr/local/include -internal-isystem /usr/local/lib/clang/8.0.1/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdebug-compilation-dir /home/atanu/Installers/Byfl/Byfl/tests -ferror-limit 19 -fmessage-length 120 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -load /usr/local/libexec/byfl/bytesflops.so -o /tmp/simple-539077.o -x c simple.c -faddrsig clang -cc1 version 8.0.1 based upon LLVM 8.0.1 default target x86_64-unknown-linux-gnu ignoring nonexistent directory "/include" #include "..." search starts here: #include <...> search starts here: /usr/local/include /usr/local/lib/clang/8.0.1/include /usr/include/x86_64-linux-gnu /usr/include End of search list. "/usr/bin/ld" -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/8/crtbegin.o -L/usr/local/lib -L/usr/local/lib -L/usr/lib/gcc/x86_64-linux-gnu/8 -L/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/8/../../.. -L/usr/local/bin/../lib -L/lib -L/usr/lib /tmp/simple-539077.o -lm -rpath /usr/local/lib -lbyfl /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so /usr/lib/x86_64-linux-gnu/libm.so /usr/lib/gcc/x86_64-linux-gnu/8/libgcc_s.so /usr/lib/gcc/x86_64-linux-gnu/8/libgcc.a /usr/lib/x86_64-linux-gnu/libc.so -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crtn.o /usr/local/lib/libbyfl.so: undefined reference to `llvm::Value::getName() const' clang-8: error: linker command failed with exit code 1 (use -v to see invocation) bf-clang: Aborting

AtanuBarai avatar Mar 03 '20 02:03 AtanuBarai

I haven't seen that exact error before. Two things to try that come to mind are

  1. Generate a static Byfl run-time library instead of a shared library and use that instead (-DBUILD_SHARED_LIBS=OFF).
  2. Link explicitly with the required LLVM libraries (-lLLVMCore, perhaps?).

spakin avatar Mar 03 '20 04:03 spakin