瀏覽代碼

Only add indirect symbol for constants if tf_supports_packages flag is set in target_info.flags

git-svn-id: trunk@33684 -
pierre 9 年之前
父節點
當前提交
94d8d9927d
共有 1 個文件被更改,包括 10 次插入7 次删除
  1. 10 7
      compiler/ptconst.pas

+ 10 - 7
compiler/ptconst.pas

@@ -135,13 +135,16 @@ implementation
             current_asmdata.asmlists[al_const].concatlist(datalist);
             { the (empty) lists themselves are freed by tcbuilder }
 
-            { add indirect symbol }
-            { ToDo: do we also need this for the else part? }
-            new_section(list,sec_rodata,lower(sym.mangledname),const_align(sym.vardef.alignment));
-            symind:=current_asmdata.DefineAsmSymbol(sym.mangledname,AB_INDIRECT,AT_DATA);
-            list.concat(Tai_symbol.Create_Global(symind,0));
-            list.concat(Tai_const.Createname(sym.mangledname,AT_DATA,0));
-            list.concat(tai_symbol_end.Create(symind));
+            if (tf_supports_packages in target_info.flags) then
+              begin
+                { add indirect symbol }
+                { ToDo: do we also need this for the else part? }
+                new_section(list,sec_rodata,lower(sym.mangledname),const_align(sym.vardef.alignment));
+                symind:=current_asmdata.DefineAsmSymbol(sym.mangledname,AB_INDIRECT,AT_DATA);
+                list.concat(Tai_symbol.Create_Global(symind,0));
+                list.concat(Tai_const.Createname(sym.mangledname,AT_DATA,0));
+                list.concat(tai_symbol_end.Create(symind));
+              end;
           end
         else
           begin