FreeBSD Bugzilla – Attachment 245508 Details for
Bug 274275
devel/cmake-core: Add workaround for RUNTIME_DEPENDENCY_SET not being supported on FreeBSD
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
v3
cmake-implement-RUNTIME_DEPENDENCY-v3.diff (text/plain), 2.85 KB, created by
Jason E. Hale
on 2023-10-08 21:14:38 UTC
(
hide
)
Description:
v3
Filename:
MIME Type:
Creator:
Jason E. Hale
Created:
2023-10-08 21:14:38 UTC
Size:
2.85 KB
patch
obsolete
>diff --git a/devel/cmake-core/files/patch-Source_cmBinUtilsLinuxELFLinker.cxx b/devel/cmake-core/files/patch-Source_cmBinUtilsLinuxELFLinker.cxx >new file mode 100644 >index 000000000000..11ff98897296 >--- /dev/null >+++ b/devel/cmake-core/files/patch-Source_cmBinUtilsLinuxELFLinker.cxx >@@ -0,0 +1,20 @@ >+FreeBSD's ldconfig(8) is largely incompatible with that from glibc. Ignore >+these extra paths and just rely on those provided by objdump(1). >+ >+--- Source/cmBinUtilsLinuxELFLinker.cxx.orig 2023-10-07 19:03:44 UTC >++++ Source/cmBinUtilsLinuxELFLinker.cxx >+@@ -132,12 +132,14 @@ bool cmBinUtilsLinuxELFLinker::ScanDependencies( >+ parentRpaths.end()); >+ } >+ >++#if defined(__linux__) >+ std::vector<std::string> ldConfigPaths; >+ if (!this->LDConfigTool->GetLDConfigPaths(ldConfigPaths)) { >+ return false; >+ } >+ searchPaths.insert(searchPaths.end(), ldConfigPaths.begin(), >+ ldConfigPaths.end()); >++#endif >+ >+ for (auto const& dep : needed) { >+ if (!this->Archive->IsPreExcluded(dep)) { >diff --git a/devel/cmake-core/files/patch-Source_cmRuntimeDependencyArchive.cxx b/devel/cmake-core/files/patch-Source_cmRuntimeDependencyArchive.cxx >new file mode 100644 >index 000000000000..599c954f376e >--- /dev/null >+++ b/devel/cmake-core/files/patch-Source_cmRuntimeDependencyArchive.cxx >@@ -0,0 +1,33 @@ >+Use the mostly compatible implementation of cmBinUtilsLinux* to enable keywords >+like RUNTIME_DEPENDENCY_SET and RUNTIME_DEPENDENCIES in the install() command >+and GET_RUNTIME_DEPENDENCIES in the file() command. This should be considered >+experimental as the regression tests fail, but only due to minor string >+mismatches. At the moment, it seems to work for our purposes, until more >+real-life examples come in. >+ >+PR: 274275 >+See also: https://gitlab.kitware.com/cmake/cmake/-/issues/25305 >+ >+--- Source/cmRuntimeDependencyArchive.cxx.orig 2023-09-20 14:33:04 UTC >++++ Source/cmRuntimeDependencyArchive.cxx >+@@ -153,9 +153,11 @@ bool cmRuntimeDependencyArchive::Prepare() >+ platform = "macos+macho"; >+ } else if (systemName == "Linux") { >+ platform = "linux+elf"; >++ } else if (systemName == "FreeBSD") { >++ platform = "freebsd+elf"; >+ } >+ } >+- if (platform == "linux+elf") { >++ if (platform == "linux+elf" || platform == "freebsd+elf") { >+ this->Linker = cm::make_unique<cmBinUtilsLinuxELFLinker>(this); >+ } else if (platform == "windows+pe") { >+ this->Linker = cm::make_unique<cmBinUtilsWindowsPELinker>(this); >+@@ -403,6 +405,6 @@ bool cmRuntimeDependencyArchive::PlatformSupportsRunti >+ const std::string& platform) >+ { >+ static const std::set<std::string> supportedPlatforms = { "Windows", "Linux", >+- "Darwin" }; >++ "Darwin", "FreeBSD" }; >+ return supportedPlatforms.count(platform); >+ }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 274275
:
245444
|
245459
| 245508