I was trying to upgrade a machine from RELEASE_6 (latest) to RELEASE_8 (latest) via source. I was unable to get make buildworld to complete. There were two problems sets of problems. libelf and sys headers were not available to some of the solaris derived parts. include_next's failed. Adding extra -I's to the Makefiles allowed these parts to complete. The first missing header was sys/elf.h so that should help locate the correct Makefile. Linking then failed due to __stack_chk_fail_local not being found. i386 build. Sorry this report is not more complete as I blew away the tree and restarted on RELEASE_7 as a stepping stone to RELEASE_8. RELEASE_7 latest will at least compile. However it will only run in safe mode as it dies in ar5212Detach with a kernel fault. I suspect this will also be a problem for RELEASE_8. Mark -- Mark Andrews, ISC 1 Seymour St., Dundas Valley, NSW 2117, Australia PHONE: +61 2 9871 4742 INTERNET: marka@isc.org
On 1/30/2011 6:45 PM, Mark Andrews wrote:> I was trying to upgrade a machine from RELEASE_6 (latest) > to RELEASE_8 (latest) via source. I was unable to get > make buildworld to complete.Strange, I have done a number of machines going from RELENG_6, RELENG_7 and then RELENG_8 without too much issue. The ports can be a bit problematic, but of the half dozen or so I have done, it hasnt been an issue. Were you using a custom kernel, or GENERIC as defined from each of the branches ? ---Mike
Mark Andrews writes:> > In message <4D46119F.5060101@sentex.net>, Mike Tancsa writes: > > On 1/30/2011 6:45 PM, Mark Andrews wrote: > > > I was trying to upgrade a machine from RELEASE_6 (latest) > > > to RELEASE_8 (latest) via source. I was unable to get > > > make buildworld to complete. > > > > Strange, I have done a number of machines going from RELENG_6, RELENG_7 > > and then RELENG_8 without too much issue. The ports can be a bit > > problematic, but of the half dozen or so I have done, it hasnt been an > > issue. Were you using a custom kernel, or GENERIC as defined from each > > of the branches ? > > It's the double release jump that doesn't work. Looking at 7.x the > headers needed are installed in /usr/include. Similarly 7.x's gcc > has the symbol but doesn't turn on the compiler flags which use it. > Basically RELENG_8 is not completely building against itself. Trying > to go from 6.x to 8.x is showing some of places where the new OS > doesn't build against itself. > > This was with GENERIC for all builds and almost no ports installed.The following Makefiles needed to be modified to add -I${.CURDIR}/../../../lib/libelf and/or -I${.CURDIR}/../../../sys. /usr/release8/src/cddl/usr.bin/sgsmsg/Makefile lib/libelf /usr/release8/src/cddl/lib/libctf/Makefile lib/libelf sys /usr/release8/src/cddl/usr.bin/ctfconvert/Makefile lib/libelf sys /usr/release8/src/cddl/usr.bin/ctfmerge/Makefile sys e.g. CFLAGS+= -I${.CURDIR}/../../../sys/cddl/compat/opensolaris \ -I${.CURDIR}/../../../cddl/compat/opensolaris/include \ -I${.CURDIR}/../../../lib/libelf \ -I${.CURDIR}/../../../sys \ -I${OPENSOLARIS_USR_DISTDIR} \ -I${OPENSOLARIS_SYS_DISTDIR} \ -I${OPENSOLARIS_USR_DISTDIR}/head \ -I${OPENSOLARIS_USR_DISTDIR}/tools/ctf/common \ -I${OPENSOLARIS_USR_DISTDIR}/tools/ctf/cvt \ -I${OPENSOLARIS_SYS_DISTDIR}/uts/common "make make" is also needed for 6.x -> 8.x so that should be added to UPDATING. The build will then run until stopping in libexec/atrun with /usr/release8/usr/release8/src/tmp/usr/lib/libpam.so: undefined reference to `__stack_chk_fail_local' -- Mark Andrews, ISC 1 Seymour St., Dundas Valley, NSW 2117, Australia PHONE: +61 2 9871 4742 INTERNET: marka@isc.org
On Mon, 31 Jan 2011, Mark Andrews wrote:> > I was trying to upgrade a machine from RELEASE_6 (latest) > to RELEASE_8 (latest) via source. I was unable to get > make buildworld to complete.You need latest N to go to N+1, so a 6.4-RELEASE or RELENG_6 after that should be able to go to 7.x but not straight to 8. Multi-Release-Hop-Updates have been working once in a while in the past with other releases but were never officially supported. Not even a say 7.1 might be able to go to straight 8.x btw. Unfortunately UPDATING wasn't really updated in that regard for a while and might still say "To upgrade in-place from 5.x-stable to current" in older branches; I know it was fixed in 9 for 8 in [1] as part of a large cleanup but I think a similar change never made it back to other stable branches. /bz [1] http://svn.freebsd.org/viewvc/base/head/UPDATING?revision=196789&view=markup -- Bjoern A. Zeeb You have to have visions! <ks> Going to jail sucks -- <bz> All my daemons like it! http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html
On Mon, Jan 31, 2011 at 10:45:33AM +1100, Mark Andrews wrote:> > I was trying to upgrade a machine from RELEASE_6 (latest) > to RELEASE_8 (latest) via source. I was unable to get > make buildworld to complete....> Sorry this report is not more complete as I blew away the > tree and restarted on RELEASE_7 as a stepping stone to > RELEASE_8. > > RELEASE_7 latest will at least compile. However it will > only run in safe mode as it dies in ar5212Detach with a > kernel fault. I suspect this will also be a problem for > RELEASE_8.I think the main problem is that neither /usr/src/UPDATING (at least as of 7.3) nor the handbook includes the advisory it should against trying to skip over a major release branch (e.g. 6.x direct to 8.x, 5.x direct to 7.x) when performing a source upgrade. I know I have read that repeatedly in the past, and have always structured my upgrades around the rule that your upgrades must, so to speak, "pass through" and stop at each major branch. However, I don't see that rule documented anywhere in the obvious places one would look for it. The latter problem with the kernel fault sounds like a driver problem in RELEASE_7 latest. That stuff does happen and I would guess it's probably a distinct issue, unless you see that it goes away if you rebuild RELEASE_7 from source while running RELEASE_7. -- Clifton -- Clifton Royston -- cliftonr@iandicomputing.com / cliftonr@lava.net President - I and I Computing * http://www.iandicomputing.com/ Custom programming, network design, systems and network consulting services