Re: buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012

From: Garrett Cooper <yanegomi_at_gmail.com>
Date: Sun, 22 Apr 2012 09:06:18 -0700
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.
>>> 
>>> That's not a supported configuration. We don't promise support for
>>> $VERSION on anything less than the most recent version of $VERSION - 1.
>> 
>> 	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).
> 
> 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.
> 
> However, this will have started failing just very recently, since obrien
> updated to a new file(1) version, and regenerated the config.h file:
> 
>  http://svnweb.freebsd.org/base/head/lib/libmagic/config.h?r1=208341&r2=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:
> 
> - 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
> 
> 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
Received on Sun Apr 22 2012 - 14:06:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:26 UTC