Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Jul 2018 03:20:06 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        FreeBSD Ports <freebsd-ports@freebsd.org>, Bryan Drewery <bdrewery@FreeBSD.org>
Subject:   Re: Building devel/powerpc64-gcc and devel/amd64-gcc and the like fail: "Unable to access file" for many files in work/stage/...
Message-ID:  <57B1EBC3-1586-4495-9C1E-0560D4EDF328@yahoo.com>
In-Reply-To: <E44CAF79-92AD-469E-9092-3D2E0100DC59@yahoo.com>
References:  <3A54CD6F-FEE9-4813-97B8-76A3E619D7F4@yahoo.com> <884de41d-011e-a025-bfec-4e61b5546336@FreeBSD.org> <E44CAF79-92AD-469E-9092-3D2E0100DC59@yahoo.com>

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


On 2018-Jul-28, at 1:33 AM, Mark Millard <marklmi at yahoo.com> wrote:

> On 2018-Jul-26, at 10:24 AM, John Baldwin <jhb at freebsd.org> wrote:
>=20
>> On 7/26/18 12:02 AM, Mark Millard wrote:
>>> Based on attempting to update (via poudriere-devel and pkg) to =
-r475344 (from
>>> a prior 2018-Jul-15 6.4.0_1 build and installation of such =
devel/*-gcc --and
>>> other things). . .
>>>=20
>>> =3D=3D=3D>  Building package for powerpc64-gcc-6.4.0_2
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/gtype.state:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/ada/gcc-interface/ada-tree.de=
f:No such file or directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/addresses.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/alias.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/all-tree.def:No such file =
or directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/alloc-pool.h:No such file =
or directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/ansidecl.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/asan.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/attribs.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/auto-host.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/auto-profile.h:No such file =
or directory
>>> . . .
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/xcoff.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/plugin/include/xcoffout.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/libexec/gcc/po=
werpc64-unknown-freebsd12.0/6.4.0/plugin/gengtype:No such file or =
directory
>>> *** Error code 1
>>>=20
>>>=20
>>> =3D=3D=3D>  Building package for amd64-gcc-6.4.0_2
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/gtype.state:No such file or directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/ada/gcc-interface/ada-tree.def:No =
such file or directo
>>> ry
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/addresses.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/alias.h:No such file or directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/all-tree.def:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/alloc-pool.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/ansidecl.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/asan.h:No such file or directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/attribs.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/auto-host.h:No such file or =
directory
>>> pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/auto-profile.h:No such file or =
directory
>>> . . .
>>>=20
>>> I'll not list devel/aarch64 materials but they are similar.
>>>=20
>>>=20
>>> Looking around for, say, gtype.state shows the likes of:
>>>=20
>>> # find /wrkdirs/usr/ports/devel/ -name gtype.state -print | more
>>> /wrkdirs/usr/ports/devel/powerpc64-gcc/work/.build/gcc/gtype.state
>>> /wrkdirs/usr/ports/devel/amd64-gcc/work/.build/gcc/gtype.state
>>>=20
>>> ( Nothing in work/stage/... )
>>>=20
>>>=20
>>> In fact:
>>>=20
>>> # ls -laTt =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/lib/gcc/powerp=
c64-unknown-freebsd12.0/6.4.0/
>>> total 16
>>> drwxr-xr-x  4 root  wheel  512 Jul 25 22:00:28 2018 .
>>> drwxr-xr-x  3 root  wheel  512 Jul 25 21:59:38 2018 install-tools
>>> drwxr-xr-x  2 root  wheel  512 Jul 25 21:59:37 2018 include
>>> drwxr-xr-x  3 root  wheel  512 Jul 25 21:59:26 2018 ..
>>>=20
>>> # ls -laTt =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/
>>> total 16
>>> drwxr-xr-x  4 root  wheel   512 Jul 25 22:07:48 2018 .
>>> drwxr-xr-x  2 root  wheel  2048 Jul 25 22:07:48 2018 include
>>> drwxr-xr-x  3 root  wheel   512 Jul 25 22:07:47 2018 install-tools
>>> drwxr-xr-x  3 root  wheel   512 Jul 25 22:07:44 2018 ..
>>>=20
>>> # ls -laTt =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/libexec/gcc/po=
werpc64-unknown-freebsd12.0/6.4.0/
>>> total 284336
>>> drwxr-xr-x  3 root  wheel        512 Jul 25 22:00:28 2018 .
>>> -r-xr-xr-x  1 root  wheel    2812448 Jul 25 22:00:26 2018 =
lto-wrapper
>>> drwxr-xr-x  2 root  wheel        512 Jul 25 21:59:38 2018 =
install-tools
>>> -r-xr-xr-x  1 root  wheel  101453496 Jul 25 21:59:35 2018 cc1plus
>>> -r-xr-xr-x  1 root  wheel    2402600 Jul 25 21:59:35 2018 collect2
>>> -r-xr-xr-x  1 root  wheel   90112408 Jul 25 21:59:35 2018 lto1
>>> -r-xr-xr-x  1 root  wheel   93819272 Jul 25 21:59:34 2018 cc1
>>> lrwxr-xr-x  1 root  wheel         22 Jul 25 21:59:28 2018 =
liblto_plugin.so -> liblto_plugin.so.0.0.0
>>> lrwxr-xr-x  1 root  wheel         22 Jul 25 21:59:28 2018 =
liblto_plugin.so.0 -> liblto_plugin.so.0.0.0
>>> -rwxr-xr-x  1 root  wheel     264360 Jul 25 21:59:28 2018 =
liblto_plugin.so.0.0.0
>>> drwxr-xr-x  3 root  wheel        512 Jul 25 21:59:26 2018 ..
>>>=20
>>> # ls -laTt =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/libexec/gcc/x86_64=
-unknown-freebsd12.0/6.4.0/
>>> total 317648
>>> drwxr-xr-x  3 root  wheel        512 Jul 25 22:07:48 2018 .
>>> drwxr-xr-x  2 root  wheel        512 Jul 25 22:07:47 2018 =
install-tools
>>> -r-xr-xr-x  1 root  wheel    2829704 Jul 25 22:07:47 2018 =
lto-wrapper
>>> -r-xr-xr-x  1 root  wheel  105180264 Jul 25 22:07:46 2018 cc1
>>> -r-xr-xr-x  1 root  wheel  112817696 Jul 25 22:07:46 2018 cc1plus
>>> -r-xr-xr-x  1 root  wheel    2404680 Jul 25 22:07:46 2018 collect2
>>> -r-xr-xr-x  1 root  wheel  101541352 Jul 25 22:07:46 2018 lto1
>>> drwxr-xr-x  3 root  wheel        512 Jul 25 22:07:44 2018 ..
>>> lrwxr-xr-x  1 root  wheel         22 Jul 25 22:07:44 2018 =
liblto_plugin.so -> liblto_plugin.so.0.0.0
>>> lrwxr-xr-x  1 root  wheel         22 Jul 25 22:07:44 2018 =
liblto_plugin.so.0 -> liblto_plugin.so.0.0.0
>>> -rwxr-xr-x  1 root  wheel     264168 Jul 25 22:07:44 2018 =
liblto_plugin.so.0.0.0
>>>=20
>>> So no plugin paths at all. So looking . . .
>>>=20
>>> # find /wrkdirs/usr/ports/devel/ -name plugin -print | more
>>> =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/gcc-6.4.0/libjava/classpath/na=
tive/plugin
>>> /wrkdirs/usr/ports/devel/powerpc64-gcc/work/gcc-6.4.0/libgomp/plugin
>>> =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/gcc-6.4.0/liboffloadmic/plugin=

>>> =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/gcc-6.4.0/gcc/testsuite/objc.d=
g/plugin
>>> =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/gcc-6.4.0/gcc/testsuite/gcc.dg=
/plugin
>>> =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/gcc-6.4.0/gcc/testsuite/g++.dg=
/plugin
>>> =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/gcc-6.4.0/gcc/testsuite/obj-c+=
+.dg/plugin
>>> =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/libjava/classpath/native=
/plugin
>>> /wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/libgomp/plugin
>>> =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/liboffloadmic/plugin
>>> =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/testsuite/objc.dg/pl=
ugin
>>> =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/testsuite/gcc.dg/plu=
gin
>>> =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/testsuite/g++.dg/plu=
gin
>>> =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/testsuite/obj-c++.dg=
/plugin
>>>=20
>>> (None of which seem to be a match.)
>>>=20
>>> Picking a plugin/include/*.h file and looking for it:
>>>=20
>>> lib/gcc/%%GCC_TARGET%%/%%GCC_VERSION%%/plugin/include/xcoff.h
>>>=20
>>> # find /wrkdirs/usr/ports/devel/ -name xcoff.h -print | more
>>> =
/wrkdirs/usr/ports/devel/powerpc64-gcc/work/gcc-6.4.0/gcc/config/rs6000/xc=
off.h
>>> /wrkdirs/usr/ports/devel/powerpc64-gcc/work/gcc-6.4.0/gcc/xcoff.h
>>> =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/config/rs6000/xcoff.=
h
>>> /wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/xcoff.h
>>>=20
>>>=20
>>> Note: the devel/*-binutils builds worked fine, as did devel/gdb .
>>> ( lang/gcc8 is still rebuilding. )
>>>=20
>>> Context:
>>>=20
>>> # uname -apKU
>>> FreeBSD FBSDUSSD 12.0-CURRENT FreeBSD 12.0-CURRENT  r336693M  amd64 =
amd64 1200075 1200075
>>=20
>> Hmm, I'll investigate.  I wonder if it's the fact that I fixed the =
--host to correctly
>> use x86_64 instead of amd64 when building a !amd64 GCC on an amd64 =
host (r475291).
>=20
> Looking at the log file from, for example, amd64-gcc's failed build =
shows
> that there is missing activity from, for example, =
$(srcdir)/cp/Make-lang.in
> (the C++ and Objective-C++ common object files are included) from:
>=20
> LANG_MAKEFRAGS =3D  $(srcdir)/ada/gcc-interface/Make-lang.in =
$(srcdir)/c/Make-lang.in $(srcdir)/cp/Make-lang.in =
$(srcdir)/fortran/Make-lang.in $(srcdir)/go/Make-lang.in =
$(srcdir)/java/Make-lang.in $(src
> dir)/jit/Make-lang.in $(srcdir)/lto/Make-lang.in =
$(srcdir)/objc/Make-lang.in $(srcdir)/objcp/Make-lang.in
>=20
> in /wrkdirs/usr/ports/devel/amd64-gcc/work/.build/gcc/Makefile
>=20
>=20
>=20
> For example the likes of the following are missing from the log
> file (that would be via $(srcdir)/cp/Make-lang.in ):
>=20
> headers=3D"cp-tree.h cxx-pretty-print.h name-lookup.h type-utils.h"; \
> for file in $headers; do \
>  path=3D/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/cp/$file; =
\
>  =
dest=3D/usr/local/lib/gcc/x86_64-unknown-freebsd12.0/6.4.0/plugin/include/=
cp/$file; \
>  echo install  -m 0644 $path =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage$dest; \
>  dir=3D`dirname $dest`; \
>  /bin/sh =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/../mkinstalldirs =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage$dir; \
>  install  -m 0644 $path =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage$dest; \
> done
> install -m 0644 =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/cp/cp-tree.h =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/cp/cp-tree.h
> mkdir =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin
> mkdir =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include
> mkdir =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/cp
> install -m 0644 =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/cp/cxx-pretty-print.=
h =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/cp/cxx-pretty-print.h
> install -m 0644 =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/cp/name-lookup.h =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/cp/name-lookup.h
> install -m 0644 =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/cp/type-utils.h =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include/cp/type-utils.h
> rm -f tmp-header-vars
> echo USER_H=3Dtgmath.h mm_malloc.h >> tmp-header-vars; echo =
HASHTAB_H=3Dhashtab.h >> tmp-header-vars; echo OBSTACK_H=3Dobstack.h >> =
tmp-header-vars; . . . echo GTFILES_LANG_H=3Dgtype-ada.h gtype-c.h =
gtype-cp.h gtype-fortran.h gtype-go.h gtype-java.h gtype-jit.h =
gtype-lto.h gtype-objc.h gtype-objcp.h >> tmp-header-vars; \
> /bin/sh =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/../move-if-change =
tmp-header-vars b-header-vars
> echo timestamp > s-header-vars
> /bin/sh =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/../mkinstalldirs =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin
> install  -m 0644 gtype.state =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/gtype.state
> /bin/sh =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/../mkinstalldirs =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/libexec/gcc/x86_64=
-unknown-freebsd12.0/6.4.0/plugin
> mkdir =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/libexec/gcc/x86_64=
-unknown-freebsd12.0/6.4.0/plugin
> install  -s -m 555 gengtype =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/libexec/gcc/x86_64=
-unknown-freebsd12.0/6.4.0/plugin/gengtype
> /bin/sh =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/../mkinstalldirs =
/wrkdirs/usr/ports/devel/amd64-gcc/work/stage/usr/local/lib/gcc/x86_64-unk=
nown-freebsd12.0/6.4.0/plugin/include
> headers=3D`echo tree.h tree-core.h coretypes.h all-tree.def tree.def =
c-family/c-common.def =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/ada/gcc-interface/ad=
a-tree.def =
/wrkdirs/usr/ports/devel/amd64-gcc/work/gcc-6.4.0/gcc/cp/cp-tree.def . . =
.
> . . .
>=20
>=20
> I'll note that CONFIGURATION_TARGET in /usr/ports/Mk/bsd.port.mk is =
based
> on:
>=20
> # Get the architecture
> .if !defined(ARCH)
> ARCH!=3D  ${UNAME} -p
> .endif
> HOSTARCH:=3D      ${ARCH}
> .if defined(CROSS_TOOLCHAIN)
> ARCH=3D   ${CROSS_TOOLCHAIN:C,-.*$,,}
> .endif
> _EXPORTED_VARS+=3D        ARCH
> . . .
> CONFIGURE_TARGET?=3D      ${HOSTARCH}-portbld-${OPSYS:tl}${OSREL}
> CONFIGURE_TARGET:=3D      ${CONFIGURE_TARGET:S/--build=3D//}
>=20
>=20
> It would seem that there is:
>=20
> A) The HOSTARCH that is building the cross compiler.
> B) The execution environment for the built cross compiler (ARCH).
>   (HOSTARCH=3DARCH is possible as a limiting condition but it
>   is when they are not equal that determines which to use where.)
> C) The environment for the code generated by the cross compiler
>   (TARGETARCH in devel/*-gcc ). (Similar equality vs. inequality
>   points here.)
>=20
> If true for (A-C): in devel/powerpc64-gcc and its:
>=20
> .if ${???} =3D=3D "amd64"
> CONFIGURE_TARGET=3D       x86_64-unknown-${OPSYS:tl}${OSREL}
> .else
> CONFIGURE_TARGET=3D       ${???}-unknown-${OPSYS:tl}${OSREL}
> .endif
>=20
> which of HOSTARCH, ARCH, or TARGETARCH should each ??? be?
> (HOSTARCH does not seem to be exported from bsd.port.mk
> but conceptually . . .) No combination of ARCH and/or
> TARGETARCH would match HOSTARCH for both ???'s.

Looks like the FreeBSD naming and the GCC naming are mismatched,
quoting https://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html :

QUOTE

There are three system names that the build knows about: the machine you =
are building on (build), the machine that you are building for (host), =
and the machine that GCC will produce code for (target). When you =
configure GCC, you specify these with --build=3D, --host=3D, and =
--target=3D.

END QUOTE

If I read that right, mixing the two contexts goes something like:
(Ignoring suffix text and amd64 vs. x86_64 name translations.)

--build=3D${HOSTARCH}
--host=3D${ARCH}
--target=3D${TARGETARCH}

(HOSTARCH vs. --host is a likely source for confusions.)

If right, then the answer to my earlier question would be:
???=3DHOSTARCH since CONFIGURE_TARGET is used with --build
in some contexts. (As stands HOSTARCH=3DARCH seems to be
required but I was after the more conceptual classification.)

Earlier I probably should have shown the code:

.if defined(CROSS_TOOLCHAIN)
CROSS_HOST=3D             =
${ARCH:S/amd64/x86_64/}-unknown-${OPSYS:tl}${OSREL}
CONFIGURE_ARGS+=3D        --host=3D${CROSS_HOST}
.endif

as well.



Hmm. Looking I see:

        if [ -z "`${CONFIGURE_CMD} --version 2>&1 | ${EGREP} -i =
'(autoconf.*2\.13|Unrecognized option)'`" ]; then \
                _LATE_CONFIGURE_ARGS=3D"$${_LATE_CONFIGURE_ARGS} =
--build=3D${CONFIGURE_TARGET}" ; \
        else \
                _LATE_CONFIGURE_ARGS=3D"$${_LATE_CONFIGURE_ARGS} =
${CONFIGURE_TARGET}" ; \
        fi ;

but 2.13 is rather old and the description for the other clause (no =
--build=3D) says:

( https://www.gnu.org/software/autoconf/manual/autoconf.html says . . . =
)

QUOTE

For backward compatibility, configure accepts a system type as an option =
by itself. Such an option overrides the defaults for build, host, and =
target system types. The following configure statement configures a =
cross toolchain that runs on NetBSD/alpha but generates code for GNU =
Hurd/sparc, which is also the build platform.

     ./configure --host=3Dalpha-netbsd sparc-gnu

In Autoconf 2.13 and before, the variables build, host, and target had a =
different semantics before and after the invocation of =
AC_CANONICAL_BUILD etc. Now, the argument of --build is strictly copied =
into build_alias, and is left empty otherwise. After the =
AC_CANONICAL_BUILD, build is set to the canonicalized build type. To =
ease the transition, before, its contents is the same as that of =
build_alias. Do not rely on this broken feature.

For consistency with the backward compatibility scheme exposed above, =
when --host is specified but --build isn't, the build system is assumed =
to be the same as --host, and =E2=80=98build_alias=E2=80=99 is set to =
that value. Eventually, this historically incorrect behavior will go =
away.

END QUOTE

Messy.



=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?57B1EBC3-1586-4495-9C1E-0560D4EDF328>