Skip site navigation (1)Skip section navigation (2)
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>