svn commit: r339636 - in head: . share/mk

Markiyan Kushnir markiyan.kushnir at gmail.com
Tue Nov 6 17:12:17 UTC 2018


Alexander,

Cannot tell exactly what change it was, might be one of your recent changes
to bsd.compiler.mk or Makefile.inc1? ...

Now running "make buildworld" I can proceed with "3.1: recording build
metadata" only having USING_SYSTEM_COMPILER=yes USING_SYSTEM_LINKER=yes set
in my environment. Otherwise I'm getting this:

sh: cc: not found
make[2]: "/work/src.svn/share/mk/bsd.compiler.mk" line 176: Unable to
determine compiler type for CC=cc -target x86_64-unknown-freebsd13.0
--sysroot=//usr/obj/work/src.svn/amd64.amd64/tmp
-B//usr/obj/work/src.svn/amd64.amd64/tmp/usr/bin.  Consider setting
COMPILER_TYPE.
*** Error code 1

Stop.
make[1]: stopped in /work/src.svn
*** Error code 1

Stop.
make: stopped in /work/src.svn
Failed to build world

I'm at rev. 340189. Could you please have a look?

--
Markiyan

вт, 6 лист. 2018 о 01:11 Alexander Richardson <arichardson at freebsd.org>
пише:

> On Mon, 5 Nov 2018 at 23:00, Bryan Drewery <bdrewery at freebsd.org> wrote:
> >
> > On 10/22/2018 11:31 PM, Alex Richardson wrote:
> > > Author: arichardson
> > > Date: Tue Oct 23 06:31:25 2018
> > > New Revision: 339636
> > > URL: https://svnweb.freebsd.org/changeset/base/339636
> > >
> > > Log:
> > >   Only compute the X_COMPILER_*/X_LINKER_* variables when needed
> > >
> > >   When building CheriBSD we have to set XLD/XCC/XCFLAGS on the command
> line.
> > >   This triggers the $XCC != $CC case in bsd.compiler.mk (and the same
> for LD
> > >   in bsd.linker.mk) which causes it to call ${XCC} --version and
> > >   ${XLD} --version (plus various awk+sed+echo calls) in every
> subdirectory.
> > >   For incremental builds and stages that only walk the source tree
> this is
> > >   often the majority of the time spent in that directory.
> > >
> > ...
> >
> > >   By only computing the value of the X_COMPILER_*/X_LINKER_* variables
> if
> > >   _WANT_TOOLCHAIN_CROSS_VARS is set we can reduce the number of cc/ld
> calls
> > >   to once per build stage instead of once per recursive make.
> >
> > This sounds wrong. bsd.compiler.mk *already* handles that kind of thing
> > by exporting its computations. Adding a second hack for a similar
> > problem isn't the right solution.
> >
>
> I added debug .info statements for every time bsd.compiler.mk was
> running cc --version and it was always running it for $XCC during make
> buildworld.
> As far as I can tell this happens because $CC and $XCC no longer match.
> I believe the problem is that the toplevel makefile runs the cross
> stages with CC="${XCC} ${XCFLAGS}" so if you have XCFLAGS set in your
> environment $CC will never be equal to $XCC.
> This also means there is not cached variable for $XCC since it was
> computed for "${XCC} ${XCFLAGS}" rather than $XCC .
>
> This patch massively reduced the incremental build time for CheriBSD
> but if you can suggest I better fix that would be great.
>
> Alex
> _______________________________________________
> svn-src-all at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-all
> To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
>


More information about the svn-src-all mailing list