[fpc-devel] AVR - assembler error when compiling large files

Christo christo.crause at gmail.com
Sat Nov 25 16:53:06 CET 2017

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:
	.uleb128	6
	.ascii	"rtti_enum_basetype_array_rec$00000070\000"
	.short	.La454  <===== line 37285
	.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.

 Is there a way to instruct the compiler to use a larger data type when
emitting this information to the assembler file?

More information about the fpc-devel mailing list