Re: Future of 32-bit platforms (including i386)

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 27 Apr 2023 18:57:58 UTC
Robert Clausecker <fuz_at_fuz.su> wrote on
Date: Thu, 27 Apr 2023 18:18:55 UTC  :

> I would very much appreciate if lib32 support stays in (or is completed
> in the case of aarch64). Without it, FreeBSD becomes a lot less useful
> as a well rounded development system as you can no longer test code for
> 32 bit platforms. I also have a need for armv7 user space code in
> particular as I participate in and maintain the FreeBSD port of a Forth
> system written in armv7 assembly. Being able to run the same code you
> run on a microcontroller on a hosted platform makes it a lot easier to
> test and develop.

What I do for armv7 on aarch64 is to install an armv7
world into a directory tree and chroot into that world.
As I understand jails also work. One can install armv7
ports and such in the alternate world.

But I do not use X11 or other such so my range of
experience is limited and there could be issues that
I just do not know about.

> As for running 32 bit kernels, I do not really have an opinion.


For reference, for some examples details , including
some things not mentioned:

# ls -Tld /usr/obj/DESTDIRs/main-CA7-*/
drwxr-xr-x  19 root  wheel  22 Jul 14 13:17:19 2022 /usr/obj/DESTDIRs/main-CA7-chroot/
drwxr-xr-x  18 root  wheel  21 Apr 25 01:50:22 2023 /usr/obj/DESTDIRs/main-CA7-poud-bulk_a/
drwxr-xr-x  18 root  wheel  21 Apr 25 01:51:29 2023 /usr/obj/DESTDIRs/main-CA7-poud/

# more ~/do-chroot-main-CA7.sh 
#! /bin/sh
mkdir -p /usr/obj/DESTDIRs/main-CA7-chroot/dev/ \
&& mount -tdevfs devfs /usr/obj/DESTDIRs/main-CA7-chroot/dev/ \
&& mkdir -p /usr/obj/DESTDIRs/main-CA7-chroot/usr/local/poudriere/data/packages/main-CA7-default/ \
&& mount_nullfs /usr/local/poudriere/data/packages/main-CA7-default \
   /usr/obj/DESTDIRs/main-CA7-chroot/usr/local/poudriere/data/packages/main-CA7-default/ \
&& mkdir -p /usr/obj/DESTDIRs/main-CA7-chroot/usr/ports/ \
&& mount_nullfs /usr/ports /usr/obj/DESTDIRs/main-CA7-chroot/usr/ports/ \
&& env IN_CHROOT="main-CA7-chroot" chroot /usr/obj/DESTDIRs/main-CA7-chroot/
umount /usr/obj/DESTDIRs/main-CA7-chroot/usr/ports/
umount /usr/obj/DESTDIRs/main-CA7-chroot/usr/local/poudriere/data/packages/main-CA7-default/
umount /usr/obj/DESTDIRs/main-CA7-chroot/dev/

(IN_CHROOT is just a personal thing: not required.)

# poudriere jail -l
JAILNAME          VERSION      ARCH          METHOD TIMESTAMP           PATH
main-CA53         14.0-CURRENT arm64.aarch64 null   2021-06-27 17:57:33 /usr/obj/DESTDIRs/main-CA53-poud
main-CA7          14.0-CURRENT arm.armv7     null   2021-06-27 17:58:33 /usr/obj/DESTDIRs/main-CA7-poud
main-CA7-bulk_a   14.0-CURRENT arm.armv7     null   2021-12-04 14:54:10 /usr/obj/DESTDIRs/main-CA7-poud-bulk_a
main-CA72         14.0-CURRENT arm64.aarch64 null   2021-06-27 17:48:11 /usr/obj/DESTDIRs/main-CA72-poud
main-CA72-bulk_a  14.0-CURRENT arm64.aarch64 null   2021-12-04 14:54:44 /usr/obj/DESTDIRs/main-CA72-poud-bulk_a
main-CA78C        14.0-CURRENT arm64.aarch64 null   2023-04-26 18:55:46 /usr/obj/DESTDIRs/main-CA78C-poud
main-CA78C-bulk_a 14.0-CURRENT arm64.aarch64 null   2023-04-26 18:56:06 /usr/obj/DESTDIRs/main-CA78C-poud-bulk_a

I do the building of packages from ports without doing
a chroot first. But /usr/obj/DESTDIRs/main-CA7-poud and
/usr/obj/DESTDIRs/main-CA7-poud-bulk_a are again
directorties with armv7 worlds installed, but with:

installworld distrib-dirs distribution DB_FROM_SRC=1

as is appropriate for poudriere using the world.

===
Mark Millard
marklmi at yahoo.com