Clang and LLVM 6.0

Look, I want to apologize for the bad attitude that I showed here on the forum. I wanted to thank everybody for helping me thus far. I got more code dumps to show. It seems like I am making progress here. Future posts coming.

Sorry, but I don’t understand why you did not read what another person said about it (@doscott) ?
“Replace gcc with llvm and clang.”
So instead of
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 50
will be
update-alternatives --install …

wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50
[sudo] password for root: 
Sorry, try again.
[sudo] password for root: 
Sorry, try again.
[sudo] password for root: 
update-alternatives: using /usr/bin/gcc-7 to provide /usr/bin/gcc (gcc) in auto mode
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --config clang
There is only one alternative in link group clang (providing /usr/bin/clang): /usr/bin/clang-6.0.0
Nothing to configure.
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --config llvm
update-alternatives: error: no alternatives for llvm

I finally figured out how to select gcc 7 in auto mode.

wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-6.0.0 50
update-alternatives: using /usr/bin/llvm-ar-5.0.1 to provide /usr/bin/llvm-ar (llvm-ar) in auto mode
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-6.0.0
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-6.0.0 20
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-6.0.0 20
update-alternatives: error: alternative llvm-as can't be master: it is a slave of llvm-ar
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-6.0.0 50
update-alternatives: error: alternative llvm-as can't be master: it is a slave of llvm-ar
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-6.0.0
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.
wellywu@linux-vfxd:/usr/bin>

Is this correct? Do I have to do this for llvm-config, llvm-as, llvm-dis, lli, llc and opt as well? How do I do that? What is this thing with priority?

wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --help
[sudo] password for root: 
Usage: update-alternatives <option> ...] <command>

Commands:
  --install <link> <name> <path> <priority>
    --slave <link> <name> <path>] ...
                           add a group of alternatives to the system.
  --remove <name> <path>   remove <path> from the <name> group alternative.
  --remove-all <name>      remove <name> group from the alternatives system.
  --auto <name>            switch the master link <name> to automatic mode.
  --display <name>         display information about the <name> group.
  --query <name>           machine parseable version of --display <name>.
  --list <name>            display all targets of the <name> group.
  --get-selections         list master alternative names and their status.
  --set-selections         read alternative status from standard input.
  --config <name>          show alternatives for the <name> group and ask the
                           user to select which one to use.
  --set <name> <path>      set <path> as alternative for <name>.
  --all                    call --config on all alternatives.

<link> is the symlink pointing to /etc/alternatives/<name>.
  (e.g. /usr/bin/pager)
<name> is the master name for this link group.
  (e.g. pager)
<path> is the location of one of the alternative target files.
  (e.g. /usr/bin/less)
<priority> is an integer; options with higher numbers have higher priority in
  automatic mode.

Options:
  --altdir <directory>     change the alternatives directory.
  --admindir <directory>   change the administrative directory.
  --log <file>             change the log file.
  --force                  allow replacing files with alternative links.
  --skip-auto              skip prompt for alternatives correctly configured
                           in automatic mode (relevant for --config only)
  --verbose                verbose operation, more output.
  --quiet                  quiet operation, minimal output.
  --help                   show this help message.
  --version                show the version.
wellywu@linux-vfxd:/usr/bin>

So, this is the man page for update-alternatives.

I’m reposting my code dump again to ask more specific questions:

wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-6.0.0
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-6.0.0 50
update-alternatives: using /usr/bin/llvm-ar-5.0.1 to provide /usr/bin/llvm-ar (llvm-ar) in auto mode
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-6.0.0
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-6.0.0 20
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-6.0.0 20
update-alternatives: error: alternative llvm-as can't be master: it is a slave of llvm-ar
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-6.0.0 50
update-alternatives: error: alternative llvm-as can't be master: it is a slave of llvm-ar
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-6.0.0
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.

Is setting llvm-ar-6.0.0 to priority 20 correct or why can’t it be set to priority 50? What about the other files? How do I know which priority to give to each file?

Priority - higher priority, this package will be default package in auto mode.
Do not give different priority to the same package.

Can you post the output from

ls /usr/bin/llvm*
ls /usr/bin/clang*

What I really need is someone to hold my hands and tell me what to type in for update-alternatives for clang, llvm, and other necessary files. I still have no idea what I am doing here as it is clearly evident. I just want LLVM 6.0.0 to be selected so that I can turn on 3D graphics hardware acceleration for my RX Vega 64 GPU.

I’m a bit confused here about the priorities because I don’t really understand which specific number to assign to each llvm 6.0.0 file right now. Which files do I need to add to update-alternatives and what specific priorities do I need to give to each file? What other files need to be included with update-alternatives and each of their priorities?

It’s not that I can’t read and understand what others have posted. I’m just really green and wet behind the ears with regards to OpenSuSE Tumbleweed. We all got to start somewhere. Anyway, my knowledge and experience is with Ubuntu 64 bit LTS, but I wanted to give OpenSuSE Tumbleweed a try.

Please be patient with my noobiness and continue helping. I’m just trying to understand what I’m doing with update-alternatives, which specific files to target, and their priorities. I need more help. Thank you.

wellywu@linux-vfxd:/usr/bin> ls /usr/bin/llvm*
+ _ls /usr/bin/llvm-ar /usr/bin/llvm-ar-5.0.1 /usr/bin/llvm-ar-6.0.0 /usr/bin/llvm-as /usr/bin/llvm-as-5.0.1 /usr/bin/llvm-as-6.0.0 /usr/bin/llvm-bcanalyzer /usr/bin/llvm-bcanalyzer-5.0.1 /usr/bin/llvm-bcanalyzer-6.0.0 /usr/bin/llvm-cat /usr/bin/llvm-cat-5.0.1 /usr/bin/llvm-cat-6.0.0 /usr/bin/llvm-cfi-verify-6.0.0 /usr/bin/llvm-cov /usr/bin/llvm-cov-5.0.1 /usr/bin/llvm-cov-6.0.0 /usr/bin/llvm-c-test /usr/bin/llvm-c-test-5.0.1 /usr/bin/llvm-c-test-6.0.0 /usr/bin/llvm-cvtres /usr/bin/llvm-cvtres-5.0.1 /usr/bin/llvm-cvtres-6.0.0 /usr/bin/llvm-cxxdump /usr/bin/llvm-cxxdump-5.0.1 /usr/bin/llvm-cxxdump-6.0.0 /usr/bin/llvm-cxxfilt /usr/bin/llvm-cxxfilt-5.0.1 /usr/bin/llvm-cxxfilt-6.0.0 /usr/bin/llvm-diff /usr/bin/llvm-diff-5.0.1 /usr/bin/llvm-diff-6.0.0 /usr/bin/llvm-dis /usr/bin/llvm-dis-5.0.1 /usr/bin/llvm-dis-6.0.0 /usr/bin/llvm-dlltool /usr/bin/llvm-dlltool-5.0.1 /usr/bin/llvm-dlltool-6.0.0 /usr/bin/llvm-dsymutil /usr/bin/llvm-dsymutil-5.0.1 /usr/bin/llvm-dsymutil-6.0.0 /usr/bin/llvm-dwarfdump /usr/bin/llvm-dwarfdump-5.0.1 /usr/bin/llvm-dwarfdump-6.0.0 /usr/bin/llvm-dwp /usr/bin/llvm-dwp-5.0.1 /usr/bin/llvm-dwp-6.0.0 /usr/bin/llvm-extract /usr/bin/llvm-extract-5.0.1 /usr/bin/llvm-extract-6.0.0 /usr/bin/llvm-lib /usr/bin/llvm-lib-5.0.1 /usr/bin/llvm-lib-6.0.0 /usr/bin/llvm-link /usr/bin/llvm-link-5.0.1 /usr/bin/llvm-link-6.0.0 /usr/bin/llvm-lto /usr/bin/llvm-lto2 /usr/bin/llvm-lto2-5.0.1 /usr/bin/llvm-lto2-6.0.0 /usr/bin/llvm-lto-5.0.1 /usr/bin/llvm-lto-6.0.0 /usr/bin/llvm-mc /usr/bin/llvm-mc-5.0.1 /usr/bin/llvm-mc-6.0.0 /usr/bin/llvm-mcmarkup /usr/bin/llvm-mcmarkup-5.0.1 /usr/bin/llvm-mcmarkup-6.0.0 /usr/bin/llvm-modextract /usr/bin/llvm-modextract-5.0.1 /usr/bin/llvm-modextract-6.0.0 /usr/bin/llvm-mt /usr/bin/llvm-mt-5.0.1 /usr/bin/llvm-mt-6.0.0 /usr/bin/llvm-nm /usr/bin/llvm-nm-5.0.1 /usr/bin/llvm-nm-6.0.0 /usr/bin/llvm-objcopy-6.0.0 /usr/bin/llvm-objdump /usr/bin/llvm-objdump-5.0.1 /usr/bin/llvm-objdump-6.0.0 /usr/bin/llvm-opt-report /usr/bin/llvm-opt-report-5.0.1 /usr/bin/llvm-opt-report-6.0.0 /usr/bin/llvm-pdbutil /usr/bin/llvm-pdbutil-5.0.1 /usr/bin/llvm-pdbutil-6.0.0 /usr/bin/llvm-profdata /usr/bin/llvm-profdata-5.0.1 /usr/bin/llvm-profdata-6.0.0 /usr/bin/llvm-ranlib /usr/bin/llvm-ranlib-5.0.1 /usr/bin/llvm-ranlib-6.0.0 /usr/bin/llvm-rc-6.0.0 /usr/bin/llvm-readelf /usr/bin/llvm-readelf-5.0.1 /usr/bin/llvm-readelf-6.0.0 /usr/bin/llvm-readobj /usr/bin/llvm-readobj-5.0.1 /usr/bin/llvm-readobj-6.0.0 /usr/bin/llvm-rtdyld /usr/bin/llvm-rtdyld-5.0.1 /usr/bin/llvm-rtdyld-6.0.0 /usr/bin/llvm-size /usr/bin/llvm-size-5.0.1 /usr/bin/llvm-size-6.0.0 /usr/bin/llvm-split /usr/bin/llvm-split-5.0.1 /usr/bin/llvm-split-6.0.0 /usr/bin/llvm-stress /usr/bin/llvm-stress-5.0.1 /usr/bin/llvm-stress-6.0.0 /usr/bin/llvm-strings /usr/bin/llvm-strings-5.0.1 /usr/bin/llvm-strings-6.0.0 /usr/bin/llvm-symbolizer /usr/bin/llvm-symbolizer-5.0.1 /usr/bin/llvm-symbolizer-6.0.0 /usr/bin/llvm-tblgen /usr/bin/llvm-tblgen-5.0.1 /usr/bin/llvm-tblgen-6.0.0 /usr/bin/llvm-xray /usr/bin/llvm-xray-5.0.1 /usr/bin/llvm-xray-6.0.0
+ local 'IFS= '
+ command ls -N --color=tty -T 0 /usr/bin/llvm-ar /usr/bin/llvm-ar-5.0.1 /usr/bin/llvm-ar-6.0.0 /usr/bin/llvm-as /usr/bin/llvm-as-5.0.1 /usr/bin/llvm-as-6.0.0 /usr/bin/llvm-bcanalyzer /usr/bin/llvm-bcanalyzer-5.0.1 /usr/bin/llvm-bcanalyzer-6.0.0 /usr/bin/llvm-cat /usr/bin/llvm-cat-5.0.1 /usr/bin/llvm-cat-6.0.0 /usr/bin/llvm-cfi-verify-6.0.0 /usr/bin/llvm-cov /usr/bin/llvm-cov-5.0.1 /usr/bin/llvm-cov-6.0.0 /usr/bin/llvm-c-test /usr/bin/llvm-c-test-5.0.1 /usr/bin/llvm-c-test-6.0.0 /usr/bin/llvm-cvtres /usr/bin/llvm-cvtres-5.0.1 /usr/bin/llvm-cvtres-6.0.0 /usr/bin/llvm-cxxdump /usr/bin/llvm-cxxdump-5.0.1 /usr/bin/llvm-cxxdump-6.0.0 /usr/bin/llvm-cxxfilt /usr/bin/llvm-cxxfilt-5.0.1 /usr/bin/llvm-cxxfilt-6.0.0 /usr/bin/llvm-diff /usr/bin/llvm-diff-5.0.1 /usr/bin/llvm-diff-6.0.0 /usr/bin/llvm-dis /usr/bin/llvm-dis-5.0.1 /usr/bin/llvm-dis-6.0.0 /usr/bin/llvm-dlltool /usr/bin/llvm-dlltool-5.0.1 /usr/bin/llvm-dlltool-6.0.0 /usr/bin/llvm-dsymutil /usr/bin/llvm-dsymutil-5.0.1 /usr/bin/llvm-dsymutil-6.0.0 /usr/bin/llvm-dwarfdump /usr/bin/llvm-dwarfdump-5.0.1 /usr/bin/llvm-dwarfdump-6.0.0 /usr/bin/llvm-dwp /usr/bin/llvm-dwp-5.0.1 /usr/bin/llvm-dwp-6.0.0 /usr/bin/llvm-extract /usr/bin/llvm-extract-5.0.1 /usr/bin/llvm-extract-6.0.0 /usr/bin/llvm-lib /usr/bin/llvm-lib-5.0.1 /usr/bin/llvm-lib-6.0.0 /usr/bin/llvm-link /usr/bin/llvm-link-5.0.1 /usr/bin/llvm-link-6.0.0 /usr/bin/llvm-lto /usr/bin/llvm-lto2 /usr/bin/llvm-lto2-5.0.1 /usr/bin/llvm-lto2-6.0.0 /usr/bin/llvm-lto-5.0.1 /usr/bin/llvm-lto-6.0.0 /usr/bin/llvm-mc /usr/bin/llvm-mc-5.0.1 /usr/bin/llvm-mc-6.0.0 /usr/bin/llvm-mcmarkup /usr/bin/llvm-mcmarkup-5.0.1 /usr/bin/llvm-mcmarkup-6.0.0 /usr/bin/llvm-modextract /usr/bin/llvm-modextract-5.0.1 /usr/bin/llvm-modextract-6.0.0 /usr/bin/llvm-mt /usr/bin/llvm-mt-5.0.1 /usr/bin/llvm-mt-6.0.0 /usr/bin/llvm-nm /usr/bin/llvm-nm-5.0.1 /usr/bin/llvm-nm-6.0.0 /usr/bin/llvm-objcopy-6.0.0 /usr/bin/llvm-objdump /usr/bin/llvm-objdump-5.0.1 /usr/bin/llvm-objdump-6.0.0 /usr/bin/llvm-opt-report /usr/bin/llvm-opt-report-5.0.1 /usr/bin/llvm-opt-report-6.0.0 /usr/bin/llvm-pdbutil /usr/bin/llvm-pdbutil-5.0.1 /usr/bin/llvm-pdbutil-6.0.0 /usr/bin/llvm-profdata /usr/bin/llvm-profdata-5.0.1 /usr/bin/llvm-profdata-6.0.0 /usr/bin/llvm-ranlib /usr/bin/llvm-ranlib-5.0.1 /usr/bin/llvm-ranlib-6.0.0 /usr/bin/llvm-rc-6.0.0 /usr/bin/llvm-readelf /usr/bin/llvm-readelf-5.0.1 /usr/bin/llvm-readelf-6.0.0 /usr/bin/llvm-readobj /usr/bin/llvm-readobj-5.0.1 /usr/bin/llvm-readobj-6.0.0 /usr/bin/llvm-rtdyld /usr/bin/llvm-rtdyld-5.0.1 /usr/bin/llvm-rtdyld-6.0.0 /usr/bin/llvm-size /usr/bin/llvm-size-5.0.1 /usr/bin/llvm-size-6.0.0 /usr/bin/llvm-split /usr/bin/llvm-split-5.0.1 /usr/bin/llvm-split-6.0.0 /usr/bin/llvm-stress /usr/bin/llvm-stress-5.0.1 /usr/bin/llvm-stress-6.0.0 /usr/bin/llvm-strings /usr/bin/llvm-strings-5.0.1 /usr/bin/llvm-strings-6.0.0 /usr/bin/llvm-symbolizer /usr/bin/llvm-symbolizer-5.0.1 /usr/bin/llvm-symbolizer-6.0.0 /usr/bin/llvm-tblgen /usr/bin/llvm-tblgen-5.0.1 /usr/bin/llvm-tblgen-6.0.0 /usr/bin/llvm-xray /usr/bin/llvm-xray-5.0.1 /usr/bin/llvm-xray-6.0.0
+ ls -N --color=tty -T 0 /usr/bin/llvm-ar /usr/bin/llvm-ar-5.0.1 /usr/bin/llvm-ar-6.0.0 /usr/bin/llvm-as /usr/bin/llvm-as-5.0.1 /usr/bin/llvm-as-6.0.0 /usr/bin/llvm-bcanalyzer /usr/bin/llvm-bcanalyzer-5.0.1 /usr/bin/llvm-bcanalyzer-6.0.0 /usr/bin/llvm-cat /usr/bin/llvm-cat-5.0.1 /usr/bin/llvm-cat-6.0.0 /usr/bin/llvm-cfi-verify-6.0.0 /usr/bin/llvm-cov /usr/bin/llvm-cov-5.0.1 /usr/bin/llvm-cov-6.0.0 /usr/bin/llvm-c-test /usr/bin/llvm-c-test-5.0.1 /usr/bin/llvm-c-test-6.0.0 /usr/bin/llvm-cvtres /usr/bin/llvm-cvtres-5.0.1 /usr/bin/llvm-cvtres-6.0.0 /usr/bin/llvm-cxxdump /usr/bin/llvm-cxxdump-5.0.1 /usr/bin/llvm-cxxdump-6.0.0 /usr/bin/llvm-cxxfilt /usr/bin/llvm-cxxfilt-5.0.1 /usr/bin/llvm-cxxfilt-6.0.0 /usr/bin/llvm-diff /usr/bin/llvm-diff-5.0.1 /usr/bin/llvm-diff-6.0.0 /usr/bin/llvm-dis /usr/bin/llvm-dis-5.0.1 /usr/bin/llvm-dis-6.0.0 /usr/bin/llvm-dlltool /usr/bin/llvm-dlltool-5.0.1 /usr/bin/llvm-dlltool-6.0.0 /usr/bin/llvm-dsymutil /usr/bin/llvm-dsymutil-5.0.1 /usr/bin/llvm-dsymutil-6.0.0 /usr/bin/llvm-dwarfdump /usr/bin/llvm-dwarfdump-5.0.1 /usr/bin/llvm-dwarfdump-6.0.0 /usr/bin/llvm-dwp /usr/bin/llvm-dwp-5.0.1 /usr/bin/llvm-dwp-6.0.0 /usr/bin/llvm-extract /usr/bin/llvm-extract-5.0.1 /usr/bin/llvm-extract-6.0.0 /usr/bin/llvm-lib /usr/bin/llvm-lib-5.0.1 /usr/bin/llvm-lib-6.0.0 /usr/bin/llvm-link /usr/bin/llvm-link-5.0.1 /usr/bin/llvm-link-6.0.0 /usr/bin/llvm-lto /usr/bin/llvm-lto2 /usr/bin/llvm-lto2-5.0.1 /usr/bin/llvm-lto2-6.0.0 /usr/bin/llvm-lto-5.0.1 /usr/bin/llvm-lto-6.0.0 /usr/bin/llvm-mc /usr/bin/llvm-mc-5.0.1 /usr/bin/llvm-mc-6.0.0 /usr/bin/llvm-mcmarkup /usr/bin/llvm-mcmarkup-5.0.1 /usr/bin/llvm-mcmarkup-6.0.0 /usr/bin/llvm-modextract /usr/bin/llvm-modextract-5.0.1 /usr/bin/llvm-modextract-6.0.0 /usr/bin/llvm-mt /usr/bin/llvm-mt-5.0.1 /usr/bin/llvm-mt-6.0.0 /usr/bin/llvm-nm /usr/bin/llvm-nm-5.0.1 /usr/bin/llvm-nm-6.0.0 /usr/bin/llvm-objcopy-6.0.0 /usr/bin/llvm-objdump /usr/bin/llvm-objdump-5.0.1 /usr/bin/llvm-objdump-6.0.0 /usr/bin/llvm-opt-report /usr/bin/llvm-opt-report-5.0.1 /usr/bin/llvm-opt-report-6.0.0 /usr/bin/llvm-pdbutil /usr/bin/llvm-pdbutil-5.0.1 /usr/bin/llvm-pdbutil-6.0.0 /usr/bin/llvm-profdata /usr/bin/llvm-profdata-5.0.1 /usr/bin/llvm-profdata-6.0.0 /usr/bin/llvm-ranlib /usr/bin/llvm-ranlib-5.0.1 /usr/bin/llvm-ranlib-6.0.0 /usr/bin/llvm-rc-6.0.0 /usr/bin/llvm-readelf /usr/bin/llvm-readelf-5.0.1 /usr/bin/llvm-readelf-6.0.0 /usr/bin/llvm-readobj /usr/bin/llvm-readobj-5.0.1 /usr/bin/llvm-readobj-6.0.0 /usr/bin/llvm-rtdyld /usr/bin/llvm-rtdyld-5.0.1 /usr/bin/llvm-rtdyld-6.0.0 /usr/bin/llvm-size /usr/bin/llvm-size-5.0.1 /usr/bin/llvm-size-6.0.0 /usr/bin/llvm-split /usr/bin/llvm-split-5.0.1 /usr/bin/llvm-split-6.0.0 /usr/bin/llvm-stress /usr/bin/llvm-stress-5.0.1 /usr/bin/llvm-stress-6.0.0 /usr/bin/llvm-strings /usr/bin/llvm-strings-5.0.1 /usr/bin/llvm-strings-6.0.0 /usr/bin/llvm-symbolizer /usr/bin/llvm-symbolizer-5.0.1 /usr/bin/llvm-symbolizer-6.0.0 /usr/bin/llvm-tblgen /usr/bin/llvm-tblgen-5.0.1 /usr/bin/llvm-tblgen-6.0.0 /usr/bin/llvm-xray /usr/bin/llvm-xray-5.0.1 /usr/bin/llvm-xray-6.0.0
/usr/bin/llvm-ar                /usr/bin/llvm-dis              /usr/bin/llvm-mc-5.0.1          /usr/bin/llvm-readelf
/usr/bin/llvm-ar-5.0.1          /usr/bin/llvm-dis-5.0.1        /usr/bin/llvm-mc-6.0.0          /usr/bin/llvm-readelf-5.0.1
/usr/bin/llvm-ar-6.0.0          /usr/bin/llvm-dis-6.0.0        /usr/bin/llvm-mcmarkup          /usr/bin/llvm-readelf-6.0.0
/usr/bin/llvm-as                /usr/bin/llvm-dlltool          /usr/bin/llvm-mcmarkup-5.0.1    /usr/bin/llvm-readobj
/usr/bin/llvm-as-5.0.1          /usr/bin/llvm-dlltool-5.0.1    /usr/bin/llvm-mcmarkup-6.0.0    /usr/bin/llvm-readobj-5.0.1
/usr/bin/llvm-as-6.0.0          /usr/bin/llvm-dlltool-6.0.0    /usr/bin/llvm-modextract        /usr/bin/llvm-readobj-6.0.0
/usr/bin/llvm-bcanalyzer        /usr/bin/llvm-dsymutil         /usr/bin/llvm-modextract-5.0.1  /usr/bin/llvm-rtdyld
/usr/bin/llvm-bcanalyzer-5.0.1  /usr/bin/llvm-dsymutil-5.0.1   /usr/bin/llvm-modextract-6.0.0  /usr/bin/llvm-rtdyld-5.0.1
/usr/bin/llvm-bcanalyzer-6.0.0  /usr/bin/llvm-dsymutil-6.0.0   /usr/bin/llvm-mt                /usr/bin/llvm-rtdyld-6.0.0
/usr/bin/llvm-cat               /usr/bin/llvm-dwarfdump        /usr/bin/llvm-mt-5.0.1          /usr/bin/llvm-size
/usr/bin/llvm-cat-5.0.1         /usr/bin/llvm-dwarfdump-5.0.1  /usr/bin/llvm-mt-6.0.0          /usr/bin/llvm-size-5.0.1
/usr/bin/llvm-cat-6.0.0         /usr/bin/llvm-dwarfdump-6.0.0  /usr/bin/llvm-nm                /usr/bin/llvm-size-6.0.0
/usr/bin/llvm-cfi-verify-6.0.0  /usr/bin/llvm-dwp              /usr/bin/llvm-nm-5.0.1          /usr/bin/llvm-split
/usr/bin/llvm-cov               /usr/bin/llvm-dwp-5.0.1        /usr/bin/llvm-nm-6.0.0          /usr/bin/llvm-split-5.0.1
/usr/bin/llvm-cov-5.0.1         /usr/bin/llvm-dwp-6.0.0        /usr/bin/llvm-objcopy-6.0.0     /usr/bin/llvm-split-6.0.0
/usr/bin/llvm-cov-6.0.0         /usr/bin/llvm-extract          /usr/bin/llvm-objdump           /usr/bin/llvm-stress
/usr/bin/llvm-c-test            /usr/bin/llvm-extract-5.0.1    /usr/bin/llvm-objdump-5.0.1     /usr/bin/llvm-stress-5.0.1
/usr/bin/llvm-c-test-5.0.1      /usr/bin/llvm-extract-6.0.0    /usr/bin/llvm-objdump-6.0.0     /usr/bin/llvm-stress-6.0.0
/usr/bin/llvm-c-test-6.0.0      /usr/bin/llvm-lib              /usr/bin/llvm-opt-report        /usr/bin/llvm-strings
/usr/bin/llvm-cvtres            /usr/bin/llvm-lib-5.0.1        /usr/bin/llvm-opt-report-5.0.1  /usr/bin/llvm-strings-5.0.1
/usr/bin/llvm-cvtres-5.0.1      /usr/bin/llvm-lib-6.0.0        /usr/bin/llvm-opt-report-6.0.0  /usr/bin/llvm-strings-6.0.0
/usr/bin/llvm-cvtres-6.0.0      /usr/bin/llvm-link             /usr/bin/llvm-pdbutil           /usr/bin/llvm-symbolizer
/usr/bin/llvm-cxxdump           /usr/bin/llvm-link-5.0.1       /usr/bin/llvm-pdbutil-5.0.1     /usr/bin/llvm-symbolizer-5.0.1
/usr/bin/llvm-cxxdump-5.0.1     /usr/bin/llvm-link-6.0.0       /usr/bin/llvm-pdbutil-6.0.0     /usr/bin/llvm-symbolizer-6.0.0
/usr/bin/llvm-cxxdump-6.0.0     /usr/bin/llvm-lto              /usr/bin/llvm-profdata          /usr/bin/llvm-tblgen
/usr/bin/llvm-cxxfilt           /usr/bin/llvm-lto2             /usr/bin/llvm-profdata-5.0.1    /usr/bin/llvm-tblgen-5.0.1
/usr/bin/llvm-cxxfilt-5.0.1     /usr/bin/llvm-lto2-5.0.1       /usr/bin/llvm-profdata-6.0.0    /usr/bin/llvm-tblgen-6.0.0
/usr/bin/llvm-cxxfilt-6.0.0     /usr/bin/llvm-lto2-6.0.0       /usr/bin/llvm-ranlib            /usr/bin/llvm-xray
/usr/bin/llvm-diff              /usr/bin/llvm-lto-5.0.1        /usr/bin/llvm-ranlib-5.0.1      /usr/bin/llvm-xray-5.0.1
/usr/bin/llvm-diff-5.0.1        /usr/bin/llvm-lto-6.0.0        /usr/bin/llvm-ranlib-6.0.0      /usr/bin/llvm-xray-6.0.0
/usr/bin/llvm-diff-6.0.0        /usr/bin/llvm-mc               /usr/bin/llvm-rc-6.0.0
++ ppwd
++ true
wellywu@linux-vfxd:/usr/bin> 
wellywu@linux-vfxd:/usr/bin> ls /usr/bin/clang*
+ _ls /usr/bin/clang /usr/bin/clang++ /usr/bin/clang-6.0 /usr/bin/clang++-6.0 /usr/bin/clang-6.0.0 /usr/bin/clang++-6.0.0 /usr/bin/clang-apply-replacements /usr/bin/clang-apply-replacements-6.0.0 /usr/bin/clang-change-namespace /usr/bin/clang-change-namespace-6.0.0 /usr/bin/clang-check /usr/bin/clang-check-6.0.0 /usr/bin/clang-cl /usr/bin/clang-cl-6.0.0 /usr/bin/clang-cpp /usr/bin/clangd /usr/bin/clangd-6.0.0 /usr/bin/clang-format /usr/bin/clang-format-6.0.0 /usr/bin/clang-format-diff /usr/bin/clang-format-diff-6.0.0 /usr/bin/clang-func-mapping /usr/bin/clang-func-mapping-6.0.0 /usr/bin/clang-import-test /usr/bin/clang-import-test-6.0.0 /usr/bin/clang-include-fixer /usr/bin/clang-include-fixer-6.0.0 /usr/bin/clang-offload-bundler /usr/bin/clang-offload-bundler-6.0.0 /usr/bin/clang-query /usr/bin/clang-query-6.0.0 /usr/bin/clang-refactor /usr/bin/clang-refactor-6.0.0 /usr/bin/clang-rename /usr/bin/clang-rename-6.0.0 /usr/bin/clang-reorder-fields /usr/bin/clang-reorder-fields-6.0.0 /usr/bin/clang-tidy /usr/bin/clang-tidy-6.0.0 /usr/bin/clang-tidy-diff /usr/bin/clang-tidy-diff-6.0.0
+ local 'IFS= '
+ command ls -N --color=tty -T 0 /usr/bin/clang /usr/bin/clang++ /usr/bin/clang-6.0 /usr/bin/clang++-6.0 /usr/bin/clang-6.0.0 /usr/bin/clang++-6.0.0 /usr/bin/clang-apply-replacements /usr/bin/clang-apply-replacements-6.0.0 /usr/bin/clang-change-namespace /usr/bin/clang-change-namespace-6.0.0 /usr/bin/clang-check /usr/bin/clang-check-6.0.0 /usr/bin/clang-cl /usr/bin/clang-cl-6.0.0 /usr/bin/clang-cpp /usr/bin/clangd /usr/bin/clangd-6.0.0 /usr/bin/clang-format /usr/bin/clang-format-6.0.0 /usr/bin/clang-format-diff /usr/bin/clang-format-diff-6.0.0 /usr/bin/clang-func-mapping /usr/bin/clang-func-mapping-6.0.0 /usr/bin/clang-import-test /usr/bin/clang-import-test-6.0.0 /usr/bin/clang-include-fixer /usr/bin/clang-include-fixer-6.0.0 /usr/bin/clang-offload-bundler /usr/bin/clang-offload-bundler-6.0.0 /usr/bin/clang-query /usr/bin/clang-query-6.0.0 /usr/bin/clang-refactor /usr/bin/clang-refactor-6.0.0 /usr/bin/clang-rename /usr/bin/clang-rename-6.0.0 /usr/bin/clang-reorder-fields /usr/bin/clang-reorder-fields-6.0.0 /usr/bin/clang-tidy /usr/bin/clang-tidy-6.0.0 /usr/bin/clang-tidy-diff /usr/bin/clang-tidy-diff-6.0.0
+ ls -N --color=tty -T 0 /usr/bin/clang /usr/bin/clang++ /usr/bin/clang-6.0 /usr/bin/clang++-6.0 /usr/bin/clang-6.0.0 /usr/bin/clang++-6.0.0 /usr/bin/clang-apply-replacements /usr/bin/clang-apply-replacements-6.0.0 /usr/bin/clang-change-namespace /usr/bin/clang-change-namespace-6.0.0 /usr/bin/clang-check /usr/bin/clang-check-6.0.0 /usr/bin/clang-cl /usr/bin/clang-cl-6.0.0 /usr/bin/clang-cpp /usr/bin/clangd /usr/bin/clangd-6.0.0 /usr/bin/clang-format /usr/bin/clang-format-6.0.0 /usr/bin/clang-format-diff /usr/bin/clang-format-diff-6.0.0 /usr/bin/clang-func-mapping /usr/bin/clang-func-mapping-6.0.0 /usr/bin/clang-import-test /usr/bin/clang-import-test-6.0.0 /usr/bin/clang-include-fixer /usr/bin/clang-include-fixer-6.0.0 /usr/bin/clang-offload-bundler /usr/bin/clang-offload-bundler-6.0.0 /usr/bin/clang-query /usr/bin/clang-query-6.0.0 /usr/bin/clang-refactor /usr/bin/clang-refactor-6.0.0 /usr/bin/clang-rename /usr/bin/clang-rename-6.0.0 /usr/bin/clang-reorder-fields /usr/bin/clang-reorder-fields-6.0.0 /usr/bin/clang-tidy /usr/bin/clang-tidy-6.0.0 /usr/bin/clang-tidy-diff /usr/bin/clang-tidy-diff-6.0.0
/usr/bin/clang                           /usr/bin/clang-cpp                  /usr/bin/clang-offload-bundler-6.0.0
/usr/bin/clang++                         /usr/bin/clangd                     /usr/bin/clang-query
/usr/bin/clang-6.0                       /usr/bin/clangd-6.0.0               /usr/bin/clang-query-6.0.0
/usr/bin/clang++-6.0                     /usr/bin/clang-format               /usr/bin/clang-refactor
/usr/bin/clang-6.0.0                     /usr/bin/clang-format-6.0.0         /usr/bin/clang-refactor-6.0.0
/usr/bin/clang++-6.0.0                   /usr/bin/clang-format-diff          /usr/bin/clang-rename
/usr/bin/clang-apply-replacements        /usr/bin/clang-format-diff-6.0.0    /usr/bin/clang-rename-6.0.0
/usr/bin/clang-apply-replacements-6.0.0  /usr/bin/clang-func-mapping         /usr/bin/clang-reorder-fields
/usr/bin/clang-change-namespace          /usr/bin/clang-func-mapping-6.0.0   /usr/bin/clang-reorder-fields-6.0.0
/usr/bin/clang-change-namespace-6.0.0    /usr/bin/clang-import-test          /usr/bin/clang-tidy
/usr/bin/clang-check                     /usr/bin/clang-import-test-6.0.0    /usr/bin/clang-tidy-6.0.0
/usr/bin/clang-check-6.0.0               /usr/bin/clang-include-fixer        /usr/bin/clang-tidy-diff
/usr/bin/clang-cl                        /usr/bin/clang-include-fixer-6.0.0  /usr/bin/clang-tidy-diff-6.0.0
/usr/bin/clang-cl-6.0.0                  /usr/bin/clang-offload-bundler
++ ppwd
++ true
wellywu@linux-vfxd:/usr/bin> 
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --config clang
+ sudo update-alternatives --config clang
[sudo] password for root: 
There is only one alternative in link group clang (providing /usr/bin/clang): /usr/bin/clang-6.0.0
Nothing to configure.
++ ppwd
++ true
wellywu@linux-vfxd:/usr/bin> clang --version
+ clang --version
clang version 6.0.0 (tags/RELEASE_600/final 326550)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
++ ppwd
++ true
wellywu@linux-vfxd:/usr/bin>

I posted this beforehand, but it looks like clang version 6.0.0 is installed and it is currently selected. So, do I focus on LLVM and get it to 6.0.0 now? Anything else that I need to select?

Again, I apologize for my noobiness, but with Ubuntu, I probably wouldn’t have to ask as many newbie questions. OpenSuSE Tumbleweed works just fine for my mid-2016 Acer Predator 17X (GX-791) and mid-2017 ASUS ROG STRIX GL702ZC gaming notebook PCs. 3D graphics hardware acceleration is enabled on both gaming notebook PCs. It’s just that AMD RX Vega 64 is relatively new and not a lot of Microsoft or GNU/Linux customers own such a high-end GPU at this time due to high pricing and low availability thanks to cryptocurrency mining.

Thank you doscott for your continued patience and help thus far. You are doing me a favor and I am grateful.

It looks like I have to focus on llvm with update-alternatives and setting the priorities correctly. I don’t understand the difference between master and slave relationship among llvm files and priorities yet. Can someone tell me what I need to type in when using update-alternatives and llvm to get it to select 6.0.0 automatically?

wellywu@linux-vfxd:/usr/bin> llvm-config --prefix --version
+ llvm-config --prefix --version
+ export TEXTDOMAINDIR=/usr/share/locale
+ TEXTDOMAINDIR=/usr/share/locale
+ export TEXTDOMAIN=command-not-found
+ TEXTDOMAIN=command-not-found
+ local cmd state rest
+ local -i pid ppid pgrp session tty_nr tpgid
+ test -n '' -o '!' -t 1
+ read pid cmd state ppid pgrp session tty_nr tpgid rest
+ test 10666 -eq 10845
+ test -x /usr/sbin/llvm-config -o -x /sbin/llvm-config
+ test -n ''
+ echo -e 'If '\''llvm-config'\'' is not a typo you can use command-not-found to lookup the package that contains it, like this:
    cnf llvm-config'
If 'llvm-config' is not a typo you can use command-not-found to lookup the package that contains it, like this:
    cnf llvm-config
+ return 127
wellywu@linux-vfxd:/usr/bin>

What does this command output mean right now?

Try downloading the script from

https://gist.github.com/RaymondKroon/da6650bc72630b963a44

Use a simple name like update.sh. Then edit it to have right version numbers.

then do a

sudo chmod +x update.sh

then run it:
./update.sh

i don’t use these packages so I don’t know if any files have been added or dropped since the script was written.

https://askubuntu.com/questions/907873/how-to-set-clang-3-9-as-the-default-in-zesty

I found this Ubuntu article and I am starting to understand how to use update-alternatives. How do I take this information and use update-alternatives with the master slave priorities for llvm 6.0.0?

#!/usr/bin/env sh

sudo update-alternatives --install \
        /usr/bin/llvm-config       llvm-config      /usr/bin/llvm-config-3.6  200 \
--slave /usr/bin/llvm-ar           llvm-ar          /usr/bin/llvm-ar-3.6 \
--slave /usr/bin/llvm-as           llvm-as          /usr/bin/llvm-as-3.6 \
--slave /usr/bin/llvm-bcanalyzer   llvm-bcanalyzer  /usr/bin/llvm-bcanalyzer-3.6 \
--slave /usr/bin/llvm-cov          llvm-cov         /usr/bin/llvm-cov-3.6 \
--slave /usr/bin/llvm-diff         llvm-diff        /usr/bin/llvm-diff-3.6 \
--slave /usr/bin/llvm-dis          llvm-dis         /usr/bin/llvm-dis-3.6 \
--slave /usr/bin/llvm-dwarfdump    llvm-dwarfdump   /usr/bin/llvm-dwarfdump-3.6 \
--slave /usr/bin/llvm-extract      llvm-extract     /usr/bin/llvm-extract-3.6 \
--slave /usr/bin/llvm-link         llvm-link        /usr/bin/llvm-link-3.6 \
--slave /usr/bin/llvm-mc           llvm-mc          /usr/bin/llvm-mc-3.6 \
--slave /usr/bin/llvm-mcmarkup     llvm-mcmarkup    /usr/bin/llvm-mcmarkup-3.6 \
--slave /usr/bin/llvm-nm           llvm-nm          /usr/bin/llvm-nm-3.6 \
--slave /usr/bin/llvm-objdump      llvm-objdump     /usr/bin/llvm-objdump-3.6 \
--slave /usr/bin/llvm-ranlib       llvm-ranlib      /usr/bin/llvm-ranlib-3.6 \
--slave /usr/bin/llvm-readobj      llvm-readobj     /usr/bin/llvm-readobj-3.6 \
--slave /usr/bin/llvm-rtdyld       llvm-rtdyld      /usr/bin/llvm-rtdyld-3.6 \
--slave /usr/bin/llvm-size         llvm-size        /usr/bin/llvm-size-3.6 \
--slave /usr/bin/llvm-stress       llvm-stress      /usr/bin/llvm-stress-3.6 \
--slave /usr/bin/llvm-symbolizer   llvm-symbolizer  /usr/bin/llvm-symbolizer-3.6 \
--slave /usr/bin/llvm-tblgen       llvm-tblgen      /usr/bin/llvm-tblgen-3.6


sudo update-alternatives --install \
        /usr/bin/llvm-config       llvm-config      /usr/bin/llvm-config-3.8  200 \
--slave /usr/bin/llvm-ar           llvm-ar          /usr/bin/llvm-ar-3.8 \
--slave /usr/bin/llvm-as           llvm-as          /usr/bin/llvm-as-3.8 \
--slave /usr/bin/llvm-bcanalyzer   llvm-bcanalyzer  /usr/bin/llvm-bcanalyzer-3.8 \
--slave /usr/bin/llvm-cov          llvm-cov         /usr/bin/llvm-cov-3.8 \
--slave /usr/bin/llvm-diff         llvm-diff        /usr/bin/llvm-diff-3.8 \
--slave /usr/bin/llvm-dis          llvm-dis         /usr/bin/llvm-dis-3.8 \
--slave /usr/bin/llvm-dwarfdump    llvm-dwarfdump   /usr/bin/llvm-dwarfdump-3.8 \
--slave /usr/bin/llvm-extract      llvm-extract     /usr/bin/llvm-extract-3.8 \
--slave /usr/bin/llvm-link         llvm-link        /usr/bin/llvm-link-3.8 \
--slave /usr/bin/llvm-mc           llvm-mc          /usr/bin/llvm-mc-3.8 \
--slave /usr/bin/llvm-mcmarkup     llvm-mcmarkup    /usr/bin/llvm-mcmarkup-3.8 \
--slave /usr/bin/llvm-nm           llvm-nm          /usr/bin/llvm-nm-3.8 \
--slave /usr/bin/llvm-objdump      llvm-objdump     /usr/bin/llvm-objdump-3.8 \
--slave /usr/bin/llvm-ranlib       llvm-ranlib      /usr/bin/llvm-ranlib-3.8 \
--slave /usr/bin/llvm-readobj      llvm-readobj     /usr/bin/llvm-readobj-3.8 \
--slave /usr/bin/llvm-rtdyld       llvm-rtdyld      /usr/bin/llvm-rtdyld-3.8 \
--slave /usr/bin/llvm-size         llvm-size        /usr/bin/llvm-size-3.8 \
--slave /usr/bin/llvm-stress       llvm-stress      /usr/bin/llvm-stress-3.8 \
--slave /usr/bin/llvm-symbolizer   llvm-symbolizer  /usr/bin/llvm-symbolizer-3.8 \
--slave /usr/bin/llvm-tblgen       llvm-tblgen      /usr/bin/llvm-tblgen-3.8

sudo update-alternatives \
      --install /usr/bin/clang   clang   /usr/bin/clang-3.8     50 \
      --slave   /usr/bin/clang++ clang++ /usr/bin/clang++-3.8  \
      --slave   /usr/bin/lldb    lldb    /usr/bin/lldb-3.8 \
      --slave   /usr/bin/lldb-server lldb-server /usr/bin/lldb-server-3.8
      
sudo update-alternatives \
      --install /usr/bin/clang   clang   /usr/bin/clang-3.6     50 \
      --slave   /usr/bin/clang++ clang++ /usr/bin/clang++-3.6  \
      --slave   /usr/bin/lldb    lldb    /usr/bin/lldb-3.6 \
      --slave   /usr/bin/lldb-server lldb-server /usr/bin/lldb-server-3.6

The update.sh file is missing from this .ZIP archive. Should I proceed to hand type this in?

Obviously, I would substitute it with LLVM 6.0.0 files, correct?

wellywu@linux-vfxd:~/Downloads> ls
da6650bc72630b963a44-8aaf6bf705266155b426694e7367fcfe7ebcea8d      llvm-update-alternatives
da6650bc72630b963a44-8aaf6bf705266155b426694e7367fcfe7ebcea8d.zip  temp
wellywu@linux-vfxd:~/Downloads> sudo chmod +x update.sh
[sudo] password for root: 
chmod: cannot access 'update.sh': No such file or directory
wellywu@linux-vfxd:~/Downloads> sudo ./update.sh
sudo: ./update.sh: command not found
wellywu@linux-vfxd:~/Downloads> ls
da6650bc72630b963a44-8aaf6bf705266155b426694e7367fcfe7ebcea8d      llvm-update-alternatives
da6650bc72630b963a44-8aaf6bf705266155b426694e7367fcfe7ebcea8d.zip  temp
wellywu@linux-vfxd:~/Downloads> sudo chmod +x llvm-update-alternatives 
wellywu@linux-vfxd:~/Downloads> ls
da6650bc72630b963a44-8aaf6bf705266155b426694e7367fcfe7ebcea8d      llvm-update-alternatives
da6650bc72630b963a44-8aaf6bf705266155b426694e7367fcfe7ebcea8d.zip  temp
wellywu@linux-vfxd:~/Downloads> sudo ./llvm-update-alternatives 
update-alternatives: error: alternative path /usr/bin/llvm-config-3.6 doesn't exist
update-alternatives: error: alternative path /usr/bin/llvm-config-3.8 doesn't exist
update-alternatives: error: alternative path /usr/bin/clang-3.8 doesn't exist
update-alternatives: error: alternative path /usr/bin/clang-3.6 doesn't exist
wellywu@linux-vfxd:~/Downloads> clear
wellywu@linux-vfxd:~/Downloads> sudo update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-6.0.0 200
[sudo] password for root: 
update-alternatives: error: alternative path /usr/bin/llvm-config-6.0.0 doesn't exist
wellywu@linux-vfxd:~/Downloads> ls llvm*
llvm-update-alternatives
wellywu@linux-vfxd:~/Downloads> cd /usr/bin
wellywu@linux-vfxd:/usr/bin> ls llvm*
llvm-ar                llvm-cxxfilt          llvm-lib-5.0.1         llvm-nm-6.0.0          llvm-rtdyld-5.0.1
llvm-ar-5.0.1          llvm-cxxfilt-5.0.1    llvm-lib-6.0.0         llvm-objcopy-6.0.0     llvm-rtdyld-6.0.0
llvm-ar-6.0.0          llvm-cxxfilt-6.0.0    llvm-link              llvm-objdump           llvm-size
llvm-as                llvm-diff             llvm-link-5.0.1        llvm-objdump-5.0.1     llvm-size-5.0.1
llvm-as-5.0.1          llvm-diff-5.0.1       llvm-link-6.0.0        llvm-objdump-6.0.0     llvm-size-6.0.0
llvm-as-6.0.0          llvm-diff-6.0.0       llvm-lto               llvm-opt-report        llvm-split
llvm-bcanalyzer        llvm-dis              llvm-lto2              llvm-opt-report-5.0.1  llvm-split-5.0.1
llvm-bcanalyzer-5.0.1  llvm-dis-5.0.1        llvm-lto2-5.0.1        llvm-opt-report-6.0.0  llvm-split-6.0.0
llvm-bcanalyzer-6.0.0  llvm-dis-6.0.0        llvm-lto2-6.0.0        llvm-pdbutil           llvm-stress
llvm-cat               llvm-dlltool          llvm-lto-5.0.1         llvm-pdbutil-5.0.1     llvm-stress-5.0.1
llvm-cat-5.0.1         llvm-dlltool-5.0.1    llvm-lto-6.0.0         llvm-pdbutil-6.0.0     llvm-stress-6.0.0
llvm-cat-6.0.0         llvm-dlltool-6.0.0    llvm-mc                llvm-profdata          llvm-strings
llvm-cfi-verify-6.0.0  llvm-dsymutil         llvm-mc-5.0.1          llvm-profdata-5.0.1    llvm-strings-5.0.1
llvm-cov               llvm-dsymutil-5.0.1   llvm-mc-6.0.0          llvm-profdata-6.0.0    llvm-strings-6.0.0
llvm-cov-5.0.1         llvm-dsymutil-6.0.0   llvm-mcmarkup          llvm-ranlib            llvm-symbolizer
llvm-cov-6.0.0         llvm-dwarfdump        llvm-mcmarkup-5.0.1    llvm-ranlib-5.0.1      llvm-symbolizer-5.0.1
llvm-c-test            llvm-dwarfdump-5.0.1  llvm-mcmarkup-6.0.0    llvm-ranlib-6.0.0      llvm-symbolizer-6.0.0
llvm-c-test-5.0.1      llvm-dwarfdump-6.0.0  llvm-modextract        llvm-rc-6.0.0          llvm-tblgen
llvm-c-test-6.0.0      llvm-dwp              llvm-modextract-5.0.1  llvm-readelf           llvm-tblgen-5.0.1
llvm-cvtres            llvm-dwp-5.0.1        llvm-modextract-6.0.0  llvm-readelf-5.0.1     llvm-tblgen-6.0.0
llvm-cvtres-5.0.1      llvm-dwp-6.0.0        llvm-mt                llvm-readelf-6.0.0     llvm-xray
llvm-cvtres-6.0.0      llvm-extract          llvm-mt-5.0.1          llvm-readobj           llvm-xray-5.0.1
llvm-cxxdump           llvm-extract-5.0.1    llvm-mt-6.0.0          llvm-readobj-5.0.1     llvm-xray-6.0.0
llvm-cxxdump-5.0.1     llvm-extract-6.0.0    llvm-nm                llvm-readobj-6.0.0
llvm-cxxdump-6.0.0     llvm-lib              llvm-nm-5.0.1          llvm-rtdyld
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-6.0.0 200
update-alternatives: error: alternative path /usr/bin/llvm-config-6.0.0 doesn't exist
wellywu@linux-vfxd:/usr/bin> sudo update-alternatives --install --slave /usr/bin/llvm-ar llvmar /usr/bin/llvm-ar-6.0.0
update-alternatives: priority must be an integer

Use 'update-alternatives --help' for program usage information.
wellywu@linux-vfxd:/usr/bin> 

llvm-config-x.y does not exist in /usr/bin. I tried to continue after that error and I wound up with another error.

Should I give up the ghost and switch back to Microsoft Windows 10 Pro 64 bit on my gaming desktop PC or is there another way to use update-alternatives to select LLVM 6.0.0?

At this point I think you should:

sudo zypper rm llvm5 clang5

That will leave you withe the llvm6 and clang6 packages.

Another option could be to use update-alternatives.
  #!/bin/bash -ex

DIR=/opt/clang+llvm-[VERSION]/bin

sudo update-alternatives \
--install /usr/bin/clang        clang       "$DIR/clang" 100 \
--slave   /usr/bin/clang++      clang++     "$DIR/clang++"
  Then use this command if more then 1 version is installed.
  sudo update-alternatives --config clang
  Check if the system is correctly configured.
  llvm-config --prefix --version
clang --version

This looks interesting, but would it be applicable to OpenSuSE Tumbleweed as well since I found it for Ubuntu? By setting a DIR and path to the Clang and LLVM 6.0.0 version in /bin, could I just follow the sudo update-alternatives for clang and clang++ and then check the llvm-config prefix and version to see if it shows up as 6.0.0?

Am I getting closer here?

wellywu@linux-vfxd:/usr/bin> sudo zypper rm llvm5 clang5
[sudo] password for root: 
Loading repository data...
Reading installed packages...
'clang5' not found in package names. Trying capabilities.
No provider of 'clang5' found.
Resolving package dependencies...

The following 2 packages are going to be REMOVED:
  llvm llvm5

2 packages to remove.
After the operation, 7.6 MiB will be freed.
Continue? [y/n/...? shows all options] (y): y
(1/2) Removing llvm-5.0.1-3.1.x86_64 ...................................................................................[done]
(2/2) Removing llvm5-5.0.1-5.1.x86_64 ..................................................................................[done]
Additional rpm output:
update-alternatives: warning: alternative /usr/bin/llvm-ar-5.0.1 (part of link group llvm-ar) doesn't exist; removing from list of alternatives                                                                                                             
update-alternatives: warning: /etc/alternatives/llvm-ar is dangling; it will be updated with best choice                      
update-alternatives: using /usr/bin/llvm-ar-6.0.0 to provide /usr/bin/llvm-ar (llvm-ar) in auto mode                          


Installation has completed with error.
wellywu@linux-vfxd:/usr/bin> clang --version
clang version 6.0.0 (tags/RELEASE_600/final 326550)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
wellywu@linux-vfxd:/usr/bin> llvm-config --prefix --version
If 'llvm-config' is not a typo you can use command-not-found to lookup the package that contains it, like this:
    cnf llvm-config
wellywu@linux-vfxd:/usr/bin> sudo zypper in llvm-config
Loading repository data...
Reading installed packages...
Package 'llvm-config' not found.
Resolving package dependencies...

Nothing to do.
wellywu@linux-vfxd:/usr/bin> glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: VMware, Inc. (0xffffffff)
    Device: llvmpipe (LLVM 5.0, 128 bits) (0xffffffff)
    Version: 18.0.0
    Accelerated: no
    Video memory: 32156MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 3.3
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.0
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 5.0, 128 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.0.0
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 18.0.0
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.0.0
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

wellywu@linux-vfxd:/usr/bin>

I removed llvm5, but clang5 was not found. I posted another code dump. Now what? How do I check llvm version without llvm-config? I tried to install llvm-config, but it’s not found in the software repositories. Should I consider restarting my gaming desktop PC and crossing my fingers? Is there something else that I should do prior to a restart? Hopefully, my desktop operating system will be stable, right?

I thought earlier in the thread you had 5 and 6 installed. But now you should only have 6 installed for each, correct?

In any case it won’t hurt to

sudo zypper in llvm6 clang6

and you should be good to go.