From 188d2dafcdd4d0dbd54315412503fb8011d716b6 Mon Sep 17 00:00:00 2001 From: Eduard-Mihai Burtescu Date: Thu, 26 Apr 2018 14:11:08 +0300 Subject: [PATCH] Statically link proc_macro into proc macros. --- src/libproc_macro/Cargo.toml | 2 -- src/librustc/middle/dependency_format.rs | 5 ++--- src/librustc_cratesio_shim/src/lib.rs | 1 + 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/libproc_macro/Cargo.toml b/src/libproc_macro/Cargo.toml index 29e1c03cee1..f903f79f9af 100644 --- a/src/libproc_macro/Cargo.toml +++ b/src/libproc_macro/Cargo.toml @@ -5,5 +5,3 @@ version = "0.0.0" [lib] path = "lib.rs" -crate-type = ["dylib"] - diff --git a/src/librustc/middle/dependency_format.rs b/src/librustc/middle/dependency_format.rs index 671f513d5b9..549a848a39d 100644 --- a/src/librustc/middle/dependency_format.rs +++ b/src/librustc/middle/dependency_format.rs @@ -127,9 +127,8 @@ fn calculate_type<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, sess.crt_static() => Linkage::Static, config::CrateType::Executable => Linkage::Dynamic, - // proc-macro crates are required to be dylibs, and they're currently - // required to link to libsyntax as well. - config::CrateType::ProcMacro => Linkage::Dynamic, + // proc-macro crates are mostly cdylibs, but we also need metadata. + config::CrateType::ProcMacro => Linkage::Static, // No linkage happens with rlibs, we just needed the metadata (which we // got long ago), so don't bother with anything. diff --git a/src/librustc_cratesio_shim/src/lib.rs b/src/librustc_cratesio_shim/src/lib.rs index 1fe70fa23b7..56e480208e1 100644 --- a/src/librustc_cratesio_shim/src/lib.rs +++ b/src/librustc_cratesio_shim/src/lib.rs @@ -15,4 +15,5 @@ extern crate bitflags; extern crate log; +extern crate proc_macro; extern crate unicode_width;