Update patches
- Drop backported bugfixes for Fortran regressions Gbp-Dch: full
This commit is contained in:
		
							parent
							
								
									949cc2ec29
								
							
						
					
					
						commit
						e7af41c74d
					
				
							
								
								
									
										2
									
								
								debian/patches/series
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								debian/patches/series
									
									
									
									
										vendored
									
									
								
							@ -1,3 +1 @@
 | 
			
		||||
0001-Prefer-default-Python-version.patch
 | 
			
		||||
upstream/0002-fix-typo-in-Fortran_PREPROCESS-property-initializati.patch
 | 
			
		||||
upstream/0003-cmComputeLinkInformation-track-OBJECT-library-depend.patch
 | 
			
		||||
 | 
			
		||||
@ -1,24 +0,0 @@
 | 
			
		||||
From: =?utf-8?q?Timo_R=C3=B6hling?= <roehling@debian.org>
 | 
			
		||||
Date: Tue, 25 Jul 2023 16:38:44 +0200
 | 
			
		||||
Subject: fix typo in Fortran_PREPROCESS property initialization
 | 
			
		||||
 | 
			
		||||
Origin: https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8654
 | 
			
		||||
Bug: https://gitlab.kitware.com/cmake/cmake/-/issues/25123
 | 
			
		||||
Bug-Debian: https://bugs.debian.org/1041853
 | 
			
		||||
---
 | 
			
		||||
 Source/cmTarget.cxx | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
 | 
			
		||||
index 81497f5..b53adf8 100644
 | 
			
		||||
--- a/Source/cmTarget.cxx
 | 
			
		||||
+++ b/Source/cmTarget.cxx
 | 
			
		||||
@@ -420,7 +420,7 @@ TargetProperty const StaticTargetProperties[] = {
 | 
			
		||||
   { "Fortran_FORMAT"_s, IC::CanCompileSources },
 | 
			
		||||
   { "Fortran_MODULE_DIRECTORY"_s, IC::CanCompileSources },
 | 
			
		||||
   { "Fortran_COMPILER_LAUNCHER"_s, IC::CanCompileSources },
 | 
			
		||||
-  { "Fortran_PREPRPOCESS"_s, IC::CanCompileSources },
 | 
			
		||||
+  { "Fortran_PREPROCESS"_s, IC::CanCompileSources },
 | 
			
		||||
   { "Fortran_VISIBILITY_PRESET"_s, IC::CanCompileSources },
 | 
			
		||||
   // ---- HIP
 | 
			
		||||
   COMMON_LANGUAGE_PROPERTIES(HIP),
 | 
			
		||||
@ -1,107 +0,0 @@
 | 
			
		||||
From: Ben Boeckel <ben.boeckel@kitware.com>
 | 
			
		||||
Date: Sat, 22 Jul 2023 06:46:31 -0400
 | 
			
		||||
Subject: cmComputeLinkInformation: track OBJECT library dependencies
 | 
			
		||||
 | 
			
		||||
In commit b6a5382217 (Ninja: depend on language module information files
 | 
			
		||||
directly, 2023-02-10), introduced via !8197, language-specific module
 | 
			
		||||
information files (`CMakeFiles/<target>.dir/<lang>Modules.json`) files
 | 
			
		||||
were added as real dependencies to the dyndep collation steps.
 | 
			
		||||
Previously, the behavior was to inform the collator of all possible
 | 
			
		||||
targets and search for the files manually ignoring those which did not
 | 
			
		||||
exist with ordering enforced by depending on the linker output of all
 | 
			
		||||
dependent targets. This behavior could lead to stale information being
 | 
			
		||||
used (e.g., if a target stops providing any targets) and also did not
 | 
			
		||||
reliably build everything needed on rebuilds. Afterwards, the internal
 | 
			
		||||
computation changed the dependency from all possible targets to an exact
 | 
			
		||||
set of "these targets might have modules" query, however one that did
 | 
			
		||||
not include `OBJECT` libraries since do not have `LinkEntry` items
 | 
			
		||||
internally (their objects are instead treated as source files). As a
 | 
			
		||||
stopgap measure, track `OBJECT` libraries in a separate list and query
 | 
			
		||||
them explicitly when gathering targets which may have interesting
 | 
			
		||||
information. Future work can add `LinkEntry` items to represent these
 | 
			
		||||
targets once all `LinkEntry` consumers have been audited to make sure
 | 
			
		||||
they are not surprised by any `OBJECT` library entries.
 | 
			
		||||
 | 
			
		||||
Bug: https://gitlab.kitware.com/cmake/cmake/-/issues/25112
 | 
			
		||||
---
 | 
			
		||||
 Source/cmCommonTargetGenerator.cxx  | 12 +++++++++---
 | 
			
		||||
 Source/cmComputeLinkInformation.cxx | 14 ++++++++++++--
 | 
			
		||||
 Source/cmComputeLinkInformation.h   |  3 +++
 | 
			
		||||
 3 files changed, 24 insertions(+), 5 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/Source/cmCommonTargetGenerator.cxx b/Source/cmCommonTargetGenerator.cxx
 | 
			
		||||
index e635dd9..1924235 100644
 | 
			
		||||
--- a/Source/cmCommonTargetGenerator.cxx
 | 
			
		||||
+++ b/Source/cmCommonTargetGenerator.cxx
 | 
			
		||||
@@ -170,9 +170,15 @@ std::vector<std::string> cmCommonTargetGenerator::GetLinkedTargetDirectories(
 | 
			
		||||
   cmGlobalCommonGenerator* const gg = this->GlobalCommonGenerator;
 | 
			
		||||
   if (cmComputeLinkInformation* cli =
 | 
			
		||||
         this->GeneratorTarget->GetLinkInformation(config)) {
 | 
			
		||||
-    cmComputeLinkInformation::ItemVector const& items = cli->GetItems();
 | 
			
		||||
-    for (auto const& item : items) {
 | 
			
		||||
-      cmGeneratorTarget const* linkee = item.Target;
 | 
			
		||||
+    std::vector<cmGeneratorTarget const*> targets;
 | 
			
		||||
+    for (auto const& item : cli->GetItems()) {
 | 
			
		||||
+      targets.push_back(item.Target);
 | 
			
		||||
+    }
 | 
			
		||||
+    for (auto const* target : cli->GetObjectLibrariesLinked()) {
 | 
			
		||||
+      targets.push_back(target);
 | 
			
		||||
+    }
 | 
			
		||||
+
 | 
			
		||||
+    for (auto const* linkee : targets) {
 | 
			
		||||
       if (linkee &&
 | 
			
		||||
           !linkee->IsImported()
 | 
			
		||||
           // Skip targets that build after this one in a static lib cycle.
 | 
			
		||||
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
 | 
			
		||||
index b80b3cb..ebbb88f 100644
 | 
			
		||||
--- a/Source/cmComputeLinkInformation.cxx
 | 
			
		||||
+++ b/Source/cmComputeLinkInformation.cxx
 | 
			
		||||
@@ -525,6 +525,12 @@ cmComputeLinkInformation::GetSharedLibrariesLinked() const
 | 
			
		||||
   return this->SharedLibrariesLinked;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+const std::vector<const cmGeneratorTarget*>&
 | 
			
		||||
+cmComputeLinkInformation::GetObjectLibrariesLinked() const
 | 
			
		||||
+{
 | 
			
		||||
+  return this->ObjectLibrariesLinked;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 bool cmComputeLinkInformation::Compute()
 | 
			
		||||
 {
 | 
			
		||||
   // Skip targets that do not link.
 | 
			
		||||
@@ -1147,8 +1153,12 @@ void cmComputeLinkInformation::AddItem(LinkEntry const& entry)
 | 
			
		||||
         this->AddItem(BT<std::string>(libName, item.Backtrace));
 | 
			
		||||
       }
 | 
			
		||||
     } else if (tgt->GetType() == cmStateEnums::OBJECT_LIBRARY) {
 | 
			
		||||
-      // Ignore object library!
 | 
			
		||||
-      // Its object-files should already have been extracted for linking.
 | 
			
		||||
+      if (!tgt->HaveCxx20ModuleSources() && !tgt->HaveFortranSources(config)) {
 | 
			
		||||
+        // Ignore object library!
 | 
			
		||||
+        // Its object-files should already have been extracted for linking.
 | 
			
		||||
+      } else {
 | 
			
		||||
+        this->ObjectLibrariesLinked.push_back(entry.Target);
 | 
			
		||||
+      }
 | 
			
		||||
     } else {
 | 
			
		||||
       // Decide whether to use an import library.
 | 
			
		||||
       cmStateEnums::ArtifactType artifact = tgt->HasImportLibrary(config)
 | 
			
		||||
diff --git a/Source/cmComputeLinkInformation.h b/Source/cmComputeLinkInformation.h
 | 
			
		||||
index a4ada1f..8393a29 100644
 | 
			
		||||
--- a/Source/cmComputeLinkInformation.h
 | 
			
		||||
+++ b/Source/cmComputeLinkInformation.h
 | 
			
		||||
@@ -96,6 +96,8 @@ public:
 | 
			
		||||
   std::string GetRPathString(bool for_install) const;
 | 
			
		||||
   std::string GetChrpathString() const;
 | 
			
		||||
   std::set<cmGeneratorTarget const*> const& GetSharedLibrariesLinked() const;
 | 
			
		||||
+  std::vector<cmGeneratorTarget const*> const& GetObjectLibrariesLinked()
 | 
			
		||||
+    const;
 | 
			
		||||
   std::vector<cmGeneratorTarget const*> const& GetRuntimeDLLs() const
 | 
			
		||||
   {
 | 
			
		||||
     return this->RuntimeDLLs;
 | 
			
		||||
@@ -132,6 +134,7 @@ private:
 | 
			
		||||
   std::vector<std::string> FrameworkPaths;
 | 
			
		||||
   std::vector<std::string> RuntimeSearchPath;
 | 
			
		||||
   std::set<cmGeneratorTarget const*> SharedLibrariesLinked;
 | 
			
		||||
+  std::vector<cmGeneratorTarget const*> ObjectLibrariesLinked;
 | 
			
		||||
   std::vector<cmGeneratorTarget const*> RuntimeDLLs;
 | 
			
		||||
 
 | 
			
		||||
   // Context information.
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user