Re: problems on FreeBSD14 on armv6 board (RPI1-B)

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
On Dec 22, 2023, at 20:26, Mark Millard <[email protected]> wrote:

> On Dec 17, 2023, at 23:34, Alex Samorukov <[email protected]> wrote:
> 
>> On 2023/12/18 01:41, Mark Millard wrote:
>> 
>>> I'll note that I've never done such "armv6-only processor" testing.
>>> I'll not have access to any FreeBSD arm6, arm7, or aarch64 contexts
>>> until after something like 2024-Jan-01.
>> I also checked llvm compilation logs:
>> 
>> -- LLVM host triple: armv6-portbld-freebsd13.2-gnueabihf
>> -- LLVM default target triple: armv6-portbld-freebsd13.2-gnueabihf
>> 
>> So I would expect it will not use armv7 instructions based on the "host" (jail) EABI.
>> 
>> Also, I see that rust is failing to build:
>> 
>> rust-1.74.1.log:=>> Ignoring lang/rust: is only for aarch64 amd64 armv7 i386 powerpc powerpc64 powerpc64le riscv64, while you are running armv6 (reason: requires prebuilt bootstrap compiler)
>> 
>> Not sure if it's done due to qemu problem or not, maybe will try to remove ignore later and rebuild
> 
> I got access to one of the RPi4B's, so looking for myself . . .
> 
> I used FreeBSD-14.0-STABLE-arm64-aarch64-RPI-20231216-2ef9079ece5a-266002.img
> dd'd to media in order to boot:
> 
> # uname -apKU
> FreeBSD generic 14.0-STABLE FreeBSD 14.0-STABLE #0 stable/14-n266002-2ef9079ece5a: Sat Dec 16 08:49:23 UTC 2023     [email protected]:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC arm64 aarch64 1400501 1400501
> 
> I downloaded FreeBSD-13.2-STABLE-arm-armv6-RPI-B-20231216-9986fd59d855-256898.img
> and dd'd it to media as well.
> 
> # mount -onoatime /dev/da1s2a /mnt
> 
> # file /mnt/bin/sh
> /mnt/bin/sh: ELF 32-bit LSB executable, ARM, EABI5 version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, FreeBSD-style, for FreeBSD 13.2 (1302509), stripped
> 
> # chroot /mnt/
> 
> # uname -apKU
> FreeBSD generic 14.0-STABLE FreeBSD 14.0-STABLE #0 stable/14-n266002-2ef9079ece5a: Sat Dec 16 08:49:23 UTC 2023     [email protected]:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC arm armv7 1400501 1302509
> 
> Note the "arm armv7". An aarch64 kernel can be built and booted
> that makes that "arm armv6" so that more things work.
> 
> # uname -p
> armv7

FYI:

# env UNAME_p=armv6 chroot /mnt/
# uname -p
armv6

> # make -V MACHINE_ARCH
> armv6
> 
> That contradicts what man uname reports relative to "uname -p" and "MACHINE_ARCH":
> 
>     -p      Write the type of the machine processor architecture to standard
>             output.  (make(1) uses it to set the MACHINE_ARCH variable.)
> 
> # c++ -v
> FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152)
> Target: armv6-unknown-freebsd13.2-gnueabihf
> Thread model: posix
> InstalledDir: /usr/bin
> 
> So, without the adjusted kernel, an odd mix of armv6 and armv7.
> 
> 
> 
> As for rust vs. armv6: the lang/rust/Makefile has:
> 
> ONLY_FOR_ARCHS?= aarch64 amd64 armv7 i386 powerpc64 powerpc64le powerpc \
> ONLY_FOR_ARCHS_REASON?= requires prebuilt bootstrap compiler



===
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.