[PATCH v2] loader: Add support for ARM linux in the preloader

Martin Storsjö martin at martin.st
Tue Aug 3 06:50:03 CDT 2021


On Tue, 3 Aug 2021, Jacek Caban wrote:

> Hi Martin,
>
> On 8/3/21 11:46 AM, Martin Storsjö wrote:
>> As the preloader is linked with -nodefaultlibs, we need to provide
>> builtin helpers for division on arm (that normally are provided by
>> libgcc or compiler-rt).
>
>
> I wonder how hard it would be to avoid using divisions in preloader code 
> instead. If that's not an option, maybe we could have a naive version of 
> those helpers in C.

Ok, I'll give that a shot. Yeah that sounds like it would be less of a 
mess than adding these.

> As a side note, we should probably have those helpers in winecrt0 for PE 
> targets, but that wouldn't help preloader for which I think it would be nice 
> to use a simpler solution, if possible.

Yep - currently it's possible to build in PE mode for ARM if you build 
with a mingw compiler that has compiler-rt builtins, but if building in 
MSVC mode, you run into the fact that these are missing. I did a shot at 
importing the missing ones from compiler-rt into winecrt0, but one needs a 
pretty significant number of them:

__rt_sdiv
__rt_sdiv64
__rt_udiv
__rt_udiv64
__dtoi64
__stoi64
__dtou64
__stou64
__i64tod
__i64tos
__u64tod
__u64tos

Importing all of those from compiler-rt requires pulling in 27 new files 
from there - which is pretty unwieldy.

// Martin


More information about the wine-devel mailing list