Compiler error when compiling druntime for ARM float=soft

IGotD- nise at nise.com
Wed Apr 15 18:31:55 UTC 2020


I'm trying get druntime to compile for ARMv7 but with software 
floating point. When the first druntime module try to compile I 
get this error.

LVM ERROR: Cannot select: 0x8818a78: f64 = bitcast 0x88186d0
   0x88186d0: i64 = build_pair 0x8819090, 0x88191c8
     0x8819090: i32,ch = CopyFromReg 0x8575238, Register:i32 %15
       0x865fae0: i32 = Register %15
     0x88191c8: i32,ch = CopyFromReg 0x8819090:1, Register:i32 %16
       0x8818db8: i32 = Register %16
In function: _memset80

Among other things I'm using the following architecture flags 
when compiling, this for a custom target.

--dFlags=-mtriple=arm-none-eabi --dFlags=-mcpu=cortex-a9 
--dFlags=--mattr=+thumb2 --dFlags=--mattr=+soft-float 
--dFlags=--relocation-model=pic

If I remove "--dFlags=--mattr=+soft-float", the build succeeds 
(only the first module, however that's the only one I'm 
interested in for now, ldc-build-runtime inserts double 
--dFlags=--relocation-model=pic which the build doesn't like when 
compiling the shared library version which is strange because I 
have added BUILD_SHARED_LIBS=OFF).


More information about the digitalmars-d-ldc mailing list