From 7f8a36c0a9d997d625ba887e3ae492bc2fa2888b Mon Sep 17 00:00:00 2001
From: George Burgess IV <gbiv@google.com>
Date: Sun, 1 Aug 2021 07:12:17 +0000
Subject: [PATCH 7/8] ld-argv0.patch

---
 library/std/src/sys/unix/os.rs | 35 +++++++++++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/library/std/src/sys/unix/os.rs b/library/std/src/sys/unix/os.rs
index 41ca97623..ffe3b99cd 100644
--- a/library/std/src/sys/unix/os.rs
+++ b/library/std/src/sys/unix/os.rs
@@ -339,12 +339,45 @@
 
 #[cfg(any(target_os = "linux", target_os = "android", target_os = "emscripten"))]
 pub fn current_exe() -> io::Result<PathBuf> {
+    let is_ld_so = |p: &crate::path::Path| -> Option<bool> {
+        let parent_dir_name = p.parent()?.file_name()?;
+        if parent_dir_name != OsStr::new("lib") {
+            return Some(false);
+        }
+        // We assume that the `ld.so` path is always valid unicode, since there's... no reason for
+        // it not to be. :)
+        let file_name = p.file_name()?.to_str()?;
+        Some(
+            file_name.starts_with("ld-linux-")
+                && (file_name.ends_with(".so") || file_name.contains(".so.")),
+        )
+    };
+
     match crate::fs::read_link("/proc/self/exe") {
         Err(ref e) if e.kind() == io::ErrorKind::NotFound => Err(io::Error::new_const(
             io::ErrorKind::Uncategorized,
             &"no /proc/self/exe available. Is /proc mounted?",
         )),
-        other => other,
+        Err(x) => Err(x),
+        Ok(p) => {
+            // Chrome OS-specific: in some configurations, Rust binaries are invoked through
+            // `ld.so`. In these cases, we want to present the user with the path to the Rust
+            // binary that was invoked.
+            //
+            // Because the ld.so wrappers _generally_ don't want to invoke things with absolute
+            // paths, this is _generally_ a path relative to dirname(ld.so).
+            if is_ld_so(&p) == Some(true) {
+                if let Some(relative_to_ld) = crate::env::var_os("LD_ARGV0_REL") {
+                    let relative_to_ld = PathBuf::from(relative_to_ld);
+                    if relative_to_ld.is_absolute() {
+                        return Ok(relative_to_ld);
+                    }
+                    // safety: is_ld_so checks the parent directory of `p`.
+                    return Ok(p.parent().unwrap().join(relative_to_ld));
+                }
+            }
+            Ok(p)
+        }
     }
 }
 
-- 
2.32.0.554.ge1b32706d8-goog

