* split off tf_dwarf_only_local_labels from tf_dwarf_relative_addresses

git-svn-id: trunk@6573 -
This commit is contained in:
Jonas Maebe 2007-02-20 09:05:03 +00:00
parent e381214f82
commit badf5c70a0
3 changed files with 13 additions and 13 deletions

View File

@ -641,7 +641,7 @@ implementation
{ Need a new label? }
if not assigned(def.dwarf_lab) then
begin
if not(tf_dwarf_relative_addresses in target_info.flags) then
if not(tf_dwarf_only_local_labels in target_info.flags) then
begin
if (ds_dwarf_dbg_info_written in def.defstates) then
begin
@ -936,7 +936,7 @@ implementation
procedure TDebugInfoDwarf.append_labelentry_ref(attr : tdwarf_attribute;sym : tasmsymbol);
begin
current_asmdata.asmlists[al_dwarf_abbrev].concat(tai_const.create_uleb128bit(ord(attr)));
if not(tf_dwarf_relative_addresses in target_info.flags) then
if not(tf_dwarf_only_local_labels in target_info.flags) then
begin
current_asmdata.asmlists[al_dwarf_abbrev].concat(tai_const.create_uleb128bit(ord(DW_FORM_ref_addr)));
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_sym(sym))
@ -1334,7 +1334,7 @@ implementation
slen:=255;
{ create a structure with two elements }
if not(tf_dwarf_relative_addresses in target_info.flags) then
if not(tf_dwarf_only_local_labels in target_info.flags) then
current_asmdata.getdatalabel(arr)
else
current_asmdata.getaddrlabel(arr);
@ -1448,7 +1448,7 @@ implementation
if def.is_methodpointer then
begin
{ create a structure with two elements }
if not(tf_dwarf_relative_addresses in target_info.flags) then
if not(tf_dwarf_only_local_labels in target_info.flags) then
current_asmdata.getdatalabel(proc)
else
current_asmdata.getaddrlabel(proc);
@ -2711,7 +2711,7 @@ implementation
append_labelentry_ref(DW_AT_type,def_dwarf_class_struct_lab(def));
finish_entry;
if not(tf_dwarf_relative_addresses in target_info.flags) then
if not(tf_dwarf_only_local_labels in target_info.flags) then
current_asmdata.asmlists[al_dwarf_info].concat(tai_symbol.create_global(def_dwarf_class_struct_lab(def),0))
else
current_asmdata.asmlists[al_dwarf_info].concat(tai_symbol.create(def_dwarf_class_struct_lab(def),0));
@ -2728,16 +2728,15 @@ implementation
http://sources.redhat.com/ml/gdb-patches/2005-05/msg00278.html (FK) }
if assigned(def.typesym) then
append_entry(DW_TAG_base_type,false,[
append_entry(DW_TAG_set_type,false,[
DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
DW_AT_encoding,DW_FORM_data1,DW_ATE_unsigned,
DW_AT_byte_size,DW_FORM_data2,def.size
])
else
append_entry(DW_TAG_base_type,false,[
DW_AT_encoding,DW_FORM_data1,DW_ATE_unsigned,
append_entry(DW_TAG_set_type,false,[
DW_AT_byte_size,DW_FORM_data2,def.size
]);
append_labelentry_ref(DW_AT_type,def_dwarf_lab(def.elementdef));
finish_entry;
end;
@ -2812,7 +2811,7 @@ implementation
var
obj : tasmlabel;
begin
if not(tf_dwarf_relative_addresses in target_info.flags) then
if not(tf_dwarf_only_local_labels in target_info.flags) then
current_asmdata.getdatalabel(obj)
else
current_asmdata.getaddrlabel(obj);

View File

@ -298,7 +298,8 @@ interface
tf_has_dllscanner,
tf_use_function_relative_addresses,
tf_winlikewidestring,
tf_dwarf_relative_addresses
tf_dwarf_relative_addresses, // use offsets where the Dwarf spec requires this instead of absolute addresses (the latter is needed by Linux binutils)
tf_dwarf_only_local_labels // only use local labels inside the Dwarf debug_info section (needed for e.g. Darwin)
);
psysteminfo = ^tsysteminfo;

View File

@ -397,7 +397,7 @@ unit i_bsd;
system : system_powerpc_darwin;
name : 'Darwin for PowerPC';
shortname : 'Darwin';
flags : [tf_p_ext_support,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses];
flags : [tf_p_ext_support,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,tf_dwarf_only_local_labels];
cpu : cpu_powerpc;
unit_env : 'BSDUNITS';
extradefines : 'UNIX;BSD;HASUNIX';
@ -458,7 +458,7 @@ unit i_bsd;
system : system_i386_darwin;
name : 'Darwin for i386';
shortname : 'Darwin';
flags : [tf_p_ext_support,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses];
flags : [tf_p_ext_support,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,tf_dwarf_only_local_labels];
cpu : cpu_i386;
unit_env : 'BSDUNITS';
extradefines : 'UNIX;BSD;HASUNIX';