<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=""><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><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=""></body></html>