Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Apr 2012 09:06:18 -0700
From:      Garrett Cooper <yanegomi@gmail.com>
To:        Dimitry Andric <dim@FreeBSD.org>
Cc:        Doug Barton <dougb@FreeBSD.org>, Current FreeBSD <freebsd-current@freebsd.org>, Jan Sieka <jps@semihalf.com>
Subject:   Re: buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012
Message-ID:  <3862F1CA-C1C8-49E6-B768-114A0A212496@gmail.com>
In-Reply-To: <4F9428ED.6060902@FreeBSD.org>
References:  <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> <4F9428ED.6060902@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Apr 22, 2012, at 8:51 AM, Dimitry Andric wrote:

> On 2012-04-22 16:51, Garrett Cooper wrote:
>> On Apr 20, 2012, at 10:26 AM, Doug Barton wrote:
>>> On 4/20/2012 5:16 AM, Jan Sieka wrote:
>>>> I can't build world from recent sources (HEAD as of 2012.04.19 =
11:06:48
>>>> UTC) on a machine running FreeBSD 7.3.
>>>=20
>>> That's not a supported configuration. We don't promise support for
>>> $VERSION on anything less than the most recent version of $VERSION - =
1.
>>=20
>> 	I'm sorry, but given the error below shown by Jan I don't buy =
this argument. It seems like file's objects are is trying to link =
against an ABI incompatible libc and failing. The build system should =
handle this properly if you invoke the top-level targets (buildworld, =
buildkernel, distribution).
>=20
> This is trickier than you think: the error occurs during the =
build-tools
> stage, where everything that builds still uses the host's toolchain =
and
> libraries (e.g. the 7.x versions).  So if you try to build a program
> that uses getline(), it will not be able to link.  This is what =
happens
> with the 'mkmagic' tool.
>=20
> However, this will have started failing just very recently, since =
obrien
> updated to a new file(1) version, and regenerated the config.h file:
>=20
>  =
http://svnweb.freebsd.org/base/head/lib/libmagic/config.h?r1=3D208341&r2=3D=
234449

And this is why NetBSD runs autotools on their tree sources in their =
build instead of dealing with stale config.h files -- which also brings =
up the bug of what happens if support is available on one architecture, =
but not the other? Doesn't happen often and I hope it wouldn't happen in =
sources imported into FreeBSD, but I've seen it happen in the past with =
various open source projects.

> Maybe some hackery could be inserted in lib/libmagic/Makefile, so =
during
> the early stages a 'toned down' config.h file is used.  The libmagic
> source has its own getline implementation in contrib/file/getline.c, =
so
> maybe that could be used instead.

That seems like a good idea for the time being.

On the other hand (and this is probably a dumb question), but why is =
libmagic required in the build-tools stage?

> On the other hand, going from 7.x to HEAD via the 'official' route =
would go like:
>=20
> - Update 7.x to the latests 7-STABLE
> - Update 7-STABLE to 8-STABLE
> - Update 8-STABLE to 9-STABLE
> - Update 9-STABLE to 10-CURRENT
>=20
> It is *way* easier to just grab a recent 10-CURRENT snapshot ISO and
> just reinstall. :)

Ugh. The usecase (that's now broken) is that Jan from Semihalf might =
have been running CURRENT builds on an older (stable) build machine. I =
have done this a couple times in the past (but not regularly because I =
usually follow the above prescribed method or just hop 1-2 major =
versions).

Other groups I've worked with use the same major version or higher than =
the running build because of chroot hackery involved in the build =
process.

Thanks,
-Garrett=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3862F1CA-C1C8-49E6-B768-114A0A212496>