From 1c69ecb2dd463a5cd922e872386381e1cc17147e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 19 Jun 2024 11:26:37 +0200 Subject: Merging debian version 1.76.0+dfsg1-1. Signed-off-by: Daniel Baumann --- debian/patches/d-rustc-add-soname.patch | 44 --------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 debian/patches/d-rustc-add-soname.patch (limited to 'debian/patches/d-rustc-add-soname.patch') diff --git a/debian/patches/d-rustc-add-soname.patch b/debian/patches/d-rustc-add-soname.patch deleted file mode 100644 index 29c56a614..000000000 --- a/debian/patches/d-rustc-add-soname.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Angus Lees -Date: Thu, 14 Jul 2022 13:17:39 +0200 -Subject: Set DT_SONAME when building dylibs - -Forwarded: no - -In Rust, library filenames include a version-specific hash to help -the run-time linker find the correct version. Unlike in C/C++, the -compiler looks for all libraries matching a glob that ignores the -hash and reads embedded metadata to work out versions, etc. - -The upshot is that there is no need for the usual "libfoo.so -> -libfoo-1.2.3.so" symlink common with C/C++ when building with Rust, -and no need to communicate an alternate filename to use at run-time -vs compile time. If linking to a Rust dylib from C/C++ however, a -"libfoo.so -> libfoo-$hash.so" symlink may well be useful and in -this case DT_SONAME=libfoo-$hash.so would be required. More -mundanely, various tools (eg: dpkg-shlibdeps) complain if they don't -find DT_SONAME on shared libraries in public directories. - -This patch passes -Wl,-soname=$outfile when building dylibs (and -using a GNU linker). ---- - compiler/rustc_codegen_ssa/src/back/link.rs | 7 +++++++ - 1 file changed, 7 insertions(+) - -Index: rust/compiler/rustc_codegen_ssa/src/back/link.rs -=================================================================== ---- rust.orig/compiler/rustc_codegen_ssa/src/back/link.rs -+++ rust/compiler/rustc_codegen_ssa/src/back/link.rs -@@ -2363,6 +2363,13 @@ fn add_order_independent_options( - } - - add_rpath_args(cmd, sess, codegen_results, out_filename); -+ -+ if (crate_type == config::CrateType::Dylib || crate_type == config::CrateType::Cdylib) -+ && sess.target.linker_flavor.is_gnu() { -+ let filename = String::from(out_filename.file_name().unwrap().to_str().unwrap()); -+ let soname = [String::from("-Wl,-soname=") + &filename]; -+ cmd.args(&soname); -+ } - } - - // Write the NatVis debugger visualizer files for each crate to the temp directory and gather the file paths. -- cgit v1.2.3