[fpc-devel] AVR - assembler error when compiling large files
Florian Klämpfl
florian at freepascal.org
Sat Nov 25 18:27:52 CET 2017
Am 25.11.2017 um 16:53 schrieb Christo:
> I am busy adding extra definitions to the AVR mcu files. I've
> encountered a problem when building some controller files with lots of
> record and set definitions. When I build the RTL the build process
> fails with lots of assembler errors:
> ../../rtl/units/avr-embedded/atmega32u4.s: Assembler messages:
> ../../rtl/units/avr-embedded/atmega32u4.s:37285: Error: value of 65611
> too large for field of 2 bytes at 65609
>
> The lines surrounding the first error:
> _sATMEGA32U4s_Ld549:
> .uleb128 6
> .ascii "rtti_enum_basetype_array_rec$00000070\000"
> .short .La454 <===== line 37285
> .La454:
> .uleb128 12
> .ascii "$RTTI_ENUM_BASETYPE_ARRAY_REC$00000070\000"
>
> It seems as if there are too many data entries to fit into a 16 bit
> value (.short). Note that this is only an issue for large files,
> smaller files do not have this problem.
What happens if you compile them with -CX?
>
> Is there a way to instruct the compiler to use a larger data type when
> emitting this information to the assembler file?
This makes no sense as the program code using this data would not know about this.
More information about the fpc-devel
mailing list