2
0
Эх сурвалжийг харах

* fix usage of ppumove generated shared libraries

git-svn-id: trunk@43495 -
florian 5 жил өмнө
parent
commit
13ab35e3ef
1 өөрчлөгдсөн 16 нэмэгдсэн , 5 устгасан
  1. 16 5
      compiler/pmodules.pas

+ 16 - 5
compiler/pmodules.pas

@@ -126,10 +126,10 @@ implementation
         current_module.headerflags:=current_module.headerflags or uf_static_linked;
 
         if create_smartlink_library then
-         begin
-           current_module.linkunitstaticlibs.add(current_module.staticlibfilename ,link_smart);
-           current_module.headerflags:=current_module.headerflags or uf_smart_linked;
-         end;
+          begin
+            current_module.linkunitstaticlibs.add(current_module.staticlibfilename ,link_smart);
+            current_module.headerflags:=current_module.headerflags or uf_smart_linked;
+          end;
         if cs_lto in current_settings.moduleswitches then
           begin
             current_module.linkunitofiles.add(ChangeFileExt(current_module.objfilename,LTOExt),link_lto);
@@ -2475,7 +2475,18 @@ type
                  hp:=tmodule(loaded_units.first);
                  while assigned(hp) do
                   begin
-                    if (hp<>sysinitmod) and ((hp.headerflags and uf_in_library)=0) then
+                    if (hp<>sysinitmod) {
+                      I commented the following condition as it breaks linking with units being shared libs.
+                      The needed shared libs and object files are ignored
+
+                       and ((hp.headerflags and uf_in_library)=0)
+
+                      I think the right condition is
+
+                      not(assigned(hp.package))
+
+                      as later on for packages the right shared libs are added separately (FK)
+                      } then
                       begin
                         linker.AddModuleFiles(hp);
                         if mf_checkpointer_called in hp.moduleflags then