devel/llvm38 install seems to be missing files (e.g., FileCheck)

David Wolfskill david at catwhisker.org
Thu Nov 3 12:50:16 UTC 2016


After seeing that lang/rust failed to build again today (it had also
failed yesterday), I decided to actually check the typescript file (from
the portmaster run) to see if I could figure out what was wrong.

Here's a salient excerpt:

| ...
| ===>  Cleaning for rust-1.12.1
| ===>  License APACHE20  MIT accepted by the user
| ===>  Found saved configuration for rust-1.9.0_1
| ===>   rust-1.12.1 depends on file: /usr/local/sbin/pkg - found
| ===> Fetching all distfiles required by rust-1.12.1 for building
| ===>  Extracting for rust-1.12.1
| => SHA256 Checksum OK for rustc-1.12.1-src.tar.gz.
| => SHA256 Checksum OK for rustc-1.11.0-x86_64-unknown-freebsd.tar.gz.
| /bin/ln -sf /common/ports/distfiles//rustc-1.11.0-x86_64-unknown-freebsd.tar.gz 
| /common/ports/lang/rust/work/rustc-1.12.1/dl
| ===>  Patching for rust-1.12.1
| ===>  Applying FreeBSD patches for rust-1.12.1
| ===>   rust-1.12.1 depends on executable: cmake - found
| ===>   rust-1.12.1 depends on file: /usr/local/llvm38/bin/FileCheck - not found
| ===>  Installing for llvm38-3.8.1_5
| ===>   llvm38-3.8.1_5 depends on file: /usr/local/bin/python2.7 - found
| ===>   llvm38-3.8.1_5 depends on package: perl5>=5.24<5.25 - found
| ===>   llvm38-3.8.1_5 depends on shared library: libedit.so.0 - found (/usr/local/lib/libedit.so.0)
| ===>  Checking if llvm38 already installed
| ===>   llvm38-3.8.1_5 is already installed
|       You may wish to ``make deinstall'' and install this port again
|       by ``make reinstall'' to upgrade it properly.
|       If you really wish to overwrite the old port of llvm38
|       without deleting it first, set the variable "FORCE_PKG_REGISTER"
|       in your environment or the "make install" command line.
| *** Error code 1
| ....

Oh.  Well...  So I checked, and... yes, devel/llvm38 is installed.  And
while /usr/local/llvm38/bin exists and has several entries, none of them
is named "FileCheck":

g1-252(11.0-S)[4] ls -lTa /usr/local/llvm38/bin/
total 547144
drwxr-xr-x  2 root  wheel      1536 Oct 23 04:51:57 2016 .
drwxr-xr-x  7 root  wheel       512 Oct 23 04:52:04 2016 ..
-rwxr-xr-x  1 root  wheel  13138520 Oct 23 04:51:36 2016 bugpoint
-rwxr-xr-x  1 root  wheel    100664 Oct 23 04:51:26 2016 c-index-test
lrwxr-xr-x  1 root  wheel         9 Oct 23 04:51:25 2016 clang -> clang-3.8
-rwxr-xr-x  1 root  wheel  59401712 Oct 23 04:51:26 2016 clang-3.8
-rwxr-xr-x  1 root  wheel   1585752 Oct 23 04:51:29 2016 clang-apply-replacements
-rwxr-xr-x  1 root  wheel  45048296 Oct 23 04:51:28 2016 clang-check
lrwxr-xr-x  1 root  wheel         5 Oct 23 04:51:26 2016 clang-cl -> clang
-rwxr-xr-x  1 root  wheel   1601648 Oct 23 04:51:26 2016 clang-format
-rwxr-xr-x  1 root  wheel  16670808 Oct 23 04:51:30 2016 clang-query
-rwxr-xr-x  1 root  wheel  15070640 Oct 23 04:51:29 2016 clang-rename
-r-xr-xr-x  1 root  wheel    894224 Oct 23 04:51:45 2016 clang-tblgen
-rwxr-xr-x  1 root  wheel  19523696 Oct 23 04:51:30 2016 clang-tidy
lrwxr-xr-x  1 root  wheel         5 Oct 23 04:51:26 2016 clang++ -> clang
-rwxr-xr-x  1 root  wheel     18099 Jun 19 01:23:10 2015 git-clang-format
lrwxr-xr-x  1 root  wheel         3 Oct 23 04:51:32 2016 ld.lld -> lld
-rwxr-xr-x  1 root  wheel  32942112 Oct 23 04:51:38 2016 llc
-rwxr-xr-x  1 root  wheel  37288720 Oct 23 04:51:32 2016 lld
lrwxr-xr-x  1 root  wheel         3 Oct 23 04:51:32 2016 lld-link -> lld
lrwxr-xr-x  1 root  wheel        10 Oct 23 04:51:35 2016 lldb -> lldb-3.8.1
-rwxr-xr-x  1 root  wheel     46168 Oct 23 04:51:35 2016 lldb-3.8.1
-rwxr-xr-x  1 root  wheel    122752 Oct 23 04:51:35 2016 lldb-argdumper
lrwxr-xr-x  1 root  wheel        13 Oct 23 04:51:35 2016 lldb-mi -> lldb-mi-3.8.1
-rwxr-xr-x  1 root  wheel    611480 Oct 23 04:51:35 2016 lldb-mi-3.8.1
lrwxr-xr-x  1 root  wheel        17 Oct 23 04:51:35 2016 lldb-server -> lldb-server-3.8.1
-rwxr-xr-x  1 root  wheel  23847256 Oct 23 04:51:35 2016 lldb-server-3.8.1
-rwxr-xr-x  1 root  wheel  16361392 Oct 23 04:51:39 2016 lli
-rwxr-xr-x  1 root  wheel  12055496 Oct 23 04:51:22 2016 llvm-ar
-rwxr-xr-x  1 root  wheel   2447984 Oct 23 04:51:39 2016 llvm-as
-rwxr-xr-x  1 root  wheel    190760 Oct 23 04:51:39 2016 llvm-bcanalyzer
-rwxr-xr-x  1 root  wheel  27517160 Oct 23 04:51:40 2016 llvm-c-test
-rwxr-xr-x  1 root  wheel    180752 Oct 23 04:51:22 2016 llvm-config
-rwxr-xr-x  1 root  wheel   2551408 Oct 23 04:51:40 2016 llvm-cov
-rwxr-xr-x  1 root  wheel   2371088 Oct 23 04:51:40 2016 llvm-cxxdump
-rwxr-xr-x  1 root  wheel   2285968 Oct 23 04:51:40 2016 llvm-diff
-rwxr-xr-x  1 root  wheel   1839320 Oct 23 04:51:40 2016 llvm-dis
-rwxr-xr-x  1 root  wheel  26568032 Oct 23 04:51:37 2016 llvm-dsymutil
-rwxr-xr-x  1 root  wheel   2512784 Oct 23 04:51:40 2016 llvm-dwarfdump
-rwxr-xr-x  1 root  wheel  26197712 Oct 23 04:51:41 2016 llvm-dwp
-rwxr-xr-x  1 root  wheel   2592368 Oct 23 04:51:41 2016 llvm-extract
lrwxr-xr-x  1 root  wheel         7 Oct 23 04:51:22 2016 llvm-lib -> llvm-ar
-rwxr-xr-x  1 root  wheel   2951672 Oct 23 04:51:41 2016 llvm-link
-rwxr-xr-x  1 root  wheel  32045168 Oct 23 04:51:41 2016 llvm-lto
-rwxr-xr-x  1 root  wheel  12662536 Oct 23 04:51:42 2016 llvm-mc
-rwxr-xr-x  1 root  wheel    177176 Oct 23 04:51:42 2016 llvm-mcmarkup
-rwxr-xr-x  1 root  wheel  12039160 Oct 23 04:51:42 2016 llvm-nm
-rwxr-xr-x  1 root  wheel  12279448 Oct 23 04:51:42 2016 llvm-objdump
-rwxr-xr-x  1 root  wheel    297040 Oct 23 04:51:43 2016 llvm-pdbdump
-rwxr-xr-x  1 root  wheel    621056 Oct 23 04:51:22 2016 llvm-profdata
lrwxr-xr-x  1 root  wheel         7 Oct 23 04:51:22 2016 llvm-ranlib -> llvm-ar
-rwxr-xr-x  1 root  wheel   2729304 Oct 23 04:51:43 2016 llvm-readobj
-rwxr-xr-x  1 root  wheel  10234248 Oct 23 04:51:43 2016 llvm-rtdyld
-rwxr-xr-x  1 root  wheel   2379832 Oct 23 04:51:43 2016 llvm-size
-rwxr-xr-x  1 root  wheel   2544248 Oct 23 04:51:43 2016 llvm-split
-rwxr-xr-x  1 root  wheel   2125024 Oct 23 04:51:43 2016 llvm-stress
-rwxr-xr-x  1 root  wheel   2558336 Oct 23 04:51:43 2016 llvm-symbolizer
-rwxr-xr-x  1 root  wheel   1959248 Oct 23 04:51:19 2016 llvm-tblgen
-rwxr-xr-x  1 root  wheel  15014488 Oct 23 04:51:29 2016 modularize
-rwxr-xr-x  1 root  wheel   2492504 Oct 23 04:51:43 2016 obj2yaml
-rwxr-xr-x  1 root  wheel  34292472 Oct 23 04:51:44 2016 opt
-rwxr-xr-x  1 root  wheel  11953032 Oct 23 04:51:44 2016 sancov
-rwxr-xr-x  1 root  wheel     52445 Nov 13 12:34:15 2015 scan-build
-rwxr-xr-x  1 root  wheel      4504 Dec 21 04:19:13 2015 scan-view
-rwxr-xr-x  1 root  wheel   2729176 Oct 23 04:51:44 2016 verify-uselistorder
-rwxr-xr-x  1 root  wheel    472184 Oct 23 04:51:44 2016 yaml2obj
g1-252(11.0-S)[5] 

So I checked the configure options:

g1-252(11.0-S)[1] make -C /usr/ports/devel/llvm38 showconfig
===> The following configuration options are available for llvm38-3.8.1_5:
     CLANG=on: Build clang
     COMPILER_RT=on: Sanitizer libraries
     DOCS=on: Build and/or install documentation
     EXTRAS=on: Extra clang tools
     GOLD=on: Build the LLVM Gold plugin for LTO
     LIT=on: Install lit and FileCheck test tools
     LLD=on: Install lld, the LLVM linker
     LLDB=on: Install lldb, the LLVM debugger (ignored on 9.x)
     OPENMP=on: Install libomp, the LLVM OpenMP runtime library
===> Use 'make config' to modify these settings
g1-252(11.0-S)[2] 

Looks to me as if "everything is on."

I then ran "portmaster devel/llvm38" to re-build and -install it
fresh; that succeeded, but there's still nothing named "FileCheck"
in /usr/local/llvm38/bin.

This was done running:
FreeBSD g1-252.catwhisker.org 11.0-STABLE FreeBSD 11.0-STABLE #150  r308245M/308250:1100506: Thu Nov  3 04:08:09 PDT 2016     root at g1-252.catwhisker.org:/common/S1/obj/usr/src/sys/CANARY  amd64

with a /usr/ports that is an SVN working copy:
g1-252(11.0-S)[3] svn info /usr/ports/
Path: /usr/ports
Working Copy Root Path: /usr/ports
URL: file:///svn/freebsd/ports/head
Relative URL: ^/head
Repository Root: file:///svn/freebsd/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 425197
Node Kind: directory
Schedule: normal
Last Changed Author: jhale
Last Changed Rev: 425197
Last Changed Date: 2016-11-03 02:18:03 -0700 (Thu, 03 Nov 2016)

g1-252(11.0-S)[4] 


I see that FileCheck does show up in pkg-plist:
g1-252(11.0-S)[4] grep FileCheck /usr/ports/devel/llvm38/pkg-plist 
%%LIT%%bin/FileCheck38
%%LIT%%llvm38/bin/FileCheck
g1-252(11.0-S)[5] 

In reviewing the re-build/install of llvm38, I see that the
"deinstallation" phase (for the previously-installed version)
mentions quite a few files that were "missing":

| ...
| Installed packages to be REMOVED:
|         llvm38-3.8.1_5
| 
| Number of packages to be removed: 1
| 
| The operation will free 975 MiB.
| [1/1] Deinstalling llvm38-3.8.1_5...
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/argdumper38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang++38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang-apply-replacements38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang-check38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang-cpp38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang-format38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang-modernize38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang-query38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang-rename38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang-tblgen38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang-tidy38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/clang38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llc38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/lld38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/lldb-mi38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/lldb-server38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/lldb38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/lli38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-ar38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-as38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-bcanalyzer38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-config38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-cov38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-diff38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-dis38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-dwarfdump38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-extract38
| [1/1] Deleting files for llvm38-3.8.1_5:   0%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-link38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-lit38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-mc38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-mcmarkup38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-nm38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-objdump38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-profdata38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-ranlib38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-readobj38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-rtdyld38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-size38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-split38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-stress38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-symbolizer38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/llvm-tblgen38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/macho-dump38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/modularize38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/opt38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/scan-build38
| [1/1] Deleting files for llvm38-3.8.1_5:   1%
| llvm38-3.8.1_5: missing file /usr/local/bin/scan-view38
| [1/1] Deleting files for llvm38-3.8.1_5:   2%
| llvm38-3.8.1_5: missing file /usr/local/llvm38/bin/FileCheck
| [1/1] Deleting files for llvm38-3.8.1_5:   2%
| llvm38-3.8.1_5: missing file /usr/local/llvm38/bin/clang-cpp
| [1/1] Deleting files for llvm38-3.8.1_5:   2%
| llvm38-3.8.1_5: missing file /usr/local/llvm38/bin/lit
| [1/1] Deleting files for llvm38-3.8.1_5:   3%
| llvm38-3.8.1_5: missing file /usr/local/llvm38/bin/llvm-lit
| [1/1] Deleting files for llvm38-3.8.1_5: 100%
| 
| ===>  Installing for llvm38-3.8.1_5
| ....

So around this point, I'm pretty thoroughly confused about what
devel/llvm38 is actually supposed to be providing and why its
installation doesn't seem to be providing parts of it.

May I please have some guidance?

Thanks!

Peace,
david
-- 
David H. Wolfskill				david at catwhisker.org
Those who would murder in the name of God or prophet are blasphemous cowards.

See http://www.catwhisker.org/~david/publickey.gpg for my public key.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 603 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20161103/65dd3155/attachment.sig>


More information about the freebsd-ports mailing list