<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I also filled a bug report. I think this is actually a bug<div class=""><br class=""></div><div class=""><a href="https://bugs.llvm.org/show_bug.cgi?id=42528" class="">https://bugs.llvm.org/show_bug.cgi?id=42528</a></div><div class=""><br class=""></div><div class="">John</div><div class=""><br class=""></div><div class=""><br class=""></div><div><blockquote type="cite" class=""><div class="">On 7 Jul 2019, at 09:27, Joan Lluch via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">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.</div><div class=""><br class=""></div><div class="">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. </div><div class=""><br class=""></div><div class="">The llvm_project clone has the following structure:</div><div class=""><br class=""></div><div class="">llvm-project</div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>llvm</div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>clang</div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>(others)</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">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). </div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">Thanks</div><div class=""><br class=""></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On 6 Jul 2019, at 23:49, Neil Nelson <<a href="mailto:nnelson@infowest.com" class="">nnelson@infowest.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
<div bgcolor="#FFFFFF" text="#000000" class=""><p class=""><font size="-1" class="">Joan,</font></p><p class=""><font size="-1" class="">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</font></p><p class=""><font size="-1" class="">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</font></p><p class=""><font size="-1" class="">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 </font><font size="-1" class=""><font size="-1" class="">llvm/install
as expected including clang. I look through </font></font><font size="-1" class=""><font size="-1" class=""><font size="-1" class="">cmake.log to see if
there are errors that need to be corrected.<br class="">
</font></font></font></p><p class=""><font size="-1" class="">My differences appear to be Xubuntu, the
packages, ninja, and the cmake line.</font></p><p class=""><font size="-1" class="">On Linux I can use</font></p><p class=""><font size="-1" class="">ninja &> ninja_compile.log</font></p><p class=""><font size="-1" class="">to look at the compile history and see if
something went wrong.</font></p><p class=""><font size="-1" class="">Neil<br class="">
</font></p>
<div class="moz-cite-prefix"><font size="-1" class="">On 7/6/19 12:00 AM,
Joan Lluch wrote:<br class="">
</font></div>
<blockquote type="cite" cite="mid:F9CC78AA-1E58-456D-AF3E-E8611D8E8426@icloud.com" class="">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
<div class=""><font size="-1" class="">Hi Nelson,</font></div>
<div class=""><font size="-1" class=""><br class="">
</font></div>
<div class=""><font size="-1" class="">Thanks for your reply. </font></div>
<div class=""><font size="-1" class=""><br class="">
</font></div>
<div class=""><font size="-1" class="">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!.</font></div>
<div class=""><font size="-1" class=""><br class="">
</font></div>
<div class=""><font size="-1" class="">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.</font></div>
<div class=""><font size="-1" class=""><br class="">
</font></div>
<div class=""><font size="-1" class="">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.</font></div>
<div class=""><font size="-1" class=""><br class="">
</font></div>
<div class=""><font size="-1" class="">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.</font></div>
<div class=""><font size="-1" class=""><br class="">
</font></div>
<div class=""><font size="-1" class="">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!</font></div>
<div class=""><font size="-1" class=""><br class="">
</font></div>
<div class=""><font size="-1" class="">Any ideas?</font></div>
<div class=""><font size="-1" class=""><br class="">
</font></div>
<div class=""><font size="-1" class="">Joan</font></div>
<div class=""><br class="">
</div>
<blockquote type="cite" class="">
<div style="margin-top: 0px; margin-bottom: 0px;" class=""><font class="" size="-1">John, I compiled and installed to
/usr/local all the projects under llvm except llgo
yesterday. The three files you noted are in</font></div>
<div style="margin-top: 0px; margin-bottom: 0px;" class=""><font class="" size="-1">../llvm-project/build/lib<br class="">
</font></div>
<div style="margin-top: 0px; margin-bottom: 0px;" class=""><font class="" size="-1">I do not have a llvm-project/build/Debug
directory.</font></div>
<div style="margin-top: 0px; margin-bottom: 0px;" class=""><font class="" size="-1">Xubuntu 19.04. llvm downloaded from
github on 6/18 using instructions from the page you note.</font></div>
<div style="margin-top: 0px; margin-bottom: 0px;" class=""><font class="" size="-1">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</font></div>
<div style="margin-top: 0px; margin-bottom: 0px;" class=""><font class="" size="-1">Installed additional packages as needed.<br class="">
</font></div>
<div style="margin-top: 0px; margin-bottom: 0px;" class=""><font class="" size="-1">Neil<br class="">
</font></div>
<div class="moz-cite-prefix"><font class="" size="-1">On 7/5/19
6:46 AM, Joan Lluch via llvm-dev wrote:<br class="">
</font></div>
<blockquote type="cite" cite="mid:87EE0948-7275-4451-AE4D-71F599E6CC3A@icloud.com" class="">
<div dir="auto" class="" style="word-wrap: break-word;
-webkit-nbsp-mode: space; -webkit-line-break:
after-white-space;"><font class="" size="-1">Hi All,</font>
<div class=""><font class="" size="-1"><br class="">
</font></div>
<div class=""><font class="" size="-1">I am looking for the
best way to install LLVM+clang, but I do not seem to
find a way that works for me.</font></div>
<div class=""><font class="" size="-1"><br class="">
</font></div>
<div class=""><font class="" size="-1">I followed the steps
in this document <a href="https://llvm.org/docs/GettingStarted.html" class="" moz-do-not-send="true">Getting Started with
the LLVM System — LLVM 9 documentation</a> except that
I created the following folder structure as I do not
want clang and llc to go to /usr/local</font></div>
<div class=""><font class="" size="-1"><br class="">
</font></div>
<div class=""><font class="" size="-1">LLVM-9</font></div>
<div class=""><font class="" size="-1"> llvm-project
(cloned from github)</font></div>
<div class=""><font class="" size="-1"> install</font></div>
<div class=""><font class="" size="-1"><br class="">
</font></div>
<div class=""><font class="" size="-1">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 :</font></div>
<div class=""><font class="" size="-1"><br class="">
</font></div>
<div class="">
<div class="" style="margin: 0px; font-size: 10px;
line-height: normal; font-family: Monaco;
background-color: rgb(255, 255, 255);"><font class="" size="-1"><span class="" style="font-variant-ligatures: no-common-ligatures;">cmake
-G Xcode -DLLVM_ENABLE_PROJECTS=clang
-DCMAKE_INSTALL_PREFIX=/Users/joan/LLVM-9/install
-DLLVM_OPTIMIZED_TABLEGEN=On ../llvm</span></font></div>
</div>
<div class="" style="margin: 0px; font-size: 10px;
line-height: normal; font-family: Monaco;
background-color: rgb(255, 255, 255);"><font class="" size="-1"><br class="">
</font></div>
<div class="" style="margin: 0px; line-height: normal;
background-color: rgb(255, 255, 255);"><font class="" size="-1">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:</font></div>
<div class="" style="margin: 0px; line-height: normal;
background-color: rgb(255, 255, 255);"><font class="" size="-1"><br class="">
</font></div>
<div class="" style="margin: 0px; line-height: normal;
background-color: rgb(255, 255, 255);">
<div class="" style="margin: 0px 0px 0px 12px;
text-indent: -12px; font-size: 11px; line-height:
normal; font-family: Menlo;"><font class="" size="-1">clang:
error: no such file or directory:
'/Users/joan/LLVM-9/llvm-project/build/Debug/lib/libclangAST.a'</font></div>
<div class="" style="margin: 0px 0px 0px 12px;
text-indent: -12px; font-size: 11px; line-height:
normal; font-family: Menlo;"><font class="" size="-1">clang:
error: no such file or directory:
'/Users/joan/LLVM-9/llvm-project/build/Debug/lib/libclangLex.a'</font></div>
<div class="" style="margin: 0px 0px 0px 12px;
text-indent: -12px; font-size: 11px; line-height:
normal; font-family: Menlo;"><font class="" size="-1">clang:
error: no such file or directory:
'/Users/joan/LLVM-9/llvm-project/build/Debug/lib/libclangBasic.a'</font></div>
</div>
<div class=""><font class="" size="-1"><br class="">
</font></div>
<div class=""><font class="" size="-1">Up until recently, I
have worked with LLVM 7.0 and all what I did was
downloading both llvm and clang from <a href="http://llvm.org/" class="" moz-do-not-send="true">llvm.org</a>,
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.</font></div>
<div class=""><font class="" size="-1"><br class="">
</font></div>
<div class=""><font class="" size="-1">So what am I doing
wrong now? Why I’m getting such linker errors?</font></div>
<div class=""><font class="" size="-1"><br class="">
</font></div>
<div class=""><font class="" size="-1">It seems that a few
required libraries are not created, but I do not
understand why. Any ideas?</font></div>
<div class=""><font class="" size="-1"><br class="">
</font></div>
<div class=""><font class="" size="-1">Thanks,</font></div>
<div class=""><font class="" size="-1"><br class="">
</font></div>
<div class=""><font class="" size="-1">John</font></div>
</div>
</blockquote>
</blockquote>
<div class="">
<div dir="auto" class="" style="word-wrap: break-word;
-webkit-nbsp-mode: space; -webkit-line-break:
after-white-space;">
<div class=""><font class="" size="-1"><br class="">
</font></div>
</div>
</div>
</blockquote>
</div>
</div></blockquote></div><br class=""></div>_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br class=""></div></blockquote></div><br class=""></body></html>