hard links in llvm39 and binutils

Brooks Davis brooks at freebsd.org
Fri Jan 27 07:58:11 UTC 2017


On Thu, Jan 26, 2017 at 10:18:19AM -0800, john at TheUsGroup.com wrote:
> In your message you wrote:
> > ...
> >On Wed, Jan 25, 2017 at 10:54:27PM -0800, john--- via freebsd-ports
> >wrote: > Both llvm39 and binutils failed to install recently because
> >they both have > hard links that cross directories. On this machine,
> >those directories, both > in /usr/local on on different zfs filesystems.
> >> > I've had this directory structure for several years without issue,
> >so this use > of hard links is new. > > Is this use of hard links
> >something I should expect to see looking forward or > is it an error?
> >
> >Some cross directory hardlinks in llvm## have been around since at least
> >October 2013. Without a specific example I can't say more.
> >
> >-- Brooks
> >
> 
> Here's one example:
> 
> # ls -il /usr/ports/devel/llvm39/work/stage/usr/local/llvm39/bin/lit
> 4797459 -r-xr-xr-x  4 root  wheel  82 Jan 24 10:17 lit
> 
> # ls -il /usr/ports/devel/llvm39/work/stage/usr/local/bin/llvm-lit39
> 4797459 -r-xr-xr-x  4 root  wheel  82 Jan 24 10:17 llvm-lit39
> 
> As I stated above llvm37 and the previous version of binutils both installed
> without issue.
> 
> # pkg info llvm\*
> llvm33-3.3_10
> llvm34-3.4.2_1
> llvm35-3.5.2
> llvm36-3.6.2_2
> llvm37-3.7.1_3
> 
> # pkg info llvm37
> Name           : llvm37
> Version        : 3.7.1_3
> Installed on   : Fri Sep 23 09:09:32 2016 PDT
> Origin         : devel/llvm37
> Architecture   : freebsd:10:x86:64
> Prefix         : /usr/local
> Categories     : devel lang
> Licenses       : 
> Maintainer     : brooks at FreeBSD.org
> WWW            : http://llvm.org/
> Comment        : LLVM and Clang
> Options        :
>         CLANG          : on
>         COMPILER_RT    : on
>         DOCS           : off
>         EXTRAS         : on
>         GOLD           : on
>         LIT            : on
> 
> Checking /usr/local/llvm37/bin shows no file named "lit", so I assume these
> hard links came with files that didn't exist in llvm37.
> 
> John Theus
> TheUs Group
>         LLD            : on
>         LLDB           : on
>         OPENMP         : on
> 

I can only guess that you don't have them because an older version of pkg
failed to tell you that they weren't installed because llvm37 definitely
does create such a link in the port.  Something has definitely gone wrong
on your system, but I'm at a lost a to what it it.  Here's what I'd
expect to see:

$ ls -li /usr/local/bin/*lit*37 /usr/local/llvm37/bin/*lit*
1580744 -r-xr-xr-x  4 root  wheel  82 Dec 27 05:29 /usr/local/bin/lit37
1580744 -r-xr-xr-x  4 root  wheel  82 Dec 27 05:29 /usr/local/bin/llvm-lit37
1580744 -r-xr-xr-x  4 root  wheel  82 Dec 27 05:29 /usr/local/llvm37/bin/lit
1580744 -r-xr-xr-x  4 root  wheel  82 Dec 27 05:29 /usr/local/llvm37/bin/llvm-lit

That being said, I could switch them to symlinks.  In general I don't
like this as a precedent.  I'm definitely not willing to support arbitrary
filesystem hierarchies so if we're going to do this, we need some sort
of principles for splits that we're willing to support.

-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20170127/d2f48009/attachment.sig>


More information about the freebsd-ports mailing list