mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-23 09:29:27 +01:00
+ support RELOC_RELATIVE relocations in the omf object writer, by using omf's
"self relative" (instead of "segment relative") fixups. "Hello world" and fpctris in the small memory model now work (under dosbox, at least) with the internal object writer. git-svn-id: trunk@30581 -
This commit is contained in:
parent
bd460eec43
commit
03e8c3ae05
@ -157,7 +157,12 @@ implementation
|
||||
FOmfFixup.LocationType:=fltOffset;
|
||||
FOmfFixup.FrameDeterminedByThread:=False;
|
||||
FOmfFixup.TargetDeterminedByThread:=False;
|
||||
FOmfFixup.Mode:=fmSegmentRelative;
|
||||
if typ=RELOC_ABSOLUTE then
|
||||
FOmfFixup.Mode:=fmSegmentRelative
|
||||
else if typ=RELOC_RELATIVE then
|
||||
FOmfFixup.Mode:=fmSelfRelative
|
||||
else
|
||||
internalerror(2015041401);
|
||||
FOmfFixup.TargetMethod:=ftmSegmentIndexNoDisp;
|
||||
FOmfFixup.TargetDatum:=ObjSection.Index;
|
||||
if TOmfObjSection(ObjSection).PrimaryGroup<>'' then
|
||||
@ -174,7 +179,12 @@ implementation
|
||||
FOmfFixup.LocationType:=fltOffset;
|
||||
FOmfFixup.FrameDeterminedByThread:=False;
|
||||
FOmfFixup.TargetDeterminedByThread:=False;
|
||||
FOmfFixup.Mode:=fmSegmentRelative;
|
||||
if typ=RELOC_ABSOLUTE then
|
||||
FOmfFixup.Mode:=fmSegmentRelative
|
||||
else if typ=RELOC_RELATIVE then
|
||||
FOmfFixup.Mode:=fmSelfRelative
|
||||
else
|
||||
internalerror(2015041401);
|
||||
FOmfFixup.TargetMethod:=ftmExternalIndexNoDisp;
|
||||
FOmfFixup.TargetDatum:=symbol.symidx;
|
||||
FOmfFixup.FrameMethod:=ffmTarget;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user