* enabled generation of dwarf frames for non x64 targets when dwarf debug info is requested

* renamed al_dwarf enum to al_dwarf_frame since this enum only enables frame generation
* renamed create_dwarf procedure for the same reason
* skipped check for dwarf support in assember, since we generate all dwarf info ourselves

git-svn-id: trunk@12906 -
This commit is contained in:
Marc Weustink 2009-03-16 23:43:26 +00:00
parent f54089a5e2
commit 0efd37a4c9
2 changed files with 14 additions and 12 deletions

View File

@ -57,7 +57,7 @@ interface
al_exports,
al_resources,
al_rtti,
al_dwarf,
al_dwarf_frame,
al_dwarf_info,
al_dwarf_abbrev,
al_dwarf_line,
@ -96,7 +96,7 @@ interface
'al_exports',
'al_resources',
'al_rtti',
'al_dwarf',
'al_dwarf_frame',
'al_dwarf_info',
'al_dwarf_abbrev',
'al_dwarf_line',

View File

@ -133,18 +133,20 @@ implementation
end;
procedure create_dwarf;
procedure create_dwarf_frame;
begin
{ Dwarf conflicts with smartlinking in separate .a files }
if create_smartlink_library then
exit;
{ Call frame information }
if (tf_needs_dwarf_cfi in target_info.flags) and
(af_supports_dwarf in target_asm.flags) then
{ MWE: we write our own info, so dwarf asm support is not really needed }
{ if (af_supports_dwarf in target_asm.flags) and }
if (tf_needs_dwarf_cfi in target_info.flags) or
(paratargetdbg in [dbg_dwarf2, dbg_dwarf3]) then
begin
current_asmdata.asmlists[al_dwarf].Free;
current_asmdata.asmlists[al_dwarf] := TAsmList.create;
current_asmdata.asmcfi.generate_code(current_asmdata.asmlists[al_dwarf]);
current_asmdata.asmlists[al_dwarf_frame].Free;
current_asmdata.asmlists[al_dwarf_frame] := TAsmList.create;
current_asmdata.asmcfi.generate_code(current_asmdata.asmlists[al_dwarf_frame]);
end;
end;
@ -1246,8 +1248,8 @@ implementation
if ag then
begin
{ create dwarf debuginfo }
create_dwarf;
{ create callframe info }
create_dwarf_frame;
{ assemble }
create_objectfile;
end;
@ -2200,8 +2202,8 @@ implementation
{ Insert symbol to resource info }
InsertResourceInfo(resources_used);
{ create dwarf debuginfo }
create_dwarf;
{ create callframe info }
create_dwarf_frame;
{ insert own objectfile }
insertobjectfile;