10.0.1-rc1 release has been tagged

Hi Tom,

thanks and congrats for LLVM 10.0.1-rc1 release.

[1] shows 2 assets.
10.0.0 RCs had a lot of more assets.
I am missing the llvm-project-10.0.1rc1.tar.xz tarball.

Will you provide them later or is there a new development/workflow
decision I do not know of?

BTW, the source zip and tar.gz tarballs show no sizes.
I am using Mobile LTE/UMTS to download stuff from the Internet.

For now I used the "llvmorg-10.0.1-rc1" Git tag to build my
llvm-toolchain on Debian/testing AMD64.

Thanks.

Regards,
- Sedat -

[1] https://github.com/llvm/llvm-project/releases/tag/llvmorg-10.0.1-rc1

Hi Tom,

thanks and congrats for LLVM 10.0.1-rc1 release.

[1] shows 2 assets.
10.0.0 RCs had a lot of more assets.
I am missing the llvm-project-10.0.1rc1.tar.xz tarball.

Will you provide them later or is there a new development/workflow
decision I do not know of?

I've uploaded all the tarballs now.

-Tom

> Hi Tom,
>
> thanks and congrats for LLVM 10.0.1-rc1 release.
>
> [1] shows 2 assets.
> 10.0.0 RCs had a lot of more assets.
> I am missing the llvm-project-10.0.1rc1.tar.xz tarball.
>
> Will you provide them later or is there a new development/workflow
> decision I do not know of?
>

I've uploaded all the tarballs now.

Thanks Tom.

- Sedat -

I have build from the below tarball.

But the version-strings look odd.

First I added...

--- llvm-project-10.0.1rc1/llvm/CMakeLists.txt 2020-05-19
21:16:37.000000000 +0200
+++ llvm-project/llvm/CMakeLists.txt 2020-05-20 18:02:42.443960091 +0200
@@ -25,7 +25,7 @@ if(NOT DEFINED LLVM_VERSION_PATCH)
   set(LLVM_VERSION_PATCH 1)
endif()
if(NOT DEFINED LLVM_VERSION_SUFFIX)
- set(LLVM_VERSION_SUFFIX "")
+ set(LLVM_VERSION_SUFFIX "rc1")
endif()

That lead to strange so-lib-names like *.so.10rc1 which is not wanted.

I hacked around LLVM_VERSION_SUFFIX stuff.

Here is the diff:

diff -uprN llvm-project-10.0.1rc1/clang/CMakeLists.txt
llvm-project/clang/CMakeLists.txt
--- llvm-project-10.0.1rc1/clang/CMakeLists.txt 2020-05-19
21:16:37.000000000 +0200
+++ llvm-project/clang/CMakeLists.txt 2020-05-20 18:36:57.621341162 +0200
@@ -358,8 +358,11 @@ endif()
if(NOT DEFINED CLANG_VERSION_PATCHLEVEL)
   set(CLANG_VERSION_PATCHLEVEL ${LLVM_VERSION_PATCH})
endif()
-# Unlike PACKAGE_VERSION, CLANG_VERSION does not include LLVM_VERSION_SUFFIX.
-set(CLANG_VERSION
"${CLANG_VERSION_MAJOR}.${CLANG_VERSION_MINOR}.${CLANG_VERSION_PATCHLEVEL}")
+if(NOT DEFINED CLANG_VERSION_SUFFIX)
+ set(CLANG_VERSION_SUFFIX ${LLVM_VERSION_SUFFIX})
+endif()
+# Explicitly include CLANG_VERSION_SUFFIX in CLANG_VERSION.
+set(CLANG_VERSION
"${CLANG_VERSION_MAJOR}.${CLANG_VERSION_MINOR}.${CLANG_VERSION_PATCHLEVEL}${CLANG_VERSION_SUFFIX}")
message(STATUS "Clang version: ${CLANG_VERSION}")

# Configure the Version.inc file.
@@ -687,6 +690,7 @@ if (CLANG_ENABLE_BOOTSTRAP)
     CLANG_VERSION_MINOR
     CLANG_VERSION_PATCHLEVEL
     LLVM_VERSION_SUFFIX
+ CLANG_VERSION_SUFFIX
     LLVM_BINUTILS_INCDIR
     CLANG_REPOSITORY_STRING
     CMAKE_C_COMPILER_LAUNCHER
Binärdateien llvm-project-10.0.1rc1/clang/test/Analysis/analyzer_test.pyc
und llvm-project/clang/test/Analysis/analyzer_test.pyc sind
verschieden.
diff -uprN llvm-project-10.0.1rc1/lld/CMakeLists.txt
llvm-project/lld/CMakeLists.txt
--- llvm-project-10.0.1rc1/lld/CMakeLists.txt 2020-05-19
21:16:37.000000000 +0200
+++ llvm-project/lld/CMakeLists.txt 2020-05-20 18:40:07.817924825 +0200
@@ -120,16 +120,23 @@ set(LLD_SOURCE_DIR ${CMAKE_CURRENT_SOURC
set(LLD_INCLUDE_DIR ${LLD_SOURCE_DIR}/include )
set(LLD_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})

-# Compute the LLD version from the LLVM version.
-string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" LLD_VERSION
- ${PACKAGE_VERSION})
+# If LLD_VERSION_* is specified, use it, if not use LLVM_VERSION_*.
+if(NOT DEFINED LLD_VERSION_MAJOR)
+ set(LLD_VERSION_MAJOR ${LLVM_VERSION_MAJOR})
+endif()
+if(NOT DEFINED LLD_VERSION_MINOR)
+ set(LLD_VERSION_MINOR ${LLVM_VERSION_MINOR})
+endif()
+if(NOT DEFINED LLD_VERSION_PATCHLEVEL)
+ set(LLD_VERSION_PATCHLEVEL ${LLVM_VERSION_PATCH})
+endif()
+if(NOT DEFINED LLD_VERSION_SUFFIX)
+ set(LLD_VERSION_SUFFIX ${LLVM_VERSION_SUFFIX})
+endif()
+# Explicitly include LLD_VERSION_SUFFIX in LLD_VERSION.
+set(LLD_VERSION
"${LLD_VERSION_MAJOR}.${LLD_VERSION_MINOR}.${LLD_VERSION_PATCHLEVEL}${LLD_VERSION_SUFFIX}")
message(STATUS "LLD version: ${LLD_VERSION}")

-string(REGEX REPLACE "([0-9]+)\\.[0-9]+(\\.[0-9]+)?" "\\1" LLD_VERSION_MAJOR
- ${LLD_VERSION})
-string(REGEX REPLACE "[0-9]+\\.([0-9]+)(\\.[0-9]+)?" "\\1" LLD_VERSION_MINOR
- ${LLD_VERSION})

LLVM_VERSION_SUFFIX.diff (5.33 KB)

One Clang test fails when LLVM_VERSION_SUFFIX="rc1" is used:

--- llvm-project-10.0.1rc1/clang/test/Preprocessor/iwithprefix.c
2020-05-19 21:16:37.000000000 +0200
+++ llvm-project/clang/test/Preprocessor/iwithprefix.c 2020-05-20
20:28:03.774851595 +0200
@@ -9,7 +9,7 @@

// CHECK: #include <...> search starts here:
// CHECK: {{.*}}.tmps/first
-// CHECK: {{/|\\}}lib{{(32|64)?}}{{/|\\}}clang{{/|\\}}{{[.0-9]+}}{{/|\\}}include
+// CHECK: {{/|\\}}lib{{(32|64)?}}{{/|\\}}clang{{/|\\}}{{[.0-9]+}}rc1{{/|\\}}include
// CHECK: {{.*}}.tmps/second
// CHECK-NOT: {{.*}}.tmps

Maybe there is a better fix like above.

- Sedat -

Hi Tom,

thanks and congrats for LLVM 10.0.1-rc1 release.

[1] shows 2 assets.
10.0.0 RCs had a lot of more assets.
I am missing the llvm-project-10.0.1rc1.tar.xz tarball.

Will you provide them later or is there a new development/workflow
decision I do not know of?

I've uploaded all the tarballs now.

I have build from the below tarball.

But the version-strings look odd.

You shouldn't have to make any changes to the source, did you
try running the test-release.sh script?

-Tom

>>
>>> Hi Tom,
>>>
>>> thanks and congrats for LLVM 10.0.1-rc1 release.
>>>
>>> [1] shows 2 assets.
>>> 10.0.0 RCs had a lot of more assets.
>>> I am missing the llvm-project-10.0.1rc1.tar.xz tarball.
>>>
>>> Will you provide them later or is there a new development/workflow
>>> decision I do not know of?
>>>
>>
>> I've uploaded all the tarballs now.
>>
>
> I have build from the below tarball.
>
> But the version-strings look odd.
>

You shouldn't have to make any changes to the source, did you
try running the test-release.sh script?

I tried...

$ ./llvm/utils/release/test-release.sh -release 10.0.1 -rc 1 -triple
x86_64-linux-gnu
# Using git ref: llvmorg-10.0.1-rc1
  % Total % Received % Xferd Average Speed Time Time Time Current
                                 Dload Upload Total Spent Left Speed
100 137 100 137 0 0 345 0 --:--:-- --:--:-- --:--:-- 345
100 25.7M 0 25.7M 0 0 2263k 0 --:--:-- 0:00:11 --:--:-- 2530k^C

I have already built from this git-ref "llvmorg-10.0.1-rc1" successfully.

$ which clang-10
/home/dileks/src/llvm-toolchain/install/bin/clang-10

$ clang-10 --version
ClangBuiltLinux clang version 10.0.1
(https://github.com/llvm/llvm-project
f79cd71e145c6fd005ba4dd1238128dfa0dc2cb6)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/dileks/src/llvm-toolchain/install/bin

BTW, I use tc-build script from ClangBuiltLinux to build my
llvm-toolchain consisting of projects "clang" and "lld".

LINK: https://github.com/ClangBuiltLinux/tc-build

With my modifications:

dileks@iniza:~/src/llvm-toolchain$ ln -sf install.dileks install

$ which clang-10
/home/dileks/src/llvm-toolchain/install/bin/clang-10

$ clang-10 --version
ClangBuiltLinux clang version 10.0.1rc1
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/dileks/src/llvm-toolchain/install/bin

$ which ld.lld
/home/dileks/src/llvm-toolchain/install/bin/ld.lld

$ ld.lld --version
LLD 10.0.1rc1 (compatible with GNU linkers)

My goal is to use the official tarballs and the generated binaries
should show me as a version-string "10.0.1rc1" (see above).
In the past this was the case - but what is with today :-)?

IMHO this is only possible with changing LLVM_VERSION_SUFFIX.
But I may be wrong or missing something.

- Sedat -

Sedat, For building the release according to the subject line of this email on Xubuntu Linux I use

cd ~/Documents/llvm-project/llvm/utils/release

./test-release.sh
-release 10.0.1
-rc 1
-test-asserts
-no-compare-files
-triple x86_64-pc-linux-gnu
-configure-flags “-DLLVM_ENABLE_LIBPFM=OFF -DRUN_HAVE_GNU_POSIX_REGEX=0 -DRUN_HAVE_THREAD_SAFETY_ATTRIBUTES=0”
&> ~/Documents/test-release.sh.log

Looks like your triple is x86_64-unknown-linux-gnu that I have seen on several release notification emails. The configure-flags may or may not work for you.

The disk usage is just under 90 gigabytes on a dedicated GUI VM for this purpose. Built and installed the latest clang-llvm before the release run.

From the release directory, cd to rc1/logs. The primary log is testing.10.0.1-rc1.log. deferred_errors.log
may also be useful.

Use grep -n ‘Expected Passes’ testing.10.0.1-rc1.log to see where all the pass summaries are with their line numbers.

Use sed -n line-number-begin,line-number-endp testing.10.0.1-rc1.log as in sed -n 187562,187582p testing.10.0.1-rc1.log to see the full counts list.

Use grep -n ‘Unexpected Failures’ testing.10.0.1-rc1.log to see sections that need a closer look. Those sections will have ‘fail’ in them to check out and possibly report.

Go up a directory to rc1.

sha256sum clang+llvm-10.0.0-rc6-x86_64-pc-linux-gnu.tar.xz

Copy the sha256sum hex value in the notification email to the list.

Upload the xz file using

scp -i ~/.ssh/id_rsa_llvm.pub clang+llvm-10.0.0-rc6-x86_64-pc-linux-gnu.tar.xz

after providing your public key to llvm. Need to find out who to email the public key to.

Neil Nelson

Hi Neal,

Sedat, For building the release according to the subject line of this email on Xubuntu Linux I use

cd ~/Documents/llvm-project/llvm/utils/release

./test-release.sh \
     -release 10.0.1 \
     -rc 1 \
     -test-asserts \
     -no-compare-files \
     -triple x86_64-pc-linux-gnu \
     -configure-flags "-DLLVM_ENABLE_LIBPFM=OFF -DRUN_HAVE_GNU_POSIX_REGEX=0 -DRUN_HAVE_THREAD_SAFETY_ATTRIBUTES=0" \
     &> ~/Documents/test-release.sh.log

Looks like your triple is x86_64-unknown-linux-gnu that I have seen on several release notification emails. The configure-flags may or may not work for you.

Thanks. I opened a new tc-build issue for this.

https://github.com/ClangBuiltLinux/tc-build/issues/92

The disk usage is just under 90 gigabytes on a dedicated GUI VM for this purpose. Built and installed the latest clang-llvm before the release run.

From the release directory, cd to rc1/logs. The primary log is testing.10.0.1-rc1.log. deferred_errors.log
may also be useful.

Use grep -n 'Expected Passes' testing.10.0.1-rc1.log to see where all the pass summaries are with their line numbers.

Use sed -n line-number-begin,line-number-endp testing.10.0.1-rc1.log as in sed -n 187562,187582p testing.10.0.1-rc1.log to see the full counts list.

Use grep -n 'Unexpected Failures' testing.10.0.1-rc1.log to see sections that need a closer look. Those sections will have 'fail' in them to check out and possibly report.

Go up a directory to rc1.

sha256sum clang+llvm-10.0.0-rc6-x86_64-pc-linux-gnu.tar.xz

Copy the sha256sum hex value in the notification email to the list.

Upload the xz file using

scp -i ~/.ssh/id_rsa_llvm.pub clang+llvm-10.0.0-rc6-x86_64-pc-linux-gnu.tar.xz testers@releases-origin.llvm.org:/home/testers

after providing your public key to llvm. Need to find out who to email the public key to.

Thanks for explaining the usage of test-release.sh script.

I am primarily interested in understanding the handling of
version-strings and will write a separate email for this.

- Sedat -

New thread:

[llvm-dev] Understanding the version handling in LLVM/Clang/LLD

- Sedat -

[1] https://lists.llvm.org/pipermail/llvm-dev/2020-May/141717.html