To help us debug your issue please explain:
It looks like Clang 7.1 was released (just today!?), and as such there is now a missing entry in the default default_settings_yml
Appears to be a completely separate issue from https://github.com/conan-io/conan/issues/4909
At first blush this seems relatively trivial so I have a fork with the changes here:
https://github.com/cstratopoulos/conan/commit/e2038f8aa8dc194793d09668d1810e2afa67b7fe
However I saw in the PR contrib guidelines it's preferred to have an issue open first. Maybe I'm overlooking some subtleties about if this merits adding new test cases or changing entries in other files. In that case it may be easier for another maintainer to just do the updates rather than opening a PR off mine.
Hi @cstratopoulos
Could you please point to the source of the clang release? It seemed that clang was going to release only patches now (which are totally binary compatible, and don't need such modelling in the default settings.yml). This is the reason why clang settings only contain 5.0, 6.0, and 7.0 versions.
From http://releases.llvm.org/, it seems that you are referring to 7.0.1.
Please check, thanks!"
I haven't seen the release of 7.1.0 yet but the LLVM/clang team is definitely in process of releasing it. To the best of my knowledge release candidate 1 gets currently tested [1]. I mentioned it already briefly in slack some time ago [2] but it went unnoticed.
[1] http://lists.llvm.org/pipermail/llvm-dev/2019-March/131375.html
[2] https://cpplang.slack.com/archives/C41CWV9HA/p1549648557824700?thread_ts=1549647369.817200&cid=C41CWV9HA
This is against their own policy, and unexpected: http://blog.llvm.org/2016/12/llvms-new-versioning-scheme.html, isnt it?
In any case, we should probably wait until it is really released.
Indeed, it was not planed but 7.0.0 has a bad ABI incompatibility with gcc which they can not fix without breaking their own ABI [1]. Considering that gcc and clang are expected to be ABI compatible, and that many Linux distributions do not permit to perform major compiler upgrades, releasing 7.1.0 is more or less the only sane option.
Then yes, it seems that the version will have to be added to settings.
The only thing is that it might be necessary to take that into account in other places, not only adding to settings.yml:
Basically I've been following the steps on https://apt.llvm.org/ to add the apt repository with clang 7, then doing sudo apt install clang-7. As of the 9th, this has been grabbing clang 7.1 rather than 7.0.1.
Maybe I've unwittingly been grabbing from the nightly or development channel or something like that? It seem indeed as you've indicated that clang 7.1 has yet to be officially released.
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key
+ sudo apt-key add -
--2019-04-11 10:08:55-- https://apt.llvm.org/llvm-snapshot.gpg.key
Resolving apt.llvm.org (apt.llvm.org)... 151.101.50.49, 2a04:4e42:c::561
Connecting to apt.llvm.org (apt.llvm.org)|151.101.50.49|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3145 (3.1K) [application/octet-stream]
Saving to: ‘STDOUT’
0K ... 100% 141M=0s
2019-04-11 10:08:55 (141 MB/s) - written to stdout [3145/3145]
OK
+ sudo apt-add-repository 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
+ sudo apt update
after this
+ clang++-7 --version
clang version 7.1.0-svn353565-1~exp1~20190408084827.60 (branches/release_70)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
It seems that conan grabs the minor version:
Auto detecting your dev setup to initialize the default profile (/home/vsts/.conan/profiles/default)
CC and CXX: None, clang++-7
Found clang 7.1
Default settings
os=Linux
os_build=Linux
arch=x86_64
arch_build=x86_64
compiler=clang
compiler.version=7.1
compiler.libcxx=libstdc++
build_type=Release
*** You can change them in /home/vsts/.conan/profiles/default ***
*** Or override with -s compiler='other' -s ...s***
ERROR: Invalid setting '7.1' is not a valid 'settings.compiler.version' value.
Possible values are ['3.3', '3.4', '3.5', '3.6', '3.7', '3.8', '3.9', '4.0', '5.0', '6.0', '7.0', '8']
Read "http://docs.conan.io/en/latest/faq/troubleshooting.html#error-invalid-setting"
Traceback (most recent call last):
File "/home/vsts/work/_temp/9b5e83e5-c1fa-47ee-bbbe-7f648b5c06e1.py", line 7, in <module>
subprocess.check_call(args)
File "/usr/lib/python2.7/subprocess.py", line 541, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['conan', 'install', '/home/vsts/work/1/s', '-o', 'boost:header_only=True', '--build', 'missing', '-s', 'build_type=Debug', '-s', 'compiler.libcxx=libc++']' returned non-zero exit status 1
FYI, 7.1.0 has been tagged (see http://lists.llvm.org/pipermail/llvm-dev/2019-April/131724.html).
Is there any update on that issue? Travis CI builds are failing because there is only a clang 7.1 (no 7.0 anymore) that still is not supported according to settings.yml.
Yes, seems that it is officially released: http://releases.llvm.org/download.html#7.0.1
I was confused, as the main site doesn't link it! http://releases.llvm.org/
Sorry for the delay in handling this. Lets try to add it to next 1.17.1 patch release
It's now merged to 1.17.1. Closing the issue.
Most helpful comment
It's now merged to 1.17.1. Closing the issue.