Hi,

Thanks!  This works perfectly.

cheers

bruce

On 2023-04-11T15:22:52.000+02:00, Tobias Pape <Das.Linux@gmx.de> wrote:
Hi Bruce,


On 11. Apr 2023, at 14:05, Tobias Pape <Das.Linux@gmx.de> wrote:

[…]


On 2023-03-31T13:08:28.000+02:00, Tobias Pape <Das.Linux@gmx.de> wrote:
Hey Bruce


On 31. Mar 2023, at 12:03, Bruce O'Neel <bruce.oneel@pckswarms.ch> wrote:

Hi,

That's a good idea, but let's wait just a touch. I suspect that we're not the only ones running into this.

The only place where we would need this is around line 18582 of

opensmalltalk-vm/platforms/unix/config/configure

aarch64)
# Check whether --enable-fast-bitblt was given.
if test "${enable_fast_bitblt+set}" = set; then :
enableval=$enable_fast_bitblt; if test "x$enableval" = "xyes" ; then
bitblt_objs="BitBltPlugin.o BitBltArm64.o BitBltDispatch.o BitBltGeneric.o"
bitblt_flags="-DENABLE_FAST_BLT"
fi

fi

This seems to be the only place where we use the architecture and we have not overridden it.

Also I think we should have a bigger discussion about do we continue with 32 bit OSes and/or 32 bit builds? But I'll make that a separate email exchange.


since its a raspbian, can you get me the output of

$ dpkg-architecture

? I think we could well work with that…


Ok, I whipped up something.

Can you try this branch?

https://github.com/OpenSmalltalk/opensmalltalk-vm/tree/krono/pi-aarch64-32bit-userland-bitblt-fix


Best regards
-Tobias


Best regards
-Tobias

cheers

bruce


On 2023-03-30T23:22:16.000+02:00, Eliot Miranda <eliot.miranda@gmail.com> wrote:
Hi Bruce,

maybe we should introduce a helper C file, wordsize.c or some such. It could be as simple as

#include <stdio.h>
int main() { printf("%d\n", sizeof(void *)); return 0; }

we would then compile that first and use its output to determine what to do next. More reliable than uname? What do you think?


On Thu, Mar 30, 2023 at 11:23 AM Bruce O'Neel <bruce.oneel@pckswarms.ch> wrote:
Hi all,

First, this is not our problem :-). But it affects us.

I have kept a 32 bit Pi OS around even though the rest of my ARM systems are 64 bit.

Until today Squeak built fine. The last build I did was 901401c from the 28th but tonight it started failing on Pi OS 32 bit with:

tmp/opensmalltalk-vm/platforms/Cross/plugins/BitBltPlugin/BitBltArm64.c:261:9: error: invalid 'asm': invalid operand for code 'w'

which is bizarre. Why would it start building the BitBltArm64.c plugin? It's ARM32 (armv7l to be exact).

And the is no way that the two commits since the last successful build could have changed this. And what do you know, that commit fails as well now.

But there is the problem. uname -m returned armv7l. Yesterday

But today it does not return armv7l. Today uname -m and arch both return aarch64.

Which is technically at some level correct. This system IS a PI/400 so therefore it is an ARM64, but with a 32 bit OS installed.

I think the change is this package:

libc-bin:armhf 2.31-13+rpt2+rpi1+deb11u5

We'll see if Debian or Raspberry PI fixes this in the next few days.

cheers

bruce