Re: sys/modules/Makefile and MACHINE_ARCH vs arm64 (in use) vs aarch64 (not in use) VS. man arch; also COMPAT_FREEBSD32_ENABLED use

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.current,gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
On Aug 2, 2023, at 12:56, Mark Millard <[email protected]> wrote:

> On Aug 2, 2023, at 11:16, Warner Losh <[email protected]> wrote:
> 
>> Those all look wrong to me.
>> 
>> Warner 
>> 
>> On Wed, Aug 2, 2023, 11:27 AM Mark Millard <[email protected]> wrote:
>> man arch reports:
>> 
>>           MACHINE       MACHINE_CPUARCH       MACHINE_ARCH
>>           arm64         aarch64               aarch64
>> . . .
>>           arm           arm                   armv6, armv7
>> 
>> So I'd not expect arm64 in MACHINE_ARCH . But
>> sys/modules/Makefile has (from a grep for MACHINE_ARCH):
>> 
>> .if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "arm64"
>> .if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "arm64" || ${MACHINE_ARCH:Mpowerpc64*}
>> 
>> 
>> Another issue may be that COMPAT_FREEBSD32_ENABLED is only
>> put to use in the Makefile for MACHINE_CPUARCH being i386
>> or amd64 :
>> 
>> .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
>> _agp=           agp
>> .if ${MACHINE_CPUARCH} == "i386" || !empty(COMPAT_FREEBSD32_ENABLED)
>> . . .
> 
> 
> I'll note that, for example, i386 vs. armv7 do not match
> for some struct md_ioctl field offsets and the overall
> size.

Turns out no member offsets were different but the size
was: just differing tail padding in the structure. Still
it means some conditional differences across i386 and
armv7. (I've no clue if the 32-bit powerpc lib32/chroot
handling is working on powerpc64 vs. not. So I make no
claims relative to such.)

> Mike Karels is looking at getting struct md_ioctl32
> correctly matching each of of the contexts: i386, (32-bit)
> powerpc, and armv7.
> 
> I do not know if there are other COMPAT_FREEBSD32 adjustments
> needed for differences in memory layout across the 3 (i386,
> powerpc, armv7). md_ioctl I learned about via kyua test runs
> and looking at the background for some things it reported for
> armv7.
> 
> I've not found a clear indication of what is expected to work
> for chroot/lib32 vs. what is not expected to work. It seems
> one must look in the code and see if one finds conditional
> material based, in part, on COMPAT_FREEBSD32. It might also
> be that COMPAT_FREEBSD32 for i386 vs. armv7 vs. powerpc
> might not be intending identical coverage for all I know.
> So seeing COMPAT_FREEBSD32 might not be enough to know the
> intent.


===
Mark Millard
marklmi at yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.