Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Feb 2020 14:12:31 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Dewayne Geraghty <dewayne.geraghty@heuristicsystems.com.au>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Why is not llvm-config executable included?
Message-ID:  <20200217121231.GB29554@kib.kiev.ua>
In-Reply-To: <0f258cc4-7aae-b757-add0-e44c329c8255@heuristicsystems.com.au>
References:  <D1A947BC-BCD9-4BAE-9D1B-EB1B433C1452@FreeBSD.org> <20200215185821.GV4808@kib.kiev.ua> <0f258cc4-7aae-b757-add0-e44c329c8255@heuristicsystems.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Feb 17, 2020 at 09:03:49AM +1100, Dewayne Geraghty wrote:
> On 16/02/2020 9:27 am, Konstantin Belousov wrote:
> > One of the reason why llvm in base should not be used as llvm infrastructure
> > is because llvm API and ABI is not stable across llvm releases, and exposing
> > that would make compiler updates in stable impossible due to the stable
> > branches guarantee of ABI stability.
> 
> I think you're saying - don't build ports in a base (without the llvm
> port), rather use a separate build jail with llvm port.
I am not saying anything even close to that.

I am claiming that libraries built as part of the /usr/bin/cc build
in base should not be used for any other purposes.  It is not trivial
to use them, because they are not installed.  Which is good for the
reasons I explained in my first response.

It might be that installing these libs in private manner would be useful
because
tom% ls -li /usr/bin/{cc,ld.lld,lldb}                                         ~
241736 -r-xr-xr-x  6 root  wheel  66188728 28 янв.  13:21 /usr/bin/cc
241866 -r-xr-xr-x  1 root  wheel  39837056 28 янв.  13:21 /usr/bin/ld.lld
241987 -r-xr-xr-x  1 root  wheel  64386992 28 янв.  13:21 /usr/bin/lldb
i.e. we might save around 100MB from the base install.  But even if
this is done, the libs are still strictly for base /usr/bin/cc.

> 
> We used to build all ports in base and ship them to clients.  Around
> FreeBSD6 we started to build within a jailed environment, as we
> supported i386 & amd64; something we still do.  Though I'm concerned
> that perhaps we should migrate (our jails) back to using gcc where-ever
> possible, in the hope of avoiding future ABI incompatibility?
> 
> In my experience replacing a base 'something' with the port of
> 'something' must be done carefully.  (our experience with
> binutils and libressl, ultimately required removing all base "stuff" and
> using workarounds like softlinks - a bit messy, but scriptable)
> 
> Would using gcc, in the build jail, provide better insurance against ABI
> breakage?

I do not see how using gcc instead of clang would change anything regarding
ABI.  Also what ABI breakage are you talking about there ?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200217121231.GB29554>