Date: Sat, 19 May 2018 23:04:05 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 227920] [PATCH] fix for Makefile.libcompat to use external cross-compiler Message-ID: <bug-227920-227-FBpNAjKLOM@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-227920-227@https.bugs.freebsd.org/bugzilla/> References: <bug-227920-227@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D227920 --- Comment #12 from Mark Millard <marklmi26-fbsd@yahoo.com> --- (In reply to Kenneth Salerno from comment #5) Summary of a failure: When a clang-based environment tries to build a target by building gcc 4.2.1 as the boottrap compiler, it looks like LIB32CFLAGS ends up being used on the bootstrap compiler's cpp line: it ends up being rejected by the gcc 4.2.1 related cpp. More detailed evidence: I tried to cross build amd64 -> powerpc64 where the cross build built gcc 4.2.1 to do the later build stages. I used the Makefile.libcompat patch variant below: # svnlite diff /usr/src/Makefile.libcompat Index: /usr/src/Makefile.libcompat =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /usr/src/Makefile.libcompat (revision 333863) +++ /usr/src/Makefile.libcompat (working copy) @@ -63,6 +63,14 @@ LIB32CFLAGS=3D -DCOMPAT_32BIT +.if ${TARGET_ARCH} =3D=3D "powerpc64" +# TARGET happens to have the right 32-bit name to use in -target +# clang uses -target to figure out which assembler notation to +# process. +.if ${TARGET} !=3D ${MACHINE} && ${X_COMPILER_TYPE} =3D=3D "clang" +LIB32CFLAGS+=3D -target ${TARGET}-unknown-freebsd12.0 +.endif +.endif LIB32DTRACE=3D ${DTRACE} -32 LIB32WMAKEFLAGS+=3D -DCOMPAT_32BIT This appears to contribute to /usr/src/include/rpc/Makefile 's: RPCCOM=3D RPCGEN_CPP=3D${CPP:Q} rpcgen -C and ends up feeding the relevant cpp a -target, which is then rejected: =3D=3D=3D> include/rpc (includes) Building /usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.power= pc64/obj-lib32/include/rpc/rpcb_prot.h --- rpcb_prot.h --- cpp: powerpc-unknown-freebsd12.0: No such file or directory cpp: warning: '-x c' after last input file has no effect cpp: unrecognized option '-target' cpp: No input files specified --- includes_subdir_include/rpcsvc --- Building /usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.power= pc64/obj-lib32/include/rpcsvc/rstat.h Building /usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.power= pc64/obj-lib32/include/rpcsvc/rwall.h Building /usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.power= pc64/obj-lib32/include/rpcsvc/sm_inter.h Building /usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.power= pc64/obj-lib32/include/rpcsvc/spray.h Building /usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.power= pc64/obj-lib32/include/rpcsvc/yppasswd.h Building /usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.power= pc64/obj-lib32/include/rpcsvc/yp.h Building /usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.power= pc64/obj-lib32/include/rpcsvc/ypxfrd.h --- includes_subdir_include/rpc --- *** [rpcb_prot.h] Error code 1 make[3]: stopped in /usr/src/include/rpc .ERROR_TARGET=3D'rpcb_prot.h' .ERROR_META_FILE=3D'/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/u= sr/src/powerpc.powerpc64/obj-lib32/include/rpc/rpcb_prot.h.meta' .MAKE.LEVEL=3D'3' MAKEFILE=3D'' .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes ve= rbose' _ERROR_CMD=3D'RPCGEN_CPP=3Dcpp\ -DCOMPAT_32BIT\ -target\ powerpc-unknown-freebsd12.0\ -mcpu=3Dpowerpc\ -m32\ \ -L/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.pow= erpc64/obj-lib32/tmp/usr/lib32\ \ --sysroot=3D/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/p= owerpc.powerpc64/obj-lib32/tmp\ \ -B/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.pow= erpc64/tmp/usr/bin\ -B/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.pow= erpc64/obj-lib32/tmp/usr/lib32\ -isystem\ /usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.power= pc64/obj-lib32/tmp/usr/include rpcgen -C -h -DWANT_NFS3 /usr/src/include/rpc/rpcb_prot.x -o rpcb_prot.h;' .CURDIR=3D'/usr/src/include/rpc' .MAKE=3D'make' .OBJDIR=3D'/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/po= werpc.powerpc64/obj-lib32/include/rpc' .TARGETS=3D'includes' DESTDIR=3D'/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/po= werpc.powerpc64/obj-lib32/tmp' LD_LIBRARY_PATH=3D'' MACHINE=3D'powerpc' MACHINE_ARCH=3D'powerpc' MAKEOBJDIRPREFIX=3D'' MAKESYSPATH=3D'/usr/src/share/mk' MAKE_VERSION=3D'20180512' PATH=3D'/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/power= pc.powerpc64/tmp/legacy/usr/sbin:/usr/obj/powerpc64vtsc_clang_gcc421/powerp= c.powerpc64/usr/src/powerpc.powerpc64/tmp/legacy/usr/bin:/usr/obj/powerpc64= vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/legacy/bi= n:/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/powerpc.pow= erpc64/tmp/usr/sbin:/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/u= sr/src/powerpc.powerpc64/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin' SRCTOP=3D'/usr/src' OBJTOP=3D'/usr/obj/powerpc64vtsc_clang_gcc421/powerpc.powerpc64/usr/src/pow= erpc.powerpc64/obj-lib32' .MAKE.MAKEFILES=3D'/usr/src/share/mk/sys.mk /usr/src/share/mk/local.sys.env= .mk /usr/src/share/mk/src.sys.env.mk /root/src.configs/src.conf.powerpc64-gcc421-bootstrap-clang.amd64-host /usr/src/share/mk/bsd.mkopt.mk /usr/src/share/mk/src.sys.obj.mk /usr/src/share/mk/auto.obj.mk /usr/src/share/mk/bsd.suffixes.mk /usr/src/share/mk/local.sys.mk /usr/src/share/mk/src.sys.mk /dev/null /usr/src/include/rpc/Makefile /usr/src/share/mk/bsd.prog.mk /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk /usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.linker.mk /usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk /usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.nls.mk /usr/src/share/mk/bsd.confs.mk /usr/src/share/mk/bsd.files.mk /usr/src/share/mk/bsd.incs.mk /usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk /usr/src/share/mk/bsd.sys.mk' .PATH=3D'. /usr/src/include/rpc' 1 error - --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-227920-227-FBpNAjKLOM>