mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 00:19:19 +02:00
* endian fixes
This commit is contained in:
parent
ff12c6c54f
commit
f85bec0291
@ -242,6 +242,7 @@ implementation
|
|||||||
{$ifdef Test_Double_checksum}
|
{$ifdef Test_Double_checksum}
|
||||||
comphook,
|
comphook,
|
||||||
{$endif def Test_Double_checksum}
|
{$endif def Test_Double_checksum}
|
||||||
|
systems,
|
||||||
crc;
|
crc;
|
||||||
|
|
||||||
{*****************************************************************************
|
{*****************************************************************************
|
||||||
@ -718,14 +719,12 @@ begin
|
|||||||
{ update size (w/o header!) in the header }
|
{ update size (w/o header!) in the header }
|
||||||
header.size:=bufstart-sizeof(tppuheader);
|
header.size:=bufstart-sizeof(tppuheader);
|
||||||
{ set the endian flag }
|
{ set the endian flag }
|
||||||
{$IFDEF SOURCE_BIG_ENDIAN}
|
if source_info.endian = endian_little then
|
||||||
|
header.flags := header.flags or uf_little_endian
|
||||||
|
else
|
||||||
|
begin
|
||||||
header.flags := header.flags or uf_big_endian;
|
header.flags := header.flags or uf_big_endian;
|
||||||
{$ENDIF}
|
|
||||||
{$IFDEF SOURCE_LITTLE_ENDIAN}
|
|
||||||
header.flags := header.flags or uf_little_endian;
|
|
||||||
{$ENDIF}
|
|
||||||
{ Now swap the header in the correct endian (always little endian) }
|
{ Now swap the header in the correct endian (always little endian) }
|
||||||
{$IFDEF SOURCE_BIG_ENDIAN}
|
|
||||||
header.compiler := SwapWord(header.compiler);
|
header.compiler := SwapWord(header.compiler);
|
||||||
header.cpu := SwapWord(header.cpu);
|
header.cpu := SwapWord(header.cpu);
|
||||||
header.target := SwapWord(header.target);
|
header.target := SwapWord(header.target);
|
||||||
@ -733,7 +732,7 @@ begin
|
|||||||
header.size := SwapLong(header.size);
|
header.size := SwapLong(header.size);
|
||||||
header.checksum := SwapLong(header.checksum);
|
header.checksum := SwapLong(header.checksum);
|
||||||
header.interface_checksum := SwapLong(header.interface_checksum);
|
header.interface_checksum := SwapLong(header.interface_checksum);
|
||||||
{$ENDIF}
|
end;
|
||||||
{ write header and restore filepos after it }
|
{ write header and restore filepos after it }
|
||||||
opos:=filepos(f);
|
opos:=filepos(f);
|
||||||
seek(f,0);
|
seek(f,0);
|
||||||
@ -986,7 +985,10 @@ end;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.35 2003-05-23 17:03:51 peter
|
Revision 1.36 2003-05-24 13:37:10 jonas
|
||||||
|
* endian fixes
|
||||||
|
|
||||||
|
Revision 1.35 2003/05/23 17:03:51 peter
|
||||||
* write header for crc_only
|
* write header for crc_only
|
||||||
|
|
||||||
Revision 1.34 2003/04/25 20:59:34 peter
|
Revision 1.34 2003/04/25 20:59:34 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user