about summary refs log tree commit diff
path: root/compiler/rustc_codegen_ssa/src/back
diff options
context:
space:
mode:
authorKai Luo <lkail@cn.ibm.com>2024-03-05 15:37:37 +0800
committerKai Luo <lkail@cn.ibm.com>2024-03-05 15:37:37 +0800
commite74e6e767d4b5cc1f033cee5b5ef4704dd8fee31 (patch)
tree70407ad3e1f1bffc40f4713c7a10fec9054f4146 /compiler/rustc_codegen_ssa/src/back
parentaa692a577eee7fa1aaa72d29efeb860bbae6572f (diff)
downloadrust-e74e6e767d4b5cc1f033cee5b5ef4704dd8fee31.tar.gz
rust-e74e6e767d4b5cc1f033cee5b5ef4704dd8fee31.zip
Rebased
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/back')
-rw-r--r--compiler/rustc_codegen_ssa/src/back/link.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs
index fcb3602b734..b52e6242d99 100644
--- a/compiler/rustc_codegen_ssa/src/back/link.rs
+++ b/compiler/rustc_codegen_ssa/src/back/link.rs
@@ -1080,6 +1080,21 @@ fn link_natively<'a>(
         }
     }
 
+    if sess.target.is_like_aix {
+        let stripcmd = "/usr/bin/strip";
+        match strip {
+            Strip::Debuginfo => {
+                // FIXME: AIX's strip utility only offers option to strip line number information.
+                strip_symbols_with_external_utility(sess, stripcmd, out_filename, Some("-l"))
+            }
+            Strip::Symbols => {
+                // Must be noted this option removes symbol __aix_rust_metadata and thus removes .info section which contains metadata.
+                strip_symbols_with_external_utility(sess, stripcmd, out_filename, Some("-r"))
+            }
+            Strip::None => {}
+        }
+    }
+
     Ok(())
 }