I also tried spack install llvm@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
error: '(9.223372036854775807e+18 / 1.0e+9)' is not a constant ex
Can anyone tell me what compiler to use, or how to get past this error?
I gave up on llvm@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
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:
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
$ 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 \
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.
Regards and best wishes,