|
@@ -207,7 +207,12 @@ type
|
|
|
|
|
|
{ TUC_Prop }
|
|
|
|
|
|
- TUC_Prop = packed record
|
|
|
+ { On alignment-sensitive targets, at least some of them, assembler uses to forcibly align data >1 byte.
|
|
|
+ This breaks intended layout of initialized constants/variables.
|
|
|
+ A proper solution is to patch compiler to emit always unaligned directives for words/dwords/etc,
|
|
|
+ but for now just declare this record as "unpacked". This causes bloat, but it's better than having
|
|
|
+ entire unit not working at all. }
|
|
|
+ TUC_Prop = {$ifndef FPC_REQUIRES_PROPER_ALIGNMENT}packed{$endif} record
|
|
|
private
|
|
|
function GetCategory : Byte;inline;
|
|
|
procedure SetCategory(AValue : Byte);
|
|
@@ -322,7 +327,7 @@ type
|
|
|
TCollationName = string[128];
|
|
|
|
|
|
PUCA_DataBook = ^TUCA_DataBook;
|
|
|
- TUCA_DataBook = packed record
|
|
|
+ TUCA_DataBook = record
|
|
|
public
|
|
|
Base : PUCA_DataBook;
|
|
|
Version : TCollationName;
|