www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - Problem Building ldc with llvm3-5 on Ubuntu 14.04

reply =?UTF-8?B?Ik5vcmRsw7Z3Ig==?= <per.nordlow gmail.com> writes:
I've done

- git clone --recursive https://github.com/ldc-developers/ldc.git
- mkdir build
- cd build
- cmake ..

but it errors as

-- The C compiler identification is GNU 4.9.1
-- The CXX compiler identification is GNU 4.9.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
llvm-config: unknown component name: profiledata
CMake Error at cmake/Modules/FindLLVM.cmake:125 (string):
   string sub-command REGEX, mode MATCHALL needs at least 5 
arguments total to
   command.
Call Stack (most recent call first):
   cmake/Modules/FindLLVM.cmake:153 (llvm_set_libs)
   CMakeLists.txt:18 (find_package)


-- Found LLVM: /usr/lib/llvm-3.5 (found suitable version "3.5", 
minimum required is "3.1")
-- Found LibConfig++: /usr/include
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- LDC version identifier: 613375
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Looking for setupterm in tinfo
-- Looking for setupterm in tinfo - found
-- Using path for Intrinsics.td: /usr/lib/llvm-3.5/include
-- Looking for _SC_ARG_MAX
-- Looking for _SC_ARG_MAX - found
-- Check size of void*
-- Check size of void* - done
-- Configuring incomplete, errors occurred!
See also "/home/per/ware/ldc/build/CMakeFiles/CMakeOutput.log".
See also "/home/per/ware/ldc/build/CMakeFiles/CMakeError.log".

What's wrong?
Sep 27 2014
parent reply "Kai Nacke" <kai redstar.de> writes:
Hi Nordlöw!

On Saturday, 27 September 2014 at 17:34:21 UTC, Nordlöw wrote:
 llvm-config: unknown component name: profiledata
 CMake Error at cmake/Modules/FindLLVM.cmake:125 (string):
   string sub-command REGEX, mode MATCHALL needs at least 5 
 arguments total to
   command.
 Call Stack (most recent call first):
   cmake/Modules/FindLLVM.cmake:153 (llvm_set_libs)
   CMakeLists.txt:18 (find_package)


 -- Found LLVM: /usr/lib/llvm-3.5 (found suitable version "3.5", 
 minimum required is "3.1")
I don't have Ubuntu 14.04 at hand. Could you please post the output of llvm-config --version llvm-config --components Thanks! Regards, Kai
Sep 28 2014
parent reply =?UTF-8?B?Ik5vcmRsw7Z3Ig==?= <per.nordlow gmail.com> writes:
On Monday, 29 September 2014 at 05:59:02 UTC, Kai Nacke wrote:
 llvm-config --version
 llvm-config --components
llvm-config --version 3.4 llvm-config --components aarch64 aarch64asmparser aarch64asmprinter aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils all all-targets analysis arm armasmparser armasmprinter armcodegen armdesc armdisassembler arminfo asmparser asmprinter bitreader bitwriter codegen core cppbackend cppbackendcodegen cppbackendinfo debuginfo engine executionengine hexagon hexagonasmprinter hexagoncodegen hexagondesc hexagoninfo instcombine instrumentation interpreter ipa ipo irreader jit linker lto mc mcdisassembler mcjit mcparser mips mipsasmparser mipsasmprinter mipscodegen mipsdesc mipsdisassembler mipsinfo msp430 msp430asmprinter msp430codegen msp430desc msp430info native nativecodegen nvptx nvptxasmprinter nvptxcodegen nvptxdesc nvptxinfo objcarcopts object option powerpc powerpcasmparser powerpcasmprinter powerpccodegen powerpcdesc powerpcinfo r600 r600asmprinter r600codegen r600desc r600info runtimedyld scalaropts selectiondag sparc sparccodegen sparcdesc sparcinfo support systemz systemzasmparser systemzasmprinter systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target transformutils vectorize x86 x86asmparser x86asmprinter x86codegen x86desc x86disassembler x86info x86utils xcore xcoreasmprinter xcorecodegen xcoredesc xcoredisassembler xcoreinfo I have multiple llvm versions installed. Could that be the problem?
Sep 29 2014
parent reply "Eugene" <geneing yahoo.com> writes:
I had the same problem.
1. in your case cmake picked up llvm version 3.5
2. cmake complains that it llvm-config-3.5 can't find profiledata 
component. I don't know why it is missing. I simply commented out 
the lines mentioning profiledata in cmake/Modules/FindLLVM.cmake

For me compilation still fails because llvm include file paths 
don't match the ones used in ldc source code.

Eugene

On Monday, 29 September 2014 at 16:38:13 UTC, Nordlöw wrote:
 On Monday, 29 September 2014 at 05:59:02 UTC, Kai Nacke wrote:
 llvm-config --version
 llvm-config --components
llvm-config --version 3.4 llvm-config --components aarch64 aarch64asmparser aarch64asmprinter aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils all all-targets analysis arm armasmparser armasmprinter armcodegen armdesc armdisassembler arminfo asmparser asmprinter bitreader bitwriter codegen core cppbackend cppbackendcodegen cppbackendinfo debuginfo engine executionengine hexagon hexagonasmprinter hexagoncodegen hexagondesc hexagoninfo instcombine instrumentation interpreter ipa ipo irreader jit linker lto mc mcdisassembler mcjit mcparser mips mipsasmparser mipsasmprinter mipscodegen mipsdesc mipsdisassembler mipsinfo msp430 msp430asmprinter msp430codegen msp430desc msp430info native nativecodegen nvptx nvptxasmprinter nvptxcodegen nvptxdesc nvptxinfo objcarcopts object option powerpc powerpcasmparser powerpcasmprinter powerpccodegen powerpcdesc powerpcinfo r600 r600asmprinter r600codegen r600desc r600info runtimedyld scalaropts selectiondag sparc sparccodegen sparcdesc sparcinfo support systemz systemzasmparser systemzasmprinter systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target transformutils vectorize x86 x86asmparser x86asmprinter x86codegen x86desc x86disassembler x86info x86utils xcore xcoreasmprinter xcorecodegen xcoredesc xcoredisassembler xcoreinfo I have multiple llvm versions installed. Could that be the problem?
Oct 01 2014
parent reply =?UTF-8?B?Ik5vcmRsw7Z3Ig==?= <per.nordlow gmail.com> writes:
On Thursday, 2 October 2014 at 00:05:50 UTC, Eugene wrote:
 I had the same problem.
 1. in your case cmake picked up llvm version 3.5
 2. cmake complains that it llvm-config-3.5 can't find 
 profiledata component. I don't know why it is missing. I simply 
 commented out the lines mentioning profiledata in 
 cmake/Modules/FindLLVM.cmake

 For me compilation still fails because llvm include file paths 
 don't match the ones used in ldc source code.
Should I try removing some LLVM version?
Oct 02 2014
next sibling parent David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc puremagic.com> writes:
On 2 Oct 2014, at 21:01, "Nordlöw" via digitalmars-d-ldc wrote:
 On Thursday, 2 October 2014 at 00:05:50 UTC, Eugene wrote:
 I had the same problem.
 1. in your case cmake picked up llvm version 3.5
It tries versioned names (e.g. with the -3.5 suffix) in descending order, so that seems to work like intended.
 2. cmake complains that it llvm-config-3.5 can't find profiledata 
 component. I don't know why it is missing. I simply commented out the 
 lines mentioning profiledata in cmake/Modules/FindLLVM.cmake
Where is your LLVM installation from? Distro packagages or how exactly did you build it?
 For me compilation still fails because llvm include file paths don't 
 match the ones used in ldc source code.
Could you elaborate a bit? The correct include paths should be picked up from the llvm-config output and added as command line arguments. If this doesn't work, there is either a bug in our CMake scripts or your LLVM installation is broken (we've had issues with broken distro packages before). The "paths" in the source code (really just llvm/) should be fine.
 Should I try removing some LLVM version?
In theory this should not be necessary, although it might certainly help to track down the problem. Thanks, David
Oct 02 2014
prev sibling parent =?UTF-8?B?Ik5vcmRsw7Z3Ig==?= <per.nordlow gmail.com> writes:
On Thursday, 2 October 2014 at 19:01:52 UTC, Nordlöw wrote:
 Should I try removing some LLVM version?
I removed all but version 3.4 of LLVM and now it compiles all the till the end. Yay!
Oct 04 2014