[llvm-dev] Errors in configuration for LLVM with CMake GUI

Osman Zakir via llvm-dev
2018-11-29T17:45:31Z

I opened up an elevated Developer Command Prompt for VS2017, ran vcvarsall with
argument amd64, and then ran the command "cmake-gui" in that command
prompt.  Then in that gui window, I clicked on "Configure" without
doing anything else.  At the end, I got an error window saying that there were
errors, and that project files may be invalid.

Here's the output from CMake:
"

Could NOT find Backtrace (missing: Backtrace_LIBRARY Backtrace_INCLUDE_DIR)

Native target architecture is X86

Threads enabled.

Doxygen disabled.

Go bindings disabled.

Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH)

OCaml bindings disabled.

Could NOT find Python module pygments

Could NOT find Python module pygments.lexers.c_cpp

Could NOT find Python module yaml

LLVM host triple: x86_64-pc-windows-msvc

LLVM default target triple: x86_64-pc-windows-msvc

Using Debug VC++ CRT: MDd

Using Release VC++ CRT: MD

Using MinSizeRel VC++ CRT: MD

Using RelWithDebInfo VC++ CRT: MD

Constructing LLVMBuild project information

CMake Error at C:/Program
Files/CMake/share/cmake-3.13/Modules/FindSubversion.cmake:123 (message):
Command "C:/Program Files/TortoiseSVN/bin/ info C:/llvm" failed with
output:

Call Stack (most recent call first):
cmake/modules/VersionFromVCS.cmake:19 (subversion_wc_info)
CMakeLists.txt:757 (add_version_info_from_vcs)


LLVMHello ignored -- Loadable modules not supported on this platform.

Targeting AArch64

Targeting AMDGPU

Targeting ARM

Targeting BPF

Targeting Hexagon

Targeting Lanai

Targeting Mips

Targeting MSP430

Targeting NVPTX

Targeting PowerPC

Targeting Sparc

Targeting SystemZ

Targeting WebAssembly

Targeting X86

Targeting XCore

Compiler-RT supported architectures: x86_64

Builtin supported architectures: x86_64

Builtin supported architectures: x86_64

CMake Error at C:/Program
Files/CMake/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:137
(message):
Could NOT find Perl (missing: PERL_EXECUTABLE)
Call Stack (most recent call first):
C:/Program
Files/CMake/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:378
(_FPHSA_FAILURE_MESSAGE)
C:/Program Files/CMake/share/cmake-3.13/Modules/FindPerl.cmake:75
(FIND_PACKAGE_HANDLE_STANDARD_ARGS)
projects/openmp/runtime/cmake/config-ix.cmake:147 (find_package)
projects/openmp/runtime/CMakeLists.txt:234 (include)


Configuring incomplete, errors occurred!

See also "C:/llvm/build/CMakeFiles/CMakeOutput.log".

See also "C:/llvm/build/CMakeFiles/CMakeError.log".

"

If I want Clang to use its own C++ standard libraries, with LLD as the linker,
instead of MSVC's variants, what should I do?  Tell me that too please.
Thanks.
________________________________
From: Osman Zakir <osmanzakir90 at hotmail.com>
Sent: Thursday, November 29, 2018 10:33 PM
To: Zachary Turner
Subject: Re: [llvm-dev] Errors in configuration for LLVM with CMake GUI

After it finishes trying to configure, it says that there were errors with the
configure step and that program files may be invalid.  And I also don't know
what executable to point it to for SVN.

What should I put for CLANG_DEFAULT_CXX_STDLIB, CLANG_DEFAULT_LINKER,
CLANG_DEFAULT_RTLIB, CLANG_DEFAULT_STD_C and CLANG_DEFAULT_STD_CXX?  Would it be
okay to provide the path to the MSVC include directory for the
CLANG_DEFAULT_CXX_STDLIB, or should I provide the path to the include directory
in the libcxx folder in the LLVM source tree?  For the Linker I think I'll
just put llvm_root/tools/lld, if that's good enough.

As for pthread, shouldn't I have that?  I mean, it's the standard
threads library, isn't it?  And CMake also can't find the header that
malloc is in, among some other headers.

And what is the CLANG_VENDOR setting asking for?  The vendor that I got Clang
from?  And what about CLANG_VENDOR_UTI?

CMAKE_INSTALL_OLDINCLUDEDIR is set to the Linux-specific /usr/local for some
reason.  What should I set it to?

Note: @Zachary Turner<mailto:zturner at google.com> I wrote this before I
saw your latest message.  I'll try that now.  Thanks.
________________________________
From: Zachary Turner <zturner at google.com>
Sent: Thursday, November 29, 2018 9:49 PM
To: Osman Zakir
Cc: llvm-dev at lists.llvm.org
Subject: Re: [llvm-dev] Errors in configuration for LLVM with CMake GUI

I think you are heading down the wrong path. All of those error messages are
normal. That’s just cmake doing feature detection, for example it will test
whether your system has pthread.h by compiling a program that includes that
header. So an error in your log about is missing pthread.h just means it will
set HAVE_PTHREAD_H to false which is fine.

I’m confused why we’re talking about gcc and libomp if you’re trying to do a
Windows build. You should just use msvc to build it. You don’t need any of the
things you mentioned to do a build.

I still haven’t seen the output from cmake (just a paste of stdout). That’s
going to tell you the real problem. The pog files I don’t think are very useful
and will just lead you in the wrong direction.

You said you’re using cmake gui, maybe the problem is that the gui can’t find
the Visual Studio installation. Did you run vcvarsall first? Try first running
vcvarsall from a command prompt and tgen running cmake (command line or gui)
from that same command prompt
On Thu, Nov 29, 2018 at 7:55 AM Osman Zakir via llvm-dev <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
Also, what executable's path do I put in for SVN?  I just use SVN by
right-clicking and then clicking on what I need in the context menu that comes
up, since SVN is integrated into my context menus too.  But I don't know
what .exe file it's using.  And because of that I don't know what path I
need to give to it so it can find it.

For some reason, it's trying to find Nuget as well.  I'll try to find
path to it and put it there.
________________________________
From: Osman Zakir <osmanzakir90 at hotmail.com<mailto:osmanzakir90 at
hotmail.com>>
Sent: Thursday, November 29, 2018 8:43 PM
To: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>;
Jonathan Goodwin

Subject: Re: [llvm-dev] Errors in configuration for LLVM with CMake GUI

I probably need GCC for Git bash.  And the one I have is MinGW's GCC, which
is the one for Windows.  I don't know why CMake is trying to find Linux
headers.  Hopefully someone who knows better what to do will weigh in here.

@Jonathan Goodwin<mailto:jondgoodwin at gmail.com> , are you sure you
didn't have to tell it where the header files for Windows are?  If I need to
specify the paths to those headers, how do I do it?
________________________________
From: Jonathan Goodwin <jondgoodwin at gmail.com<mailto:jondgoodwin at
gmail.com>>
Sent: Thursday, November 29, 2018 10:42 AM
To: Osman Zakir
Cc: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] Errors in configuration for LLVM with CMake GUI

I checked your CMakeError.log again. The .h include files it is marking as
missing are not LLVM include files, but are OS-related (e.g., malloc/malloc.h),
and in some cases appear to be potentially Linux ones (dlfcn.h, sys/ioctl,
malloc_np.h). I can't imagine why your build might be looking for Linux as
opposed to Windows include files. That could be a clue to your problem.

You said you installed the latest version of GCC before this attempt. This
confuses me further, since you are using Visual Studio to build with, and that
makes no use of GCC. In fact, honestly I am wondering if your GCC implementation
libraries are somehow in your search path wrt environment variables, and your
build is actually trying to use the GNU/Linux header files rather than the VS
Windows header files, which would certainly blow it up. Again, I am no expert
here, so I don't have a definite answer, but based on what little I know,
this setup doesn't sound safe. Maybe get rid of GCC completely, as I am not
sure when/how you would even use it on the Windows side.

Similarly, I don't believe Perl has anything to do with this either, as
neither CMake nor VS make any use of it. But I can't imagine it causing any
problems for you to have it.

I don't know anything about Backtrace, Libomp, Compiler-RT, so I cannot help
you there. As we have discussed before, the source for clang and lld go into the
llvm source folder's "tools" folder by those names. If they are
there, after the configure step of the CMake-Gui, options will automatically
appear for both clang and lld. You will want to mouse click the checkbox next to
CLANG_BUILD_TOOLS and LLD_BUILD_TOOLS prior to hitting the generate button.

Sorry I don't know more than that, but hopefully that will help some ... and
then others can chime in if they know more about this than me.

On Thu, Nov 29, 2018 at 2:52 PM Osman Zakir via llvm-dev <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
I tried to configure CMake for LLVM using the GUI and I've attached the logs
for the attempt to this message.  I installed Perl and the latest version of GCC
before that attempt.  There were still errors that stopped it from being able to
generate project files, though.

I'd like to know how I can get this to work.  How do I tell it where to find
Backtrace, Libomp, Compiler-RT, LLD and Clang?  And where exactly is Backtrace?
I copy-pasted the locations for the stuff I checked out for LLVM, so I'm not
really sure where the stuff I need to put into CMake for Compiler-RT, Backtrace
and Libomp is (it's where it should be, that's all I know).

_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://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/20181129/1969c4a5/attachment.html>