From b8213bbd0dd2e38acb11f1393551415d7d3478ee Mon Sep 17 00:00:00 2001 From: Daniel Paoliello Date: Fri, 1 Jul 2022 13:01:41 -0700 Subject: [PATCH] Enable raw-dylib for binaries --- compiler/rustc_codegen_ssa/src/back/link.rs | 8 +++----- src/test/run-make/raw-dylib-c/Makefile | 3 +++ src/test/run-make/raw-dylib-c/lib.rs | 4 ++++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs index 72aa790c36357..e6753c569a577 100644 --- a/compiler/rustc_codegen_ssa/src/back/link.rs +++ b/compiler/rustc_codegen_ssa/src/back/link.rs @@ -2212,7 +2212,9 @@ fn add_local_native_libraries( NativeLibKind::Dylib { as_needed } => { cmd.link_dylib(name, verbatim, as_needed.unwrap_or(true)) } - NativeLibKind::Unspecified => cmd.link_dylib(name, verbatim, true), + NativeLibKind::RawDylib | NativeLibKind::Unspecified => { + cmd.link_dylib(name, verbatim, true) + } NativeLibKind::Framework { as_needed } => { cmd.link_framework(name, as_needed.unwrap_or(true)) } @@ -2233,10 +2235,6 @@ fn add_local_native_libraries( cmd.link_staticlib(name, verbatim) } } - NativeLibKind::RawDylib => { - // FIXME(#58713): Proper handling for raw dylibs. - bug!("raw_dylib feature not yet implemented"); - } } } } diff --git a/src/test/run-make/raw-dylib-c/Makefile b/src/test/run-make/raw-dylib-c/Makefile index 166305672e6f2..f391fc43007fa 100644 --- a/src/test/run-make/raw-dylib-c/Makefile +++ b/src/test/run-make/raw-dylib-c/Makefile @@ -16,10 +16,13 @@ else endif $(RUSTC) --crate-type lib --crate-name raw_dylib_test lib.rs $(RUSTC) --crate-type bin driver.rs -L "$(TMPDIR)" + $(RUSTC) --crate-type bin --crate-name raw_dylib_test_bin lib.rs "$(TMPDIR)"/driver > "$(TMPDIR)"/output.txt + "$(TMPDIR)"/raw_dylib_test_bin > "$(TMPDIR)"/output_bin.txt ifdef RUSTC_BLESS_TEST cp "$(TMPDIR)"/output.txt output.txt else $(DIFF) output.txt "$(TMPDIR)"/output.txt + $(DIFF) output.txt "$(TMPDIR)"/output_bin.txt endif diff --git a/src/test/run-make/raw-dylib-c/lib.rs b/src/test/run-make/raw-dylib-c/lib.rs index e185c4aec12b0..58f7ccb38ce4a 100644 --- a/src/test/run-make/raw-dylib-c/lib.rs +++ b/src/test/run-make/raw-dylib-c/lib.rs @@ -20,3 +20,7 @@ pub fn library_function() { extern_fn_3(); } } + +fn main() { + library_function(); +}