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_______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "[email protected]"
