[llvm-dev] Linker errors after installing/compiling LLVM/CLANG

Zachary Turner via llvm-dev llvm-dev at lists.llvm.org
Sun Jul 7 08:08:29 PDT 2019


Try using ninja generator, most people do not use Xcode for building, so
since it lesser-used, it also lesser tested.  Note that it’s perfectly
possible to use Xcode for code browsing, debugging, editing while using
ninja for building, which is what I think most people do

On Sun, Jul 7, 2019 at 4:20 AM Joan Lluch via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> I also filled a bug report. I think this is actually a bug
>
> https://bugs.llvm.org/show_bug.cgi?id=42528
>
> John
>
>
> On 7 Jul 2019, at 09:27, Joan Lluch via llvm-dev <llvm-dev at lists.llvm.org>
> wrote:
>
> I understand that a difference between ninja and xcode is they use a
> different way to determine code dependencies. So to my understanding xcode
> needs dependencies to be properly created whereas ninja just doesn’t care.
> Maybe this is why ninja is able to find what it needs for the compilation
> to succeed, but not xcode.
>
> So I have now looked at the CMakeLists.txt files and found that all the
> missing libraries are defined in files under the ‘clang’ directory.
>
> The llvm_project clone has the following structure:
>
> llvm-project
> llvm
> clang
> (others)
>
> Everything  under ‘llvm’ is properly compiled with no issues, however what
> is under ‘clang’ fails to compile (with linker errors) even if
> -DLLVM_ENABLE_PROJECTS=“clang” is specified.
>
> I suspect now that there may be some kind of bug in the llvm project that
> prevents this to work properly, or maybe something else needs to be done to
> get clang compiled on xcode. I also suspect that this may pass unnoticed
> when using ninja because it simply uses it’s own way to find dependencies
> (but I don’t really know anything about ninja).
>
> Maybe this may help somebody to figure out what could be happening and
> hopefully help me to narrow the issue? I honestly am totally lost on what
> to try next. This is kind of ridiculous.
>
> Thanks
>
>
> On 6 Jul 2019, at 23:49, Neil Nelson <nnelson at infowest.com> wrote:
>
> Joan,
>
> Just completed a good clang compile built from a mostly vanilla Xubuntu
> 19.04 VM, installed the llvm-needed Ubuntu packages, downloaded a new copy
> of llvm using the noted llvm install page, configured using
>
> cmake -G Ninja -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_USE_LINKER=lld
> -DCMAKE_BUILD_TYPE="Release"
> -DCMAKE_INSTALL_PREFIX=/home/nnelson/Documents/llvm/install ../llvm &>
> cmake.log
>
> which is primarily different from yours where I am using a 'Release' build
> to avoid the much larger memory and disk usage of a 'Debug' build. The
> 'ninja install' command put everything in llvm/install as expected
> including clang. I look through cmake.log to see if there are errors that
> need to be corrected.
>
> My differences appear to be Xubuntu, the packages, ninja, and the cmake
> line.
>
> On Linux I can use
>
> ninja &> ninja_compile.log
>
> to look at the compile history and see if something went wrong.
>
> Neil
> On 7/6/19 12:00 AM, Joan Lluch wrote:
>
> Hi Nelson,
>
> Thanks for your reply.
>
> The “build/Debug/lib” and "build/Release/lib” directories is where all the
> libraries go. Similarly, the executables go to “build/Debug/bin” and
> “build/Release/bin” before they are moved to the install directory. This is
> expected and normal. However, the problem is that a small number of
> libraries (exactly 20 in total) are not created at all for the LLVM 9.0
> version that I cloned from gitHub. These libraries are in fact not created
> anywhere!.
>
> I still have LLVM 7.0 installed in my computer and the libraries for that
> version are all there in the right places under the LLMV 7.0 directory, but
> in that case I installed it all in a different way as I said, loosing the
> benefits of git.
>
> I forgot to mention that “llc” alone compiles and links correctly without
> any issue. The problem is only when I try to get ‘clang’ compiled.
>
> You mention that you enabled a lot of projects:
>  "clang;clang-tools-extra;compiler-rt;debuginfo-tests;libclc;libcxx;libcxxabi;libunwind;lld;lldb;llvm;openmp;parallel-libs;polly;pstl”.
> I only really need the basic installation of “clang”, and I do not need any
> testing tools because all I want is to add my custom target to it. I also
> tried "clang;libclc;libcxx” but the problem with the missing libraries is
> exactly the same.
>
> Just as a matter of information: I successfully implemented a custom
> target backend, and have it almost finished and running perfectly on LLVM
> 7.0. Now, I just want to move it to LLVM 9.0, but got stuck in what is
> supposed to be the easiest part which is just compiling it (??), but I do
> not understand why it doesn’t compile!
>
> Any ideas?
>
> Joan
>
> John, I compiled and installed to /usr/local all the projects under llvm
> except llgo yesterday. The three files you noted are in
> ../llvm-project/build/lib
> I do not have a llvm-project/build/Debug directory.
> Xubuntu 19.04. llvm downloaded from github on 6/18 using instructions from
> the page you note.
> cmake -G Ninja
> -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;debuginfo-tests;libclc;libcxx;libcxxabi;libunwind;lld;lldb;llvm;openmp;parallel-libs;polly;pstl"
> -DLLVM_USE_LINKER=lld -DCMAKE_BUILD_TYPE="Release" ../llvm
> Installed additional packages as needed.
> Neil
> On 7/5/19 6:46 AM, Joan Lluch via llvm-dev wrote:
>
> Hi All,
>
> I am looking for the best way to install LLVM+clang,  but I do not seem to
> find a way that works for me.
>
> I followed the steps in this document Getting Started with the LLVM
> System — LLVM 9 documentation <https://llvm.org/docs/GettingStarted.html> except
> that I created the following folder structure as I do not want clang and
> llc to go to /usr/local
>
> LLVM-9
>    llvm-project  (cloned from github)
>    install
>
> I ran the following command line from the build directory in llvm-project
> as described in the doc, but added the DLLVM_OPTIMIZED_TABLEGEN=On variable
> :
>
> cmake -G Xcode -DLLVM_ENABLE_PROJECTS=clang
> -DCMAKE_INSTALL_PREFIX=/Users/joan/LLVM-9/install
> -DLLVM_OPTIMIZED_TABLEGEN=On ../llvm
>
> The cmake command above seems to work ok, but after that, when I compile
> the “install” or “build_all” schemes I get a lot of linker errors. Such as
> these ones and more:
>
> clang: error: no such file or directory:
> '/Users/joan/LLVM-9/llvm-project/build/Debug/lib/libclangAST.a'
> clang: error: no such file or directory:
> '/Users/joan/LLVM-9/llvm-project/build/Debug/lib/libclangLex.a'
> clang: error: no such file or directory:
> '/Users/joan/LLVM-9/llvm-project/build/Debug/lib/libclangBasic.a'
>
> Up until recently, I have worked with LLVM 7.0 and all what I did was
> downloading both llvm and clang from llvm.org, copied clang into
> llvm/tools, and ran the cmake application (not command line).  That kind of
> worked except for some minor glitches but of course I didn’t get the
> benefits of git.
>
> So what am I doing wrong now? Why I’m getting such linker errors?
>
> It seems that a few required libraries are not created, but I do not
> understand why. Any ideas?
>
> Thanks,
>
> John
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190707/52555915/attachment.html>


More information about the llvm-dev mailing list