Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Nov 2016 16:45:38 +0000
From:      Brooks Davis <brooks@freebsd.org>
To:        Jonathan Anderson <jonathan@FreeBSD.org>
Cc:        Dimitry Andric <dim@FreeBSD.org>, src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Ed Maste <emaste@freebsd.org>
Subject:   Re: svn commit: r308181 - in head: . share/mk
Message-ID:  <20161102164538.GA83465@spindle.one-eyed-alien.net>
In-Reply-To: <69A64340-FE51-4AF0-9905-B46220D041E9@FreeBSD.org>
References:  <201611012127.uA1LRg0B045900@repo.freebsd.org> <46715A69-03C5-404F-B133-C8FE89D59A9B@FreeBSD.org> <69A64340-FE51-4AF0-9905-B46220D041E9@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--/9DWx/yDrRhgMJTb
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 02, 2016 at 04:55:22AM -0230, Jonathan Anderson wrote:
> Hi,
>=20
> On 1 Nov 2016, at 21:10, Dimitry Andric wrote:
>=20
> > Please note, I reverted r307823 (which changed the suffixes from .bco
> > and .llo to .bc and .ll) in r308003, since it caused a number of ports
> > failures.  These ports were already using .ll as a suffix for C++ lex
> > scripts.
>=20
> The changes to bsd.suffixes-posix.mk (included by sys.mk) would have affe=
cted anything compiled with bmake, and indeed, I'd imagine that adding a .c=
->.ll rule alongside .c->.o could cause problems with C++ lex rules. In fac=
t, part of brooks' original motivation for introducing .llo suffixes was to=
 avoid name conflicts (although conflicts with program IR like we're introd=
ucing in this commit). The changes in this commit should only be picked up =
by things that explicit include bsd.{lib,prog}.mk, however, and they also h=
ave slightly more esoteric names (e.g., progname.full.ll) that are less lik=
ely to cause a conflict. Perhaps I ought to have done an exp-run, but I sus=
pect that this commit will cause much less / no fallout. I don't suppose yo=
u have a list of the ports that failed after your r307823 change so that I =
could do spot checks?

As a bit of background, the original motivation for the .bco and .llo
files what that I wanted to differentiate between IR files produced from
single translation units (.c files) and IR files produced by llvm-link
so I didn't have to worry about things like name space collisions in the
case of transitions like:

                  clang                   llvm-link  opt      ld
(prog.c, utils.c) =3D> (prog.llo, util.llo) =3D> prog.ll =3D> prog.o =3D> p=
rog

Part of the fun is that you might instead want:

                  clang                   opt                 ld
(prog.c, utils.c) =3D> (prog.llo, util.llo) =3D> (prog.o, util.o) =3D> prog

and for extra fun you might insert instrumentation at any IR stage so
yet more suffixes may be required if your tools don't fit neatly into
clang, opt, etc plugins.

Make is lousy at this stuff so a certain about of ugliness is likely
to remain required.

-- Brooks

--/9DWx/yDrRhgMJTb
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBAgAGBQJYGhgyAAoJEKzQXbSebgfAHToH/A0zptfJES+9bRZRLrUEJjpR
tEsoFE4v/xJPb1iz7LGKB327NX1nM7sFSalHcnFOy++5o9gAUzEmhQMHWx6dWyo2
HzOhIGySxhUqvieG1o8Yj01E9ObyhpBBPXGAeA1G4kWRlO2wi5Ze7ZwdmJPP0Cel
aNsBo0p2O0coT+qhbphs0GbQH112zsErvFdfSgjgz5HnACaXl5mr85rDxCYXxKye
nbWka0+HsFMMUxmeQWBoj5/jgrPI0H8sV86Wf7TZklijPvROa+r5HCI9kFzu+Xe6
gNc94FJDYOH8K1qwKATzCDFYvSJnvN7J2umBRxygNtECIA9DWrx1bSXcK8VPY9M=
=VM2J
-----END PGP SIGNATURE-----

--/9DWx/yDrRhgMJTb--



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