mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 04:59:26 +02:00
+ parse ExpDef OMF records and delegate them to a new method
TOmfObjData.AddExportSymbol (not implemented yet) git-svn-id: trunk@42621 -
This commit is contained in:
parent
262cecf528
commit
4b54cbea1e
@ -114,6 +114,7 @@ interface
|
||||
function reffardatasection:TObjSection;
|
||||
procedure writeReloc(Data:TRelocDataInt;len:aword;p:TObjSymbol;Reloctype:TObjRelocationType);override;
|
||||
procedure AddImportSymbol(const libname,symname,symmangledname:TCmdStr;OrdNr: longint;isvar:boolean);
|
||||
procedure AddExportSymbol(aExportByOrdinal,aResidentName,aNoData:Boolean;aParmCount:Integer;aExportedName,aInternalName:string;ExportOrdinal:Word);
|
||||
property MainSource: TPathStr read FMainSource;
|
||||
property ImportLibraryList:TFPHashObjectList read FImportLibraryList;
|
||||
end;
|
||||
@ -172,7 +173,7 @@ interface
|
||||
function ReadModEnd(RawRec: TOmfRawRecord; objdata:TObjData): Boolean;
|
||||
function ReadLeOrLiDataAndFixups(RawRec: TOmfRawRecord; objdata:TObjData): Boolean;
|
||||
function ReadImpDef(Rec: TOmfRecord_COMENT; objdata:TObjData): Boolean;
|
||||
function ReadExpDef(Rec: TOmfRecord_COMENT): Boolean;
|
||||
function ReadExpDef(Rec: TOmfRecord_COMENT; objdata:TObjData): Boolean;
|
||||
function ImportOmfFixup(objdata: TObjData; objsec: TOmfObjSection; Fixup: TOmfSubRecord_FIXUP): Boolean;
|
||||
|
||||
property LNames: TOmfOrderedNameCollection read FLNames;
|
||||
@ -1107,6 +1108,14 @@ implementation
|
||||
ImportSymbol:=TImportSymbol.Create(ImportLibrary.ImportSymbolList,symname,symmangledname,OrdNr,isvar);
|
||||
end;
|
||||
|
||||
procedure TOmfObjData.AddExportSymbol(aExportByOrdinal, aResidentName,
|
||||
aNoData: Boolean; aParmCount: Integer; aExportedName,
|
||||
aInternalName: string; ExportOrdinal: Word);
|
||||
begin
|
||||
{ todo: implement }
|
||||
//Writeln('AddExportSymbol(',aExportByOrdinal,',',aResidentName,',',aNoData,',',aParmCount,',',aExportedName,',',aInternalName,',',ExportOrdinal,')');
|
||||
end;
|
||||
|
||||
{****************************************************************************
|
||||
TOmfObjOutput
|
||||
****************************************************************************}
|
||||
@ -2068,10 +2077,26 @@ implementation
|
||||
ImpDefRec.Free;
|
||||
end;
|
||||
|
||||
function TOmfObjInput.ReadExpDef(Rec: TOmfRecord_COMENT): Boolean;
|
||||
function TOmfObjInput.ReadExpDef(Rec: TOmfRecord_COMENT; objdata: TObjData): Boolean;
|
||||
var
|
||||
ExpDefRec: TOmfRecord_COMENT_EXPDEF;
|
||||
SymName: string;
|
||||
begin
|
||||
{todo: implement}
|
||||
ExpDefRec:=TOmfRecord_COMENT_EXPDEF.Create;
|
||||
ExpDefRec.DecodeFrom(Rec);
|
||||
SymName:=ExpDefRec.InternalName;
|
||||
if not CaseSensitiveSymbols then
|
||||
SymName:=UpCase(SymName);
|
||||
TOmfObjData(objdata).AddExportSymbol(
|
||||
ExpDefRec.ExportByOrdinal,
|
||||
ExpDefRec.ResidentName,
|
||||
ExpDefRec.NoData,
|
||||
ExpDefRec.ParmCount,
|
||||
ExpDefRec.ExportedName,
|
||||
SymName,
|
||||
ExpDefRec.ExportOrdinal);
|
||||
Result:=True;
|
||||
ExpDefRec.Free;
|
||||
end;
|
||||
|
||||
function TOmfObjInput.ImportOmfFixup(objdata: TObjData; objsec: TOmfObjSection; Fixup: TOmfSubRecord_FIXUP): Boolean;
|
||||
@ -2462,7 +2487,7 @@ implementation
|
||||
if not ReadImpDef(FCOMENTRecord,objdata) then
|
||||
exit;
|
||||
CC_OmfExtension_EXPDEF:
|
||||
if not ReadExpDef(FCOMENTRecord) then
|
||||
if not ReadExpDef(FCOMENTRecord,objdata) then
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user