Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Jan 2015 16:49:57 -0800
From:      Kevin Oberman <rkoberman@gmail.com>
To:        Kevin Oberman <rkoberman@gmail.com>,  FreeBSD-STABLE Mailing List <freebsd-stable@freebsd.org>
Subject:   Re: Upgrading from stable/8 to stable/9 blocked by file 5.21 (r276416)
Message-ID:  <CAN6yY1ux8LKg8RxgdNMw7jVABAGL2YvtKOmO3ZMEOwWUNVsx5A@mail.gmail.com>
In-Reply-To: <20150105201735.GA2642@anubis.morrow.me.uk>
References:  <alpine.BSF.2.11.1501041830030.1551@mail.fig.ol.no> <54A9A853.2000208@delphij.net> <alpine.BSF.2.11.1501051036160.1551@mail.fig.ol.no> <CAN6yY1uNb-r5s4i9tdya5NS0Nmrc16=e4MWQ=vQNHGLiATvXxg@mail.gmail.com> <20150105201735.GA2642@anubis.morrow.me.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 5, 2015 at 12:17 PM, Ben Morrow <ben@morrow.me.uk> wrote:

> Quoth Kevin Oberman <rkoberman@gmail.com>:
> > On Mon, Jan 5, 2015 at 1:49 AM, Trond Endrest=C3=B8l <
> > Trond.Endrestol@fagskolen.gjovik.no> wrote:
> >
> > > =3D=3D=3D> lib/libmagic (obj,build-tools)
> > > gcc -O2 -pipe -DMAGIC=3D'"/usr/share/misc/magic"' -DHAVE_CONFIG_H
> > > -I/usr/src/lib/libmagic -I/usr/src/lib/libmagic/../../contrib/file/sr=
c
> > > -std=3Dgnu99   -I/usr/obj/usr/src/tmp/legacy/usr/include -DCOMPILE_ON=
LY
> > > -L/usr/obj/usr/src/tmp/legacy/usr/lib -o mkmagic
> [...]
> >
> > This still comes down to  he build of file (and specifically libmagick
> not
> > finding xlocale.h. the new header files should have been installed into
> > /usr/obj long before the build of file starts. the buildworld should
> always
> > run clean, obj, _includes, and depends before any of the actual builds
> > commence.
> >
> > So the issue is whether the build of libmagic is failing to look for
> > xlocale.h in the right place or the _includes: target is failing to
> install
> > it there.
> >
> > This can be checked by building without -j (to eliminate any possible
> > races) and, after the failure, look for xlocale.h in
> > /usr/obj/usr/src/tmp/usr/include. This is where all header files should
> be
> > installed in the /usr/obj tree so that they are available and used by t=
he
> > buildworld.
>
> If I'm reading Makefile.inc1 right (and it's possible I'm not) then the
> build-tools stage comes before the compiler is rebuilt, so it's still
> using the host system compiler. If I'm right about that, then that gcc
> command above isn't looking in that directory (it's looking in /legacy/
> instead, which doesn't get xlocale.h).
>
> Also, unless I'm mistaken, the _includes stage ('stage 4.1: building
> includes') runs after the build-tools stage ('stage 2.3: build tools').
> The only headers that have been installed by that point are those
> installed in .../tmp/legacy/usr/include by 'legacy' and
> 'bootstrap-tools'.
>
> Ben
>

I just deleted /usr/obj/* and did buildworld (no -j) and here is what I
found:
 20352  libmagic is compiled for the tool-chain (build-tools)
 26334  magic.h installed in /usr/obj/usr/src/tmp/usr/include
 27061  xlocale.h is installed into /usr/obj/usr/src/tmp/usr/include/
 63838  libmagick depends built
 68635  libmagic compile
 68729  libmagick shareable linked


So libmagick is built twice, once in the tool-chain before xlocale is
installed in /usr/obj/usr/src/tmp/usr/include and again, with all bells and
whistles after clang has been built. the latter is the one actually
installed in installworld. So your analysis is correct. When the first
libmagick is built with the old compiler for use in the tool chain, xlocale
has not been installed and was not present in legacy (since it did not
exist in 9-STABLE).

I believe the proper answer is to move from 9-STABLE to 10.0-RELEASE and
then to 10-STABLE. It MIGHT even require moving to 10.1-RELEASE.
--
Kevin Oberman, Network Engineer, Retired



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