[llvm-dev] LLVM Releases

Justin Clift via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 3 12:06:18 PDT 2019


On 2019-07-04 01:29, Marty Itzkowitz wrote:
<snip>
>> On 2019-07-01 00:22, Marty Itzkowitz via llvm-dev wrote:
>>> I also tried spack install llvm at develop on a POWER9  (ppc641e)
>>> machine, but I can not find a compiler that
>>> will compile it.  gcc 4.8.5 is reported as too old, and gcc 7.3.0 and
>>> 8.1.0 both fail in the same place:
>>> >> 9069    /home/msi3/hpct/spack/var/spack/stage/llvm-develop-iu3myet5ceoz4q7
>>>             
>>> k5twmk4dlths3aemz/spack-src/projects/libcxx/include/chrono:876:59:
>>>              error: '(9.223372036854775807e+18 / 1.0e+9)' is not a 
>>> constant ex
>>>             pression
>>> Can anyone tell me what compiler to use, or how to get past this 
>>> error?
> 
> I gave up on llvm at develop, and tried llvm, which tried to give me
> 8.0.0.  It did not report gcc 4.8.5
> as being too old, but it did give the same error as above.
> 
> Why does the source use (9.223372036854775807e+18 / 1.0e+9) rather than
> (9.223372036854775807e+9) ?  The latter is really a constant and not
> an expression,
> so it would not give the same error.
> 
> I am also curious as to what a constant with 19 significant figures
> would be used for.

Not sure personally, as I've not touched the libcxx source before.  
Looking
at line 876 for libcxx/include/chrono, gives this:

   
https://github.com/llvm/llvm-project/blob/d2298e74235598f15594fe2c99bbac870a507c59/libcxx/include/chrono#L876

Nothing is obviously weird there though.  Not sure where the complained 
about
constant is coming from, but if you can figure out it's source location 
you
should be able to use "git blame" to determine the commit which added 
it.

And (in theory) that should have info in it explaining the where/why of 
it. ;)


> Is there some compiler that would work?

I used gcc 4.8.5 to compile LLVM ~8.0.1-rc2 on CentOS 7 AMD64 not long 
ago,
which worked ok.  That was using cmake, with these specific options (in 
case
that's useful):

   $ mkdir $HOME/local/source
   $ cd $HOME/local/source
   $ git clone -b release/8.x https://github.com/llvm/llvm-project
   $ mkdir build
   $ cd build

   $ cmake \
   -G Ninja \
   -DCMAKE_INSTALL_PREFIX=/opt/llvm8 \
   -DCMAKE_BUILD_TYPE=Release \
   -DLIBCLANG_BUILD_STATIC=ON \
   -DLLVM_CCACHE_BUILD=ON \
   -DLLVM_CCACHE_DIR=$HOME/local/source/ccache \
   -DLLVM_ENABLE_ASSERTIONS=OFF \
   -DLLVM_ENABLE_LIBCXX=ON \
   -DLLVM_ENABLE_PROJECTS='clang;lld' \
   -DLLVM_OPTIMIZED_TABLEGEN=ON \
   -DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64;WebAssembly' \
   $HOME/local/source/llvm-project/llvm

   $ ninja-build

Maybe give that a shot, and if it builds ok, it should be enough of the
compiler to be useful, or for then building the libcxx stuff you're 
after.

Hopefully. :)

Regards and best wishes,

Justin Clift


More information about the llvm-dev mailing list