LLVM Releases

I saw an email about 8.0.1 being not quite out, and planning for 9.0.0.
When is 8.0.1 supposed to come out?

I installed llvm@develop on x86 on March 30, and its clang says it is version 9.0.0 (trunk 357348). I tried to do
another spack install llvm@develop, but it said that I already had it installed. Does that mean there
were no changes since March 30, or does spack not look for any changes?

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
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?

Thanks,
Marty Itzkowitz

I saw an email about 8.0.1 being not quite out, and planning for 9.0.0.
When is 8.0.1 supposed to come out?

Soon-ish. Haven't seen any solid dates given recently, but guesstimating...
sometimes in the next week or two.

I installed llvm@develop on x86 on March 30, and its clang says it is
version 9.0.0 (trunk 357348). I tried to do
another spack install llvm@develop, but it said that I already had it
installed. Does that mean there
were no changes since March 30, or does spack not look for any changes?

Wasn't sure what "spack" is, but looking around it seems to be a package
manager. Probably best to ask them directly:

   https://github.com/spack/spack

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
             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?

With the gcc 4.8.5 being reported as too old, was that a warning or an
outright error + refusing to build?

Regards and best wishes,

Justin Clift

Thank you.

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
            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@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.

Is there some compiler that would work?

  Thanks again,
    Marty Itzkowitz

<snip>

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
            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@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. :wink:

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. :slight_smile:

Regards and best wishes,

Justin Clift

Thanks. More below.

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. :wink:

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):

I’ve installed it successfully on both x86 and ARM. It’s only on POWER9 (ppc641e) that it fails.
That one is not in your TARGETS_TO_BUILD list, alas.

Thanks,
Marty

<snip>

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):

I’ve installed it successfully on both x86 and ARM. It’s only on
POWER9 (ppc641e) that it fails.
That one is not in your TARGETS_TO_BUILD list, alas.

Good point. Probably the best approach here will be to file a bug
report for the POWER9 architecture, so someone looks to solve the
problem.

   https://bugs.llvm.org

+ Justin

<snip>
>>> 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):
>
> I’ve installed it successfully on both x86 and ARM. It’s only on
> POWER9 (ppc641e) that it fails.
> That one is not in your TARGETS_TO_BUILD list, alas.

Good point. Probably the best approach here will be to file a bug
report for the POWER9 architecture, so someone looks to solve the
problem.

   https://bugs.llvm.org

If you haven't already, see
https://bugs.llvm.org/show_bug.cgi?id=39696 which handles the "is not
a constant expression" error.

Regards
David