diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/back/link.rs | 10 | ||||
| -rw-r--r-- | src/librustc/lib/llvm.rs | 3 | ||||
| -rw-r--r-- | src/librustc/metadata/csearch.rs | 7 | ||||
| -rw-r--r-- | src/librustc/metadata/decoder.rs | 10 | ||||
| -rw-r--r-- | src/librustc/metadata/encoder.rs | 21 | ||||
| -rw-r--r-- | src/librustdoc/html/markdown.rs | 1 | ||||
| -rw-r--r-- | src/librustuv/uvll.rs | 12 | ||||
| -rw-r--r-- | src/rt/rustrt.def.in | 121 |
8 files changed, 15 insertions, 170 deletions
diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs index 1b9cb10f1dc..815ec943c49 100644 --- a/src/librustc/back/link.rs +++ b/src/librustc/back/link.rs @@ -16,7 +16,7 @@ use lib::llvm::llvm; use lib::llvm::ModuleRef; use lib; use metadata::common::LinkMeta; -use metadata::{encoder, csearch, cstore, filesearch}; +use metadata::{encoder, cstore, filesearch}; use middle::trans::context::CrateContext; use middle::trans::common::gensym_name; use middle::ty; @@ -1043,14 +1043,6 @@ pub fn link_args(sess: Session, let ula = cstore::get_used_link_args(cstore); for arg in ula.iter() { args.push(arg.to_owned()); } - // Add all the link args for external crates. - do cstore::iter_crate_data(cstore) |crate_num, _| { - let link_args = csearch::get_link_args_for_crate(cstore, crate_num); - for link_arg in link_args.move_iter() { - args.push(link_arg); - } - } - // # Extern library linking // User-supplied library search paths (-L on the cammand line) These are diff --git a/src/librustc/lib/llvm.rs b/src/librustc/lib/llvm.rs index 4eb8a0b8fa6..e152d009050 100644 --- a/src/librustc/lib/llvm.rs +++ b/src/librustc/lib/llvm.rs @@ -304,8 +304,7 @@ pub mod llvm { use super::debuginfo::*; use std::libc::{c_char, c_int, c_longlong, c_ushort, c_uint, c_ulonglong}; - #[link_args = "-Lrustllvm -lrustllvm"] - #[link_name = "rustllvm"] + #[link_args = "-lrustllvm"] extern { /* Create and destroy contexts. */ pub fn LLVMContextCreate() -> ContextRef; diff --git a/src/librustc/metadata/csearch.rs b/src/librustc/metadata/csearch.rs index 617051c217f..48fe21b3343 100644 --- a/src/librustc/metadata/csearch.rs +++ b/src/librustc/metadata/csearch.rs @@ -261,13 +261,6 @@ pub fn get_item_visibility(cstore: @mut cstore::CStore, decoder::get_item_visibility(cdata, def_id.node) } -pub fn get_link_args_for_crate(cstore: @mut cstore::CStore, - crate_num: ast::CrateNum) - -> ~[~str] { - let cdata = cstore::get_crate_data(cstore, crate_num); - decoder::get_link_args_for_crate(cdata) -} - pub fn each_impl(cstore: @mut cstore::CStore, crate_num: ast::CrateNum, callback: &fn(ast::DefId)) { diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index aca41f5f4cb..56abaa27cce 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -1456,16 +1456,6 @@ pub fn translate_def_id(cdata: Cmd, did: ast::DefId) -> ast::DefId { } } -pub fn get_link_args_for_crate(cdata: Cmd) -> ~[~str] { - let link_args = reader::get_doc(reader::Doc(cdata.data), tag_link_args); - let mut result = ~[]; - do reader::tagged_docs(link_args, tag_link_args_arg) |arg_doc| { - result.push(arg_doc.as_str()); - true - }; - result -} - pub fn each_impl(cdata: Cmd, callback: &fn(ast::DefId)) { let impls_doc = reader::get_doc(reader::Doc(cdata.data), tag_impls); let _ = do reader::tagged_docs(impls_doc, tag_impls_impl) |impl_doc| { diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index 86c4ca0158f..1ad7e416342 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -75,7 +75,6 @@ struct Stats { attr_bytes: u64, dep_bytes: u64, lang_item_bytes: u64, - link_args_bytes: u64, impl_bytes: u64, misc_bytes: u64, item_bytes: u64, @@ -1610,19 +1609,6 @@ fn encode_lang_items(ecx: &EncodeContext, ebml_w: &mut writer::Encoder) { ebml_w.end_tag(); // tag_lang_items } -fn encode_link_args(ecx: &EncodeContext, ebml_w: &mut writer::Encoder) { - ebml_w.start_tag(tag_link_args); - - let link_args = cstore::get_used_link_args(ecx.cstore); - for link_arg in link_args.iter() { - ebml_w.start_tag(tag_link_args_arg); - ebml_w.writer.write(link_arg.as_bytes()); - ebml_w.end_tag(); - } - - ebml_w.end_tag(); -} - struct ImplVisitor<'self> { ecx: &'self EncodeContext<'self>, ebml_w: &'self mut writer::Encoder, @@ -1740,7 +1726,6 @@ pub fn encode_metadata(parms: EncodeParams, crate: &Crate) -> ~[u8] { attr_bytes: 0, dep_bytes: 0, lang_item_bytes: 0, - link_args_bytes: 0, impl_bytes: 0, misc_bytes: 0, item_bytes: 0, @@ -1797,11 +1782,6 @@ pub fn encode_metadata(parms: EncodeParams, crate: &Crate) -> ~[u8] { encode_lang_items(&ecx, &mut ebml_w); ecx.stats.lang_item_bytes = wr.tell() - i; - // Encode the link args. - i = wr.tell(); - encode_link_args(&ecx, &mut ebml_w); - ecx.stats.link_args_bytes = wr.tell() - i; - // Encode the def IDs of impls, for coherence checking. i = wr.tell(); encode_impls(&ecx, crate, &mut ebml_w); @@ -1838,7 +1818,6 @@ pub fn encode_metadata(parms: EncodeParams, crate: &Crate) -> ~[u8] { println!(" attribute bytes: {}", ecx.stats.attr_bytes); println!(" dep bytes: {}", ecx.stats.dep_bytes); println!(" lang item bytes: {}", ecx.stats.lang_item_bytes); - println!(" link args bytes: {}", ecx.stats.link_args_bytes); println!(" impl bytes: {}", ecx.stats.impl_bytes); println!(" misc bytes: {}", ecx.stats.misc_bytes); println!(" item bytes: {}", ecx.stats.item_bytes); diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs index f4a61e87993..fbe7a965615 100644 --- a/src/librustdoc/html/markdown.rs +++ b/src/librustdoc/html/markdown.rs @@ -69,6 +69,7 @@ struct buf { } // sundown FFI +#[link_args = "-lsundown"] extern { fn sdhtml_renderer(callbacks: *sd_callbacks, options_ptr: *html_renderopt, diff --git a/src/librustuv/uvll.rs b/src/librustuv/uvll.rs index f80178cfa4c..9e86ab11286 100644 --- a/src/librustuv/uvll.rs +++ b/src/librustuv/uvll.rs @@ -1003,6 +1003,8 @@ pub struct uv_err_data { err_msg: ~str, } +// uv_support is the result of compiling rust_uv.cpp +#[link_args = "-luv_support -luv"] extern { fn rust_uv_handle_size(type_: uintptr_t) -> size_t; @@ -1172,3 +1174,13 @@ extern { signum: c_int) -> c_int; fn rust_uv_signal_stop(handle: *uv_signal_t) -> c_int; } + +// libuv requires various system libraries to successfully link on some +// platforms +#[cfg(target_os = "linux")] +#[link_args = "-lpthread"] +extern {} + +#[cfg(target_os = "win32")] +#[link_args = "-lWs2_32 -lpsapi -liphlpapi"] +extern {} diff --git a/src/rt/rustrt.def.in b/src/rt/rustrt.def.in index 60e4d3abd7a..275966583d9 100644 --- a/src/rt/rustrt.def.in +++ b/src/rt/rustrt.def.in @@ -26,92 +26,6 @@ rust_win32_rand_gen rust_win32_rand_release upcall_rust_personality upcall_reset_stack_limit -rust_uv_loop_new -rust_uv_loop_delete -rust_uv_walk -rust_uv_loop_set_data -rust_uv_run -rust_uv_close -rust_uv_async_send -rust_uv_async_init -rust_uv_timer_init -rust_uv_timer_start -rust_uv_timer_stop -rust_uv_tcp_init -rust_uv_buf_init -rust_uv_strerror -rust_uv_err_name -rust_uv_ip4_addr -rust_uv_ip4_name -rust_uv_ip6_addr -rust_uv_ip6_name -rust_uv_tcp_connect -rust_uv_tcp_bind -rust_uv_tcp_connect6 -rust_uv_tcp_bind6 -rust_uv_tcp_getsockname -rust_uv_tcp_nodelay -rust_uv_tcp_keepalive -rust_uv_tcp_simultaneous_accepts -rust_uv_udp_init -rust_uv_udp_bind -rust_uv_udp_bind6 -rust_uv_udp_send -rust_uv_udp_send6 -rust_uv_udp_recv_start -rust_uv_udp_recv_stop -rust_uv_get_udp_handle_from_send_req -rust_uv_udp_getsockname -rust_uv_udp_set_membership -rust_uv_udp_set_multicast_loop -rust_uv_udp_set_multicast_ttl -rust_uv_udp_set_ttl -rust_uv_udp_set_broadcast -rust_uv_is_ipv4_sockaddr -rust_uv_is_ipv6_sockaddr -rust_uv_malloc_sockaddr_storage -rust_uv_free_sockaddr_storage -rust_uv_listen -rust_uv_accept -rust_uv_write -rust_uv_read_start -rust_uv_read_stop -rust_uv_is_ipv4_addrinfo -rust_uv_is_ipv6_addrinfo -rust_uv_get_next_addrinfo -rust_uv_addrinfo_as_sockaddr_in -rust_uv_addrinfo_as_sockaddr_in6 -rust_uv_get_stream_handle_from_connect_req -rust_uv_get_stream_handle_from_write_req -rust_uv_get_loop_for_uv_handle -rust_uv_get_data_for_uv_loop -rust_uv_set_data_for_uv_loop -rust_uv_get_data_for_uv_handle -rust_uv_set_data_for_uv_handle -rust_uv_get_data_for_req -rust_uv_set_data_for_req -rust_uv_get_base_from_buf -rust_uv_get_len_from_buf -rust_uv_getaddrinfo -rust_uv_freeaddrinfo -rust_uv_idle_init -rust_uv_idle_start -rust_uv_idle_stop -rust_uv_fs_open -rust_uv_fs_unlink -rust_uv_fs_write -rust_uv_fs_read -rust_uv_fs_close -rust_uv_get_result_from_fs_req -rust_uv_get_ptr_from_fs_req -rust_uv_get_loop_from_fs_req -rust_uv_fs_stat -rust_uv_fs_fstat -rust_uv_fs_req_cleanup -rust_uv_populate_uv_stat -rust_uv_fs_mkdir -rust_uv_fs_rmdir -rust_uv_fs_readdir rust_dbg_lock_create rust_dbg_lock_destroy rust_dbg_lock_lock @@ -128,9 +42,6 @@ rust_signal_little_lock rust_wait_little_lock tdefl_compress_mem_to_heap tinfl_decompress_mem_to_heap -rust_uv_ip4_port -rust_uv_ip6_port -rust_uv_tcp_getpeername rust_raw_thread_start rust_raw_thread_join rust_raw_thread_delete @@ -150,14 +61,6 @@ rust_dbg_extern_return_TwoU32s rust_dbg_extern_return_TwoU64s rust_dbg_extern_identity_double rust_dbg_extern_identity_u8 -rust_uv_handle_size -rust_uv_req_size -rust_uv_handle_type_max -rust_uv_req_type_max -rust_uv_ip4_addrp -rust_uv_ip6_addrp -rust_uv_free_ip4_addr -rust_uv_free_ip6_addr rust_initialize_rt_tls_key rust_dbg_next_port rust_try @@ -172,29 +75,5 @@ rust_get_global_args_ptr rust_take_global_args_lock rust_drop_global_args_lock rust_get_test_int -rust_uv_get_loop_from_getaddrinfo_req -rust_uv_spawn -rust_uv_process_kill -rust_set_stdio_container_flags -rust_set_stdio_container_fd -rust_set_stdio_container_stream -rust_uv_process_pid -rust_uv_pipe_init -rust_uv_signal_init -rust_uv_signal_start -rust_uv_signal_stop -sdhtml_renderer -sd_markdown_new -sd_markdown_render -sd_markdown_free -bufrelease -bufnew rust_take_dlerror_lock rust_drop_dlerror_lock -rust_uv_pipe_open -rust_uv_pipe_bind -rust_uv_pipe_connect -rust_uv_tty_init -rust_uv_tty_set_mode -rust_uv_tty_get_winsize -rust_uv_guess_handle |
