Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Sep 2023 17:28:22 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        "Simon J. Gerraty" <sjg@juniper.net>
Cc:        Mike Karels <mike@karels.net>, stevek@juniper.net, dev-commits-src-main@freebsd.org
Subject:   Re: git: f9df60975087 - main - Add support for host32 for DIRDEPS_BUILD
Message-ID:  <E541DE87-9FEB-428A-940C-36686D5A7B9C@yahoo.com>
In-Reply-To: <8033.1695509469@kaos.jnpr.net>
References:  <79F167D9-DF7A-4714-92EE-3B9FBB7BF912.ref@yahoo.com> <79F167D9-DF7A-4714-92EE-3B9FBB7BF912@yahoo.com> <2401.1695508551@kaos.jnpr.net> <8033.1695509469@kaos.jnpr.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sep 23, 2023, at 15:51, Simon J. Gerraty <sjg@juniper.net> wrote:

> Simon J. Gerraty <sjg@juniper.net> wrote:
>>> Looks like this broke lib32 builds via it ending up using
>>> the default:
>>>=20
>>> -target armv7-unknown-freebsd
>>>=20
>>> instead of the correct:
>>>=20
>>> -target armv7-unknown-freebsd15.0-gnueabihf
>>=20
>> Sorry.
>>=20
>> That would be easier to fix/control if a separate variable
>> is used to hold just the -target flag=20
>>=20
>> That way bsd.compat.mk could reset that varaible if needed with no =
harm
>> done.
>>=20
>=20
> Does the following look like it would DTRT for you?
> Not sure about COMPILER_TYPE vs COMPAT_COMPILER_TYPE

I reported strictly based on noticing the official FreeBSD
Jenkins activity having build failures. My environment is
currently based on a commit that is a day or two before
your change, so I'd need to progress in order to be able
to test anything that fixed the operation.

I expect that Mike Karels would be a better one to comment
on any alternate structuring for having the build environment
always be explicit for its aarch64 -m32 use, at least based
on preexisting familiarity with where and how things are used.

Last I tried, gcc12 based builds did not work/finish for
aarch64, even though amd64 was working at the time. It seemed
that the status was not a surprise to folks. Correctly
covering gcc12 use for this issue may well still end up with
a broken/incomplete aarch64+LIB32 build via gcc12 --for other
reasons.

(E-mail has a tendency to not preserve leading whitespace.)

> diff --git a/share/mk/bsd.compat.mk b/share/mk/bsd.compat.mk
> index =
0c387bcb020c67ea6eda8fc1f4956eebf098e2a2..1e82df42391c4cec341ad368cb477fe4=
a14c84b8 100644
> --- a/share/mk/bsd.compat.mk
> +++ b/share/mk/bsd.compat.mk
> @@ -26,16 +26,18 @@ COMPAT_COMPILER_TYPE=3D${COMPILER_TYPE}
>=20
> # -------------------------------------------------------------------
> # 32 bit world
> +LIB32CPUFLAGS=3D ${LIB32CPUFLAGS.${COMPAT_COMPILER_TYPE}:U}
> +LIB32CPUFLAGS.clang=3D -target ${CROSS_TARGET.clang}
> .if ${COMPAT_ARCH} =3D=3D "amd64"
> HAS_COMPAT+=3D 32
> .if empty(LIB32CPUTYPE)
> -LIB32CPUFLAGS=3D -march=3Di686 -mmmx -msse -msse2
> +LIB32CPUFLAGS+=3D -march=3Di686 -mmmx -msse -msse2
> .else
> -LIB32CPUFLAGS=3D -march=3D${LIB32CPUTYPE}
> +LIB32CPUFLAGS+=3D -march=3D${LIB32CPUTYPE}
> .endif
> .if ${COMPAT_COMPILER_TYPE} =3D=3D gcc
> .else
> -LIB32CPUFLAGS+=3D -target x86_64-unknown-freebsd${OS_REVISION}
> +CROSS_TARGET.clang=3D x86_64-unknown-freebsd${OS_REVISION}
> .endif
> LIB32CPUFLAGS+=3D -m32
> LIB32_MACHINE=3D i386
> @@ -47,15 +49,15 @@ LIB32WMAKEFLAGS=3D \
> .elif ${COMPAT_ARCH} =3D=3D "powerpc64"
> HAS_COMPAT+=3D 32
> .if empty(LIB32CPUTYPE)
> -LIB32CPUFLAGS=3D -mcpu=3Dpowerpc
> +LIB32CPUFLAGS+=3D -mcpu=3Dpowerpc
> .else
> -LIB32CPUFLAGS=3D -mcpu=3D${LIB32CPUTYPE}
> +LIB32CPUFLAGS+=3D -mcpu=3D${LIB32CPUTYPE}
> .endif
>=20
> .if ${COMPAT_COMPILER_TYPE} =3D=3D "gcc"
> LIB32CPUFLAGS+=3D -m32
> .else
> -LIB32CPUFLAGS+=3D -target powerpc-unknown-freebsd${OS_REVISION}
> +CROSS_TARGET.clang=3D powerpc-unknown-freebsd${OS_REVISION}
> .endif
>=20
> LIB32_MACHINE=3D powerpc
> @@ -66,15 +68,15 @@ LIB32WMAKEFLAGS=3D \
> .elif ${COMPAT_ARCH} =3D=3D "aarch64"
> HAS_COMPAT+=3D 32
> .if empty(LIB32CPUTYPE)
> -LIB32CPUFLAGS=3D -march=3Darmv7
> +LIB32CPUFLAGS+=3D -march=3Darmv7
> .else
> -LIB32CPUFLAGS=3D -mcpu=3D${LIB32CPUTYPE}
> +LIB32CPUFLAGS+=3D -mcpu=3D${LIB32CPUTYPE}
> .endif
>=20
> LIB32CPUFLAGS+=3D -m32
> .if ${COMPAT_COMPILER_TYPE} =3D=3D "gcc"
> .else
> -LIB32CPUFLAGS+=3D -target =
armv7-unknown-freebsd${OS_REVISION}-gnueabihf
> +CROSS_TARGET.clang=3D armv7-unknown-freebsd${OS_REVISION}-gnueabihf
> .endif
>=20
> LIB32_MACHINE=3D arm
> diff --git a/share/mk/local.sys.mk b/share/mk/local.sys.mk
> index =
eb21380f051c4ec8434301ed16c881d07a83dddf..dae540261f7961937db9101da32acc8d=
fca20e8f 100644
> --- a/share/mk/local.sys.mk
> +++ b/share/mk/local.sys.mk
> @@ -97,7 +97,9 @@ META_DEPS+=3D ${META_NOPHONY}
>=20
> .if ${MACHINE:Nhost*:Ncommon} !=3D "" && ${MACHINE} !=3D =
${HOST_MACHINE}
> # cross-building
> -CROSS_TARGET_FLAGS?=3D -target =
${MACHINE_ARCH}-unknown-freebsd${FREEBSD_REVISION}
> +CROSS_TARGET.clang?=3D =
${MACHINE_ARCH}-unknown-freebsd${FREEBSD_REVISION}
> +CROSS_TARGET_FLAGS.clang?=3D -target ${CROSS_TARGET.clang}
> +CROSS_TARGET_FLAGS?=3D ${CROSS_TARGET_FLAGS.${COMPILER_TYPE}}
> CFLAGS+=3D ${CROSS_TARGET_FLAGS}
> ACFLAGS+=3D ${CROSS_TARGET_FLAGS}
> .endif

I see that you have since disabled the new share/mk/local.sys.mk
code unless ${MK_DIRDEPS_BUILD} =3D=3D "yes" --thus giving time
for considering alternatives.


=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E541DE87-9FEB-428A-940C-36686D5A7B9C>