about summary refs log tree commit diff
path: root/compiler/rustc_codegen_ssa/src/back
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2022-09-02 14:31:08 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2022-09-06 14:05:54 +0400
commitc34047cbd5222c239bdaaf306a5962d881908007 (patch)
tree149c6683df44e69995d6a0a379697c857978b0a5 /compiler/rustc_codegen_ssa/src/back
parentb67271507d5a26416f83f1afe0e8f43cc77567ba (diff)
downloadrust-c34047cbd5222c239bdaaf306a5962d881908007.tar.gz
rust-c34047cbd5222c239bdaaf306a5962d881908007.zip
Fix CI failures on windows and aarch64-linux
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/back')
-rw-r--r--compiler/rustc_codegen_ssa/src/back/link.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs
index d37a2cc8c8e..a3fed88cc4b 100644
--- a/compiler/rustc_codegen_ssa/src/back/link.rs
+++ b/compiler/rustc_codegen_ssa/src/back/link.rs
@@ -2403,6 +2403,14 @@ fn add_upstream_rust_crates<'a>(
                                 bundle: Some(false),
                                 whole_archive: Some(false) | None,
                             } => {
+                                // HACK/FIXME: Fixup a circular dependency between libgcc and libc
+                                // with glibc. This logic should be moved to the libc crate.
+                                if sess.target.os == "linux"
+                                    && sess.target.env == "gnu"
+                                    && name == "c"
+                                {
+                                    cmd.link_staticlib("gcc", false);
+                                }
                                 cmd.link_staticlib(name, lib.verbatim.unwrap_or(false));
                             }
                             NativeLibKind::LinkArg => {