32-bit apps on 64-bit OS

With Xperia 10 II which is 64-bit you can’t run 32-bit apps unless they’re specifically compiled for it. I wonder if it could be possible to have 32-bit compatibility layer like on desktop so that you could run them? I’m missing many native apps since there’s not a 64-bit version of them.

Add insult to injury, of course Android apps do not suffer from this issue. So I’m more and more relying on Android apps, which I’d frankly want to avoid.

6 Likes

Hi. As Xperia 10 II has aarch64 CPU (aka ARMv8), it is basically possible to run 32 bit arm applications (ARMv7). It is even enabled in kernel used on 10.II. I tried it with statically compiled Busybox:

[defaultuser@Xperia10II-DualSIM ~]$ file /tmp/busybox
/tmp/busybox: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, BuildID[sha1]=547c84601e0a4b885689ceedf55256f451ad401a, stripped
[defaultuser@Xperia10II-DualSIM ~]$ /tmp/busybox ash --help
BusyBox v1.31.1 () multi-call binary.

Usage: ash [-/+OPTIONS] [-/+o OPT]... [-c 'SCRIPT' [ARG0 [ARGS]] / FILE [ARGS] / -s [ARGS]]

But to support even graphical 32. bit applications, Jolla would need to build and pack almost all libraries twice. It would increase image size significantly and maintenance would be hell (even bigger than it is now).

Moreover, running armv7 binaries on aarch64 kernel is not without problems. Armv7 kernel allows unaligned memory access in user-space applications (cpu exception is handled by kernel - slow, but works). But aarch64 kernel emits SIGBUS in such case. So, some applications that works fine on armv7 hardware may have problems…

I fully understand the decision to do not include armv7 userspace to aarch64 Sailfish.

I’m missing many native apps since there’s not a 64-bit version of them.

Please name these applications. Sources are available for most of SFOS apps. Try to contact maintainers on Github or OpenRepos. Re-compile popular applications is simpler than add full armv7 support.

13 Likes

I wish this was more pronounced in the marketing for the 10 II, I just ordered one and didn’t know that the apps need to be recompiled. Now I expect most of stuff apps I use not being there for quite some time…

Also; would be nice to have some kind of indicator in the Jolla store on apps that are 64-bit compiled. Or a separate category for all 64-bit apps.

This is not the case for me, but i must confess i compiled a few myself.
Just poke the devs, and if they are still around, it will be really quick to do in 90+% of cases.

In the Jolla Store, you only see 64-bit apps when you access it from a 64-bit device.
In Storeman however, that is not the case…

2 Likes

Thanks!

I don’t have a lot of apps, so I am hoping quick turn-around on getting them all run on the new phone :slight_smile:

One problem though; if I can’t see 32-bit apps on the new phone’s Jolla Store, it means I can’t poke the devs thrue there, and need to do that on another device (and I can’t pre-check on my Xperia X whether my current apps are 64-bit).

2 Likes

One problem though; if I can’t see 32-bit apps on the new phone’s Jolla Store, it means I can’t poke the devs thrue there…

It is sad true. Web view to Harbour (Jolla store) is missing. But Harbour is not the best way howto reach developers anyway, it is not sending notification on new comment, it is easy to overlook new comments there :frowning: Luckily, most of the applications are available on OpenRepos too, development happens on Github usually and most developers are active on this forum. So, there are a lot of channels to reach them.

3 Likes

Are you sure about this? I had some apps show which did not have 64bit rpms. It could be my phone, though (the volla).

The part about store being filtered? Yes, i’m sure.
Are you sure you have an actual 64-bit port and not just a 64-bit kernel?
Could be store config, but seems unlikely since you should get 32-bit and have issues with them.

I can’t find the source for Sailfish for Volla, so i can’t check.

Good question, I’ll ask piggz. In 3.4 it was an aarch64 kernel but I could install 32bit. Presumably because that just works if everything is 32 bit. From 4.1 on, no go. I still see apps though (including one of my own that has not aarch64 yet in harbour). You can try to install them, but it ‘does nothing’? Really. Question mark.

1 Like

Is there a way to force the installation of this package?

]# pkcon install-local gpstoggle-0.1.0-1.armv7hl.rpm
Installing files                                                                                                                                   
Testing changes                                                                                                                                    
Finished                                                                                                                                          
Fatal error: [...].rpm has wrong architecture: armv7hl