diff --git a/servo/ports/cef/lib.rs b/servo/ports/cef/lib.rs index ce73994b326b..269d106d1675 100644 --- a/servo/ports/cef/lib.rs +++ b/servo/ports/cef/lib.rs @@ -4,7 +4,6 @@ #![allow(non_camel_case_types)] #![feature(core_intrinsics)] -#![feature(link_args)] #[macro_use] extern crate log; @@ -27,10 +26,6 @@ extern crate webrender_api; extern crate libc; -#[cfg(target_os="macos")] -#[link_args="-Xlinker -undefined -Xlinker dynamic_lookup"] -extern { } - #[cfg(target_os="macos")] extern crate cocoa; #[cfg(target_os="macos")] diff --git a/servo/python/servo/build_commands.py b/servo/python/servo/build_commands.py index 0d0dbc0ebcd3..ec20f18af5a3 100644 --- a/servo/python/servo/build_commands.py +++ b/servo/python/servo/build_commands.py @@ -24,7 +24,7 @@ from mach.decorators import ( Command, ) -from servo.command_base import CommandBase, cd, call, check_call, BIN_SUFFIX +from servo.command_base import CommandBase, cd, call, check_call, BIN_SUFFIX, is_macosx from servo.util import host_triple @@ -401,8 +401,14 @@ class MachCommands(CommandBase): if with_debug_assertions: env["RUSTFLAGS"] = "-C debug_assertions" + if is_macosx(): + # Unlike RUSTFLAGS, these are only passed in the final rustc invocation + # so that `./mach build` followed by `./mach build-cef` both build + # common dependencies with the same flags. + opts += ["--", "-C", "link-args=-Xlinker -undefined -Xlinker dynamic_lookup"] + with cd(path.join("ports", "cef")): - ret = call(["cargo", "build"] + opts, + ret = call(["cargo", "rustc"] + opts, env=env, verbose=verbose) elapsed = time() - build_start