Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Mar 2017 12:41:26 +0100
From:      Matthias Apitz <guru@unixarea.de>
To:        freebsd-current@freebsd.org
Subject:   update an older i386 CURRENT system to amd64 CURRENT
Message-ID:  <20170316114126.GA4724@c720-r314251>

next in thread | raw e-mail | index | archive | help


Hello,

I have an older FreeBSD 9.0-CURRENT system which I want to update to
12-CURRENT:

# uname -a
FreeBSD vm-9Current 9.0-CURRENT FreeBSD 9.0-CURRENT #2 r220692: Sun Apr 17 03:28:12 CEST 2011     guru@tinyCurrent:/usr/obj/usr/src/sys/GENERIC i386

To do so without compiling everything from scratch, I transferred
/usr/src (r314251) and /usr/obj to this server, the compilation of
/usr/obj was done on an amd64 server and the same procedure (transfer
of /usr/src and /usr/obj) was also used to update my C720 netbook; the
difference is here that the host which should be update is i386.

The 'make installkernel' did not work:
 
# pwd
/usr/src
# file ../obj/usr/src/sys/GENERIC/kernel
../obj/usr/src/sys/GENERIC/kernel: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), not stripped

# make installkernel

--------------------------------------------------------------
>>> Building an up-to-date bmake(1)
--------------------------------------------------------------
sh /usr/src/tools/install.sh -s -o root -g wheel -m 555   make
/usr/obj/usr/src/make.i386/bmake
--------------------------------------------------------------
>>> Installing kernel GENERIC
--------------------------------------------------------------
cd /usr/obj/usr/src/sys/GENERIC;  MAKEOBJDIRPREFIX=/usr/obj
MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE=
GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin
GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font
GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC="cc
-isystem /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib
-B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp
-B/usr/obj/usr/src/tmp/usr/bin" CXX="c++  -isystem
/usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib
-B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp
-B/usr/obj/usr/src/tmp/usr/bin"  CPP="cpp -isystem
/usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib
-B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp
-B/usr/obj/usr/src/tmp/usr/bin"  AS="as" AR="ar" LD="ld" LLVM_LINK=""
NM=nm OBJCOPY="objcopy"  RANLIB=ranlib STRINGS=  SIZE="size"
PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin
/usr/obj/usr/src/make.i386/bmake  KERNEL=kernel install
cc: Exec format error
bmake[1]: "/usr/src/share/mk/bsd.compiler.mk" line 145: Unable to
determine compiler type for CC=cc -isystem
/usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib
-B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp
-B/usr/obj/usr/src/tmp/usr/bin.  Consider setting COMPILER_TYPE.
*** Error code 1


Also the following did not work:

# make installkernel MACHINE_ARCH=amd64 MACHINE=amd64

--------------------------------------------------------------
>>> Building an up-to-date bmake(1)
--------------------------------------------------------------
sh /usr/src/tools/install.sh -s -o root -g wheel -m 555   make
/usr/obj/usr/src/make.amd64/bmake
--------------------------------------------------------------
>>> Installing kernel GENERIC
--------------------------------------------------------------
cd /usr/obj/usr/src/sys/GENERIC;  MAKEOBJDIRPREFIX=/usr/obj
MACHINE_ARCH=amd64  MACHINE=amd64  CPUTYPE=
GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin
GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font
GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC="cc
-isystem /usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib
-B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp
-B/usr/obj/usr/src/tmp/usr/bin" CXX="c++  -isystem
/usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib
-B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp
-B/usr/obj/usr/src/tmp/usr/bin"  CPP="cpp -isystem
/usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib
-B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp
-B/usr/obj/usr/src/tmp/usr/bin"  AS="as" AR="ar" LD="ld" LLVM_LINK=""
NM=nm OBJCOPY="objcopy"  RANLIB=ranlib STRINGS=  SIZE="size"
PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin
/usr/obj/usr/src/make.i386/bmake  KERNEL=kernel install
cc: Exec format error
bmake[1]: "/usr/src/share/mk/bsd.compiler.mk" line 145: Unable to
determine compiler type for CC=cc -isystem
/usr/obj/usr/src/tmp/usr/include -L/usr/obj/usr/src/tmp/usr/lib
-B/usr/obj/usr/src/tmp/usr/lib --sysroot=/usr/obj/usr/src/tmp
-B/usr/obj/usr/src/tmp/usr/bin.  Consider setting COMPILER_TYPE.
*** Error code 1


Is there a way to use this /usr/src and pre-compiled /usr/obj on an i386
host for update? Or do I have to use a complete recompile or even
reinstall, based on a 64-bit memstick system?

Thanks

	matthias


-- 
Matthias Apitz, ✉ guru@unixarea.de, ⌂ http://www.unixarea.de/  ☎ +49-176-38902045



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