Browse Source

Declare the indirect symbols as "Private for Extern".

ncgrtti.pas, TRTTIWriter:
  * write_rtti_extrasyms.enumdef_rtti_ord2stringindex, write_rtti_extrasyms.enumdef_rtti_string2ordindex & write_rtti: use AB_PRIVATE_EXTERN instead of AB_GLOBAL for the indirect symbol
ngenutil.pas, tnodeutils:
  * insertbssdata: use AB_PRIVATE_EXTERN instead of AB_GLOBAL for the indirect symbol
ptconst.pas, read_typed_const:
  * use AB_PRIVATE_EXTERN instead of AB_GLOBAL for the indirect symbol

git-svn-id: branches/svenbarth/packages@28794 -
svenbarth 11 years ago
parent
commit
f213d5d6ec
3 changed files with 5 additions and 5 deletions
  1. 3 3
      compiler/ncgrtti.pas
  2. 1 1
      compiler/ngenutil.pas
  3. 1 1
      compiler/ptconst.pas

+ 3 - 3
compiler/ncgrtti.pas

@@ -1147,7 +1147,7 @@ implementation
                 end;
                 end;
               asmlists[al_rtti].concat(Tai_symbol_end.create(rttilab));
               asmlists[al_rtti].concat(Tai_symbol_end.create(rttilab));
               { write the indirect symbol }
               { write the indirect symbol }
-              rttilabind:=current_asmdata.DefineAsmSymbol(tstoreddef(def).rtti_mangledname(rt,true)+'_o2s',AB_GLOBAL,AT_DATA);
+              rttilabind:=current_asmdata.DefineAsmSymbol(tstoreddef(def).rtti_mangledname(rt,true)+'_o2s',AB_PRIVATE_EXTERN,AT_DATA);
               current_asmdata.asmlists[al_rtti].concat(Tai_symbol.Create_Global(rttilabind,0));
               current_asmdata.asmlists[al_rtti].concat(Tai_symbol.Create_Global(rttilabind,0));
               current_asmdata.asmlists[al_rtti].concat(Tai_const.Createname(rttilab.name,AT_DATA,0));
               current_asmdata.asmlists[al_rtti].concat(Tai_const.Createname(rttilab.name,AT_DATA,0));
               current_asmdata.asmlists[al_rtti].concat(tai_symbol_end.Create(rttilabind));
               current_asmdata.asmlists[al_rtti].concat(tai_symbol_end.Create(rttilabind));
@@ -1184,7 +1184,7 @@ implementation
                 end;
                 end;
               asmlists[al_rtti].concat(Tai_symbol_end.create(rttilab));
               asmlists[al_rtti].concat(Tai_symbol_end.create(rttilab));
               { write the indirect symbol }
               { write the indirect symbol }
-              rttilabind:=current_asmdata.DefineAsmSymbol(tstoreddef(def).rtti_mangledname(rt,true)+'_s2o',AB_GLOBAL,AT_DATA);
+              rttilabind:=current_asmdata.DefineAsmSymbol(tstoreddef(def).rtti_mangledname(rt,true)+'_s2o',AB_PRIVATE_EXTERN,AT_DATA);
               current_asmdata.asmlists[al_rtti].concat(Tai_symbol.Create_Global(rttilabind,0));
               current_asmdata.asmlists[al_rtti].concat(Tai_symbol.Create_Global(rttilabind,0));
               current_asmdata.asmlists[al_rtti].concat(Tai_const.Createname(rttilab.name,AT_DATA,0));
               current_asmdata.asmlists[al_rtti].concat(Tai_const.Createname(rttilab.name,AT_DATA,0));
               current_asmdata.asmlists[al_rtti].concat(tai_symbol_end.Create(rttilabind));
               current_asmdata.asmlists[al_rtti].concat(tai_symbol_end.Create(rttilabind));
@@ -1371,7 +1371,7 @@ implementation
         current_asmdata.asmlists[al_rtti].concat(Tai_symbol_end.Create(rttilab));
         current_asmdata.asmlists[al_rtti].concat(Tai_symbol_end.Create(rttilab));
         write_rtti_extrasyms(def,rt,rttilab);
         write_rtti_extrasyms(def,rt,rttilab);
         { write the indirect symbol }
         { write the indirect symbol }
-        rttilabind:=current_asmdata.DefineAsmSymbol(tstoreddef(def).rtti_mangledname(rt,true),AB_GLOBAL,AT_DATA);
+        rttilabind:=current_asmdata.DefineAsmSymbol(tstoreddef(def).rtti_mangledname(rt,true),AB_PRIVATE_EXTERN,AT_DATA);
         current_asmdata.asmlists[al_rtti].concat(Tai_symbol.Create_Global(rttilabind,0));
         current_asmdata.asmlists[al_rtti].concat(Tai_symbol.Create_Global(rttilabind,0));
         current_asmdata.asmlists[al_rtti].concat(Tai_const.Createname(rttilab.name,AT_DATA,0));
         current_asmdata.asmlists[al_rtti].concat(Tai_const.Createname(rttilab.name,AT_DATA,0));
         current_asmdata.asmlists[al_rtti].concat(tai_symbol_end.Create(rttilabind));
         current_asmdata.asmlists[al_rtti].concat(tai_symbol_end.Create(rttilabind));

+ 1 - 1
compiler/ngenutil.pas

@@ -576,7 +576,7 @@ implementation
       { add indirect symbol }
       { add indirect symbol }
       if (vo_has_section in sym.varoptions) or (sectype<>sec_rodata) then
       if (vo_has_section in sym.varoptions) or (sectype<>sec_rodata) then
         new_section(list,sec_rodata,lower(sym.mangledname),const_align(sym.vardef.alignment));
         new_section(list,sec_rodata,lower(sym.mangledname),const_align(sym.vardef.alignment));
-      labind:=current_asmdata.DefineAsmSymbol(sym.mangledname+indirect_suffix,AB_GLOBAL,AT_DATA);
+      labind:=current_asmdata.DefineAsmSymbol(sym.mangledname+indirect_suffix,AB_PRIVATE_EXTERN,AT_DATA);
       list.concat(Tai_symbol.Create_Global(labind,0));
       list.concat(Tai_symbol.Create_Global(labind,0));
       list.concat(Tai_const.Createname(sym.mangledname,AT_DATA,0));
       list.concat(Tai_const.Createname(sym.mangledname,AT_DATA,0));
       list.concat(tai_symbol_end.Create(labind));
       list.concat(tai_symbol_end.Create(labind));

+ 1 - 1
compiler/ptconst.pas

@@ -163,7 +163,7 @@ implementation
             { add indirect symbol }
             { add indirect symbol }
             if (vo_has_section in sym.varoptions) or (cursectype<>sec_rodata) then
             if (vo_has_section in sym.varoptions) or (cursectype<>sec_rodata) then
               new_section(list,sec_rodata,lower(sym.mangledname+indirect_suffix),const_align(sym.vardef.alignment));
               new_section(list,sec_rodata,lower(sym.mangledname+indirect_suffix),const_align(sym.vardef.alignment));
-            labind:=current_asmdata.DefineAsmSymbol(sym.mangledname+indirect_suffix,AB_GLOBAL,AT_DATA);
+            labind:=current_asmdata.DefineAsmSymbol(sym.mangledname+indirect_suffix,AB_PRIVATE_EXTERN,AT_DATA);
             list.concat(Tai_symbol.Create_Global(labind,0));
             list.concat(Tai_symbol.Create_Global(labind,0));
             list.concat(Tai_const.Createname(sym.mangledname,AT_DATA,0));
             list.concat(Tai_const.Createname(sym.mangledname,AT_DATA,0));
             list.concat(tai_symbol_end.Create(labind));
             list.concat(tai_symbol_end.Create(labind));