Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Sep 2023 17:37:00 -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:  <053CA2AC-B5D6-4F2C-B89E-53BE8D4FA67B@yahoo.com>
In-Reply-To: <E541DE87-9FEB-428A-940C-36686D5A7B9C@yahoo.com>
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> <E541DE87-9FEB-428A-940C-36686D5A7B9C@yahoo.com>

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

On Sep 23, 2023, at 17:28, Mark Millard <marklmi@yahoo.com> wrote:

> 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:
>>>> 
>>>> -target armv7-unknown-freebsd
>>>> 
>>>> instead of the correct:
>>>> 
>>>> -target armv7-unknown-freebsd15.0-gnueabihf

In case it was not clear: in the Jenkins build logs, 
there were commands of the structure:

cc -march=armv7 -m32 -target armv7-unknown-freebsd15.0-gnueabihf . . . -target armv7-unknown-freebsd . . .

(So: both styles of target listed in the same command, the
incorrect one listed later.)

>>> Sorry.
>>> 
>>> That would be easier to fix/control if a separate variable
>>> is used to hold just the -target flag 
>>> 
>>> That way bsd.compat.mk could reset that varaible if needed with no harm
>>> done.
>>> 
>> 
>> 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..1e82df42391c4cec341ad368cb477fe4a14c84b8 100644
>> --- a/share/mk/bsd.compat.mk
>> +++ b/share/mk/bsd.compat.mk
>> @@ -26,16 +26,18 @@ COMPAT_COMPILER_TYPE=${COMPILER_TYPE}
>> 
>> # -------------------------------------------------------------------
>> # 32 bit world
>> +LIB32CPUFLAGS= ${LIB32CPUFLAGS.${COMPAT_COMPILER_TYPE}:U}
>> +LIB32CPUFLAGS.clang= -target ${CROSS_TARGET.clang}
>> .if ${COMPAT_ARCH} == "amd64"
>> HAS_COMPAT+= 32
>> .if empty(LIB32CPUTYPE)
>> -LIB32CPUFLAGS= -march=i686 -mmmx -msse -msse2
>> +LIB32CPUFLAGS+= -march=i686 -mmmx -msse -msse2
>> .else
>> -LIB32CPUFLAGS= -march=${LIB32CPUTYPE}
>> +LIB32CPUFLAGS+= -march=${LIB32CPUTYPE}
>> .endif
>> .if ${COMPAT_COMPILER_TYPE} == gcc
>> .else
>> -LIB32CPUFLAGS+= -target x86_64-unknown-freebsd${OS_REVISION}
>> +CROSS_TARGET.clang= x86_64-unknown-freebsd${OS_REVISION}
>> .endif
>> LIB32CPUFLAGS+= -m32
>> LIB32_MACHINE= i386
>> @@ -47,15 +49,15 @@ LIB32WMAKEFLAGS= \
>> .elif ${COMPAT_ARCH} == "powerpc64"
>> HAS_COMPAT+= 32
>> .if empty(LIB32CPUTYPE)
>> -LIB32CPUFLAGS= -mcpu=powerpc
>> +LIB32CPUFLAGS+= -mcpu=powerpc
>> .else
>> -LIB32CPUFLAGS= -mcpu=${LIB32CPUTYPE}
>> +LIB32CPUFLAGS+= -mcpu=${LIB32CPUTYPE}
>> .endif
>> 
>> .if ${COMPAT_COMPILER_TYPE} == "gcc"
>> LIB32CPUFLAGS+= -m32
>> .else
>> -LIB32CPUFLAGS+= -target powerpc-unknown-freebsd${OS_REVISION}
>> +CROSS_TARGET.clang= powerpc-unknown-freebsd${OS_REVISION}
>> .endif
>> 
>> LIB32_MACHINE= powerpc
>> @@ -66,15 +68,15 @@ LIB32WMAKEFLAGS= \
>> .elif ${COMPAT_ARCH} == "aarch64"
>> HAS_COMPAT+= 32
>> .if empty(LIB32CPUTYPE)
>> -LIB32CPUFLAGS= -march=armv7
>> +LIB32CPUFLAGS+= -march=armv7
>> .else
>> -LIB32CPUFLAGS= -mcpu=${LIB32CPUTYPE}
>> +LIB32CPUFLAGS+= -mcpu=${LIB32CPUTYPE}
>> .endif
>> 
>> LIB32CPUFLAGS+= -m32
>> .if ${COMPAT_COMPILER_TYPE} == "gcc"
>> .else
>> -LIB32CPUFLAGS+= -target armv7-unknown-freebsd${OS_REVISION}-gnueabihf
>> +CROSS_TARGET.clang= armv7-unknown-freebsd${OS_REVISION}-gnueabihf
>> .endif
>> 
>> LIB32_MACHINE= arm
>> diff --git a/share/mk/local.sys.mk b/share/mk/local.sys.mk
>> index eb21380f051c4ec8434301ed16c881d07a83dddf..dae540261f7961937db9101da32acc8dfca20e8f 100644
>> --- a/share/mk/local.sys.mk
>> +++ b/share/mk/local.sys.mk
>> @@ -97,7 +97,9 @@ META_DEPS+= ${META_NOPHONY}
>> 
>> .if ${MACHINE:Nhost*:Ncommon} != "" && ${MACHINE} != ${HOST_MACHINE}
>> # cross-building
>> -CROSS_TARGET_FLAGS?= -target ${MACHINE_ARCH}-unknown-freebsd${FREEBSD_REVISION}
>> +CROSS_TARGET.clang?= ${MACHINE_ARCH}-unknown-freebsd${FREEBSD_REVISION}
>> +CROSS_TARGET_FLAGS.clang?= -target ${CROSS_TARGET.clang}
>> +CROSS_TARGET_FLAGS?= ${CROSS_TARGET_FLAGS.${COMPILER_TYPE}}
>> CFLAGS+= ${CROSS_TARGET_FLAGS}
>> ACFLAGS+= ${CROSS_TARGET_FLAGS}
>> .endif
> 
> I see that you have since disabled the new share/mk/local.sys.mk
> code unless ${MK_DIRDEPS_BUILD} == "yes" --thus giving time
> for considering alternatives.
> 




===
Mark Millard
marklmi at yahoo.com



help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?053CA2AC-B5D6-4F2C-B89E-53BE8D4FA67B>