about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-10-14 07:26:47 -0700
committerbors <bors@rust-lang.org>2013-10-14 07:26:47 -0700
commitc8e77d5586aed50821e0b9361b2e24c96ade816c (patch)
treefe5ccc6b0b4ccbbd70cf48925e22cccf3d3c0a72
parentb571039021e031888cea4e0b53d8f9b4e81c6d31 (diff)
parent309ab958e6cf78caf188f6dcbf9ce35d9ba62468 (diff)
downloadrust-c8e77d5586aed50821e0b9361b2e24c96ade816c.tar.gz
rust-c8e77d5586aed50821e0b9361b2e24c96ade816c.zip
auto merge of #9606 : steveklabnik/rust/abi_removal, r=alexcrichton
They've been replaced by putting the name on the extern block.

  #[abi = "foo"]

goes to

  extern "foo" { }

Closes #9483.
-rw-r--r--doc/tutorial-ffi.md11
-rw-r--r--src/libextra/time.rs1
-rw-r--r--src/libextra/unicode.rs1
-rw-r--r--src/librustc/lib/llvm.rs1
-rw-r--r--src/libstd/io.rs1
-rw-r--r--src/libstd/libc.rs26
-rw-r--r--src/libstd/num/cmath.rs2
-rw-r--r--src/libstd/os.rs2
-rw-r--r--src/libstd/rt/thread_local_storage.rs1
-rw-r--r--src/libstd/unstable/intrinsics.rs1
-rw-r--r--src/libsyntax/ext/expand.rs1
-rw-r--r--src/test/auxiliary/anon-extern-mod-cross-crate-1.rs1
-rw-r--r--src/test/auxiliary/cci_intrinsic.rs1
-rw-r--r--src/test/compile-fail/foreign-unsafe-fn-called.rs1
-rw-r--r--src/test/run-pass/anon-extern-mod.rs1
-rw-r--r--src/test/run-pass/c-stack-as-value.rs1
-rw-r--r--src/test/run-pass/c-stack-returning-int64.rs1
-rw-r--r--src/test/run-pass/conditional-compile.rs3
-rw-r--r--src/test/run-pass/foreign-dupe.rs2
-rw-r--r--src/test/run-pass/foreign-fn-linkname.rs1
-rw-r--r--src/test/run-pass/foreign2.rs4
-rw-r--r--src/test/run-pass/intrinsic-alignment.rs1
-rw-r--r--src/test/run-pass/intrinsic-atomics.rs1
-rw-r--r--src/test/run-pass/intrinsic-frame-address.rs1
-rw-r--r--src/test/run-pass/intrinsic-move-val.rs1
-rw-r--r--src/test/run-pass/intrinsic-uninit.rs1
-rw-r--r--src/test/run-pass/intrinsics-integer.rs1
-rw-r--r--src/test/run-pass/intrinsics-math.rs1
-rw-r--r--src/test/run-pass/issue-2214.rs1
-rw-r--r--src/test/run-pass/item-attributes.rs5
-rw-r--r--src/test/run-pass/morestack-address.rs1
-rw-r--r--src/test/run-pass/rec-align-u32.rs1
-rw-r--r--src/test/run-pass/rec-align-u64.rs1
-rw-r--r--src/test/run-pass/x86stdcall2.rs1
34 files changed, 4 insertions, 77 deletions
diff --git a/doc/tutorial-ffi.md b/doc/tutorial-ffi.md
index 46d37a559bb..38aea02f040 100644
--- a/doc/tutorial-ffi.md
+++ b/doc/tutorial-ffi.md
@@ -415,21 +415,18 @@ fn main() {
 
 Most foreign code exposes a C ABI, and Rust uses the platform's C calling convention by default when
 calling foreign functions. Some foreign functions, most notably the Windows API, use other calling
-conventions. Rust provides the `abi` attribute as a way to hint to the compiler which calling
-convention to use:
+conventions. Rust provides a way to tell the compiler which convention to use:
 
 ~~~~
 #[cfg(target_os = "win32")]
-#[abi = "stdcall"]
 #[link_name = "kernel32"]
-extern {
+extern "stdcall" {
     fn SetEnvironmentVariableA(n: *u8, v: *u8) -> int;
 }
 ~~~~
 
-The `abi` attribute applies to a foreign module (it cannot be applied to a single function within a
-module), and must be either `"cdecl"` or `"stdcall"`. The compiler may eventually support other
-calling conventions.
+This applies to the entire `extern` block, and must be either `"cdecl"` or
+`"stdcall"`. The compiler may eventually support other calling conventions.
 
 # Interoperability with foreign code
 
diff --git a/src/libextra/time.rs b/src/libextra/time.rs
index f2f4f96bc7a..9376e225897 100644
--- a/src/libextra/time.rs
+++ b/src/libextra/time.rs
@@ -19,7 +19,6 @@ static NSEC_PER_SEC: i32 = 1_000_000_000_i32;
 pub mod rustrt {
     use super::Tm;
 
-    #[abi = "cdecl"]
     extern {
         pub fn get_time(sec: &mut i64, nsec: &mut i32);
         pub fn precise_time_ns(ns: &mut u64);
diff --git a/src/libextra/unicode.rs b/src/libextra/unicode.rs
index 3957551c846..cd8c9cd6ab5 100644
--- a/src/libextra/unicode.rs
+++ b/src/libextra/unicode.rs
@@ -162,7 +162,6 @@ pub mod icu {
 
         // #[link_name = "icuuc"]
         #[link_args = "-licuuc"]
-        #[abi = "cdecl"]
         extern {
             pub fn u_hasBinaryProperty(c: UChar32, which: UProperty) -> UBool;
             pub fn u_isdigit(c: UChar32) -> UBool;
diff --git a/src/librustc/lib/llvm.rs b/src/librustc/lib/llvm.rs
index 787f8e60d65..aa899239d8b 100644
--- a/src/librustc/lib/llvm.rs
+++ b/src/librustc/lib/llvm.rs
@@ -300,7 +300,6 @@ pub mod llvm {
 
     #[link_args = "-Lrustllvm -lrustllvm"]
     #[link_name = "rustllvm"]
-    #[abi = "cdecl"]
     extern {
         /* Create and destroy contexts. */
         pub fn LLVMContextCreate() -> ContextRef;
diff --git a/src/libstd/io.rs b/src/libstd/io.rs
index 791616d330e..7160496f4ab 100644
--- a/src/libstd/io.rs
+++ b/src/libstd/io.rs
@@ -76,7 +76,6 @@ pub type fd_t = c_int;
 pub mod rustrt {
     use libc;
 
-    #[abi = "cdecl"]
     #[link_name = "rustrt"]
     extern {
         pub fn rust_get_stdin() -> *libc::FILE;
diff --git a/src/libstd/libc.rs b/src/libstd/libc.rs
index f579e12054b..3313823fc5f 100644
--- a/src/libstd/libc.rs
+++ b/src/libstd/libc.rs
@@ -2663,7 +2663,6 @@ pub mod funcs {
 
     pub mod c95 {
         #[nolink]
-        #[abi = "cdecl"]
         pub mod ctype {
             use libc::types::os::arch::c95::{c_char, c_int};
 
@@ -2685,7 +2684,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod stdio {
             use libc::types::common::c95::{FILE, c_void, fpos_t};
             use libc::types::os::arch::c95::{c_char, c_int, c_long, size_t};
@@ -2742,7 +2740,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod stdlib {
             use libc::types::common::c95::c_void;
             use libc::types::os::arch::c95::{c_char, c_double, c_int};
@@ -2776,7 +2773,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod string {
             use libc::types::common::c95::c_void;
             use libc::types::os::arch::c95::{c_char, c_int, size_t};
@@ -2826,7 +2822,6 @@ pub mod funcs {
     #[cfg(target_os = "win32")]
     pub mod posix88 {
         #[nolink]
-        #[abi = "cdecl"]
         pub mod stat_ {
             use libc::types::os::common::posix01::stat;
             use libc::types::os::arch::c95::{c_int, c_char};
@@ -2844,7 +2839,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod stdio {
             use libc::types::common::c95::FILE;
             use libc::types::os::arch::c95::{c_int, c_char};
@@ -2862,7 +2856,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod fcntl {
             use libc::types::os::arch::c95::{c_int, c_char};
             extern {
@@ -2875,13 +2868,11 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod dirent {
             // Not supplied at all.
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod unistd {
             use libc::types::common::c95::c_void;
             use libc::types::os::arch::c95::{c_int, c_uint, c_char,
@@ -2949,7 +2940,6 @@ pub mod funcs {
             use libc::types::os::arch::posix88::mode_t;
 
             #[nolink]
-            #[abi = "cdecl"]
             extern {
                 pub fn chmod(path: *c_char, mode: mode_t) -> c_int;
                 pub fn fchmod(fd: c_int, mode: mode_t) -> c_int;
@@ -2978,7 +2968,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod stdio {
             use libc::types::common::c95::FILE;
             use libc::types::os::arch::c95::{c_char, c_int};
@@ -2992,7 +2981,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod fcntl {
             use libc::types::os::arch::c95::{c_char, c_int};
             use libc::types::os::arch::posix88::mode_t;
@@ -3006,7 +2994,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod dirent {
             use libc::types::common::posix88::{DIR, dirent_t};
             use libc::types::os::arch::c95::{c_char, c_int, c_long};
@@ -3040,7 +3027,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod unistd {
             use libc::types::common::c95::c_void;
             use libc::types::os::arch::c95::{c_char, c_int, c_long, c_uint};
@@ -3100,7 +3086,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod signal {
             use libc::types::os::arch::c95::{c_int};
             use libc::types::os::arch::posix88::{pid_t};
@@ -3111,7 +3096,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod mman {
             use libc::types::common::c95::{c_void};
             use libc::types::os::arch::c95::{size_t, c_int, c_char};
@@ -3150,7 +3134,6 @@ pub mod funcs {
     #[cfg(target_os = "freebsd")]
     pub mod posix01 {
         #[nolink]
-        #[abi = "cdecl"]
         pub mod stat_ {
             use libc::types::os::arch::c95::{c_char, c_int};
             use libc::types::os::arch::posix01::stat;
@@ -3168,7 +3151,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod unistd {
             use libc::types::os::arch::c95::{c_char, c_int, size_t};
             use libc::types::os::arch::posix88::{ssize_t};
@@ -3195,7 +3177,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod wait {
             use libc::types::os::arch::c95::{c_int};
             use libc::types::os::arch::posix88::{pid_t};
@@ -3207,7 +3188,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod glob {
             use libc::types::os::arch::c95::{c_char, c_int};
             use libc::types::os::common::posix01::{glob_t};
@@ -3223,7 +3203,6 @@ pub mod funcs {
         }
 
         #[nolink]
-        #[abi = "cdecl"]
         pub mod mman {
             use libc::types::common::c95::{c_void};
             use libc::types::os::arch::c95::{c_int, size_t};
@@ -3271,7 +3250,6 @@ pub mod funcs {
         use libc::types::os::arch::c95::{c_char, c_uchar, c_int, c_uint,
                                          size_t};
 
-        #[abi = "cdecl"]
         extern {
             pub fn sysctl(name: *c_int,
                           namelen: c_uint,
@@ -3305,7 +3283,6 @@ pub mod funcs {
         use libc::types::common::c95::{c_void};
         use libc::types::os::arch::c95::{c_uchar, c_int, size_t};
 
-        #[abi = "cdecl"]
         extern {
             pub fn getdtablesize() -> c_int;
             pub fn madvise(addr: *c_void, len: size_t, advice: c_int)
@@ -3325,7 +3302,6 @@ pub mod funcs {
     pub mod extra {
         use libc::types::os::arch::c95::{c_char, c_int};
 
-        #[abi = "cdecl"]
         extern {
             pub fn _NSGetExecutablePath(buf: *mut c_char, bufsize: *mut u32)
                                         -> c_int;
@@ -3358,7 +3334,6 @@ pub mod funcs {
             use libc::types::os::arch::extra::{HANDLE, LPHANDLE};
 
             #[cfg(target_arch = "x86")]
-            #[abi = "stdcall"]
             extern "stdcall" {
                 pub fn GetEnvironmentVariableW(n: LPCWSTR,
                                                v: LPWSTR,
@@ -3572,7 +3547,6 @@ pub mod funcs {
         pub mod msvcrt {
             use libc::types::os::arch::c95::{c_int, c_long};
 
-            #[abi = "cdecl"]
             #[nolink]
             extern {
                 #[link_name = "_commit"]
diff --git a/src/libstd/num/cmath.rs b/src/libstd/num/cmath.rs
index 0c515538266..72051a93398 100644
--- a/src/libstd/num/cmath.rs
+++ b/src/libstd/num/cmath.rs
@@ -18,7 +18,6 @@ pub mod c_double_utils {
     use libc::{c_double, c_int};
 
     #[link_name = "m"]
-    #[abi = "cdecl"]
     extern {
         // Alpabetically sorted by link_name
 
@@ -107,7 +106,6 @@ pub mod c_float_utils {
     use libc::{c_float, c_int};
 
     #[link_name = "m"]
-    #[abi = "cdecl"]
     extern {
         // Alpabetically sorted by link_name
 
diff --git a/src/libstd/os.rs b/src/libstd/os.rs
index e7cba0895e4..b7921d7527b 100644
--- a/src/libstd/os.rs
+++ b/src/libstd/os.rs
@@ -1039,7 +1039,6 @@ pub fn errno() -> uint {
 
     #[cfg(target_arch = "x86")]
     #[link_name = "kernel32"]
-    #[abi = "stdcall"]
     extern "stdcall" {
         fn GetLastError() -> DWORD;
     }
@@ -1118,7 +1117,6 @@ pub fn last_os_error() -> ~str {
 
         #[cfg(target_arch = "x86")]
         #[link_name = "kernel32"]
-        #[abi = "stdcall"]
         extern "stdcall" {
             fn FormatMessageW(flags: DWORD,
                               lpSrc: LPVOID,
diff --git a/src/libstd/rt/thread_local_storage.rs b/src/libstd/rt/thread_local_storage.rs
index 26eabca2d9d..cd89d09ffc0 100644
--- a/src/libstd/rt/thread_local_storage.rs
+++ b/src/libstd/rt/thread_local_storage.rs
@@ -84,7 +84,6 @@ pub unsafe fn get(key: Key) -> *mut c_void {
 }
 
 #[cfg(windows, target_arch = "x86")]
-#[abi = "stdcall"]
 extern "stdcall" {
        fn TlsAlloc() -> DWORD;
        fn TlsSetValue(dwTlsIndex: DWORD, lpTlsvalue: LPVOID) -> BOOL;
diff --git a/src/libstd/unstable/intrinsics.rs b/src/libstd/unstable/intrinsics.rs
index 26ebde34775..59b3c264b99 100644
--- a/src/libstd/unstable/intrinsics.rs
+++ b/src/libstd/unstable/intrinsics.rs
@@ -170,7 +170,6 @@ pub trait TyVisitor {
     fn visit_closure_ptr(&mut self, ck: uint) -> bool;
 }
 
-#[abi = "rust-intrinsic"]
 extern "rust-intrinsic" {
 
     /// Atomic compare and exchange, sequentially consistent.
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index 01d0fd80672..c936cb9ab90 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -1059,7 +1059,6 @@ pub fn std_macros() -> @str {
     // It is intended to be used like:
     //
     // externfn!(#[nolink]
-    //           #[abi = \"cdecl\"]
     //           fn memcmp(cx: *u8, ct: *u8, n: u32) -> u32)
     //
     // Due to limitations in the macro parser, this pattern must be
diff --git a/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs b/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs
index 3c73bd1b7f2..ca9c6eb79f9 100644
--- a/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs
+++ b/src/test/auxiliary/anon-extern-mod-cross-crate-1.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#[abi = "cdecl"];
 #[link_name = "rustrt"];
 #[link(name = "anonexternmod",
        vers = "0.1")];
diff --git a/src/test/auxiliary/cci_intrinsic.rs b/src/test/auxiliary/cci_intrinsic.rs
index ebcb1e7fef9..9e69715d1cb 100644
--- a/src/test/auxiliary/cci_intrinsic.rs
+++ b/src/test/auxiliary/cci_intrinsic.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 pub mod rusti {
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn atomic_cxchg(dst: &mut int, old: int, src: int) -> int;
         pub fn atomic_cxchg_acq(dst: &mut int, old: int, src: int) -> int;
diff --git a/src/test/compile-fail/foreign-unsafe-fn-called.rs b/src/test/compile-fail/foreign-unsafe-fn-called.rs
index 6c74c860a4b..38c1a32b12e 100644
--- a/src/test/compile-fail/foreign-unsafe-fn-called.rs
+++ b/src/test/compile-fail/foreign-unsafe-fn-called.rs
@@ -11,7 +11,6 @@
 
 
 mod test {
-    #[abi = "cdecl"]
     extern {
         pub fn free();
     }
diff --git a/src/test/run-pass/anon-extern-mod.rs b/src/test/run-pass/anon-extern-mod.rs
index ed9caa1f65e..343e9b9b8ad 100644
--- a/src/test/run-pass/anon-extern-mod.rs
+++ b/src/test/run-pass/anon-extern-mod.rs
@@ -10,7 +10,6 @@
 
 use std::libc;
 
-#[abi = "cdecl"]
 #[link_name = "rustrt"]
 extern {
     fn rust_get_test_int() -> libc::intptr_t;
diff --git a/src/test/run-pass/c-stack-as-value.rs b/src/test/run-pass/c-stack-as-value.rs
index ac7b221cff8..f8d30a9a667 100644
--- a/src/test/run-pass/c-stack-as-value.rs
+++ b/src/test/run-pass/c-stack-as-value.rs
@@ -11,7 +11,6 @@
 mod rustrt {
     use std::libc;
 
-    #[abi = "cdecl"]
     extern {
         pub fn rust_get_test_int() -> libc::intptr_t;
     }
diff --git a/src/test/run-pass/c-stack-returning-int64.rs b/src/test/run-pass/c-stack-returning-int64.rs
index f140c4621aa..866dd6b6705 100644
--- a/src/test/run-pass/c-stack-returning-int64.rs
+++ b/src/test/run-pass/c-stack-returning-int64.rs
@@ -11,7 +11,6 @@
 mod libc {
     use std::libc::{c_char, c_long, c_longlong};
 
-    #[abi = "cdecl"]
     #[nolink]
     extern {
         pub fn atol(x: *c_char) -> c_long;
diff --git a/src/test/run-pass/conditional-compile.rs b/src/test/run-pass/conditional-compile.rs
index 00be4cd26f4..89f4440f5bb 100644
--- a/src/test/run-pass/conditional-compile.rs
+++ b/src/test/run-pass/conditional-compile.rs
@@ -21,14 +21,12 @@ static b: bool = true;
 
 mod rustrt {
     #[cfg(bogus)]
-    #[abi = "cdecl"]
     extern {
         // This symbol doesn't exist and would be a link error if this
         // module was translated
         pub fn bogus();
     }
 
-    #[abi = "cdecl"]
     extern {}
 }
 
@@ -109,7 +107,6 @@ fn test_in_fn_ctxt() {
 
 mod test_foreign_items {
     pub mod rustrt {
-        #[abi = "cdecl"]
         extern {
             #[cfg(bogus)]
             pub fn rust_get_stdin() -> ~str;
diff --git a/src/test/run-pass/foreign-dupe.rs b/src/test/run-pass/foreign-dupe.rs
index e8a9d666dcc..9f1ca435c73 100644
--- a/src/test/run-pass/foreign-dupe.rs
+++ b/src/test/run-pass/foreign-dupe.rs
@@ -14,7 +14,6 @@
 mod rustrt1 {
     use std::libc;
 
-    #[abi = "cdecl"]
     #[link_name = "rustrt"]
     extern {
         pub fn rust_get_test_int() -> libc::intptr_t;
@@ -24,7 +23,6 @@ mod rustrt1 {
 mod rustrt2 {
     use std::libc;
 
-    #[abi = "cdecl"]
     #[link_name = "rustrt"]
     extern {
         pub fn rust_get_test_int() -> libc::intptr_t;
diff --git a/src/test/run-pass/foreign-fn-linkname.rs b/src/test/run-pass/foreign-fn-linkname.rs
index 57b59e4445e..3c6d33c637c 100644
--- a/src/test/run-pass/foreign-fn-linkname.rs
+++ b/src/test/run-pass/foreign-fn-linkname.rs
@@ -14,7 +14,6 @@ mod libc {
     use std::libc::{c_char, size_t};
 
     #[nolink]
-    #[abi = "cdecl"]
     extern {
         #[link_name = "strlen"]
         pub fn my_strlen(str: *c_char) -> size_t;
diff --git a/src/test/run-pass/foreign2.rs b/src/test/run-pass/foreign2.rs
index 2cc7e270772..350a3d6f4fc 100644
--- a/src/test/run-pass/foreign2.rs
+++ b/src/test/run-pass/foreign2.rs
@@ -9,13 +9,11 @@
 // except according to those terms.
 
 mod bar {
-    #[abi = "cdecl"]
     #[nolink]
     extern {}
 }
 
 mod zed {
-    #[abi = "cdecl"]
     #[nolink]
     extern {}
 }
@@ -23,7 +21,6 @@ mod zed {
 mod libc {
     use std::libc::{c_int, c_void, size_t, ssize_t};
 
-    #[abi = "cdecl"]
     #[nolink]
     extern {
         pub fn write(fd: c_int, buf: *c_void, count: size_t) -> ssize_t;
@@ -31,7 +28,6 @@ mod libc {
 }
 
 mod baz {
-    #[abi = "cdecl"]
     #[nolink]
     extern {}
 }
diff --git a/src/test/run-pass/intrinsic-alignment.rs b/src/test/run-pass/intrinsic-alignment.rs
index 90d4bd1e7ae..051f92b1651 100644
--- a/src/test/run-pass/intrinsic-alignment.rs
+++ b/src/test/run-pass/intrinsic-alignment.rs
@@ -11,7 +11,6 @@
 // xfail-fast Does not work with main in a submodule
 
 mod rusti {
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn pref_align_of<T>() -> uint;
         pub fn min_align_of<T>() -> uint;
diff --git a/src/test/run-pass/intrinsic-atomics.rs b/src/test/run-pass/intrinsic-atomics.rs
index f1354cbb20f..2ec91ee440b 100644
--- a/src/test/run-pass/intrinsic-atomics.rs
+++ b/src/test/run-pass/intrinsic-atomics.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 mod rusti {
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn atomic_cxchg(dst: &mut int, old: int, src: int) -> int;
         pub fn atomic_cxchg_acq(dst: &mut int, old: int, src: int) -> int;
diff --git a/src/test/run-pass/intrinsic-frame-address.rs b/src/test/run-pass/intrinsic-frame-address.rs
index 452104ec4a2..63635c7addf 100644
--- a/src/test/run-pass/intrinsic-frame-address.rs
+++ b/src/test/run-pass/intrinsic-frame-address.rs
@@ -11,7 +11,6 @@
 // xfail-fast
 
 mod rusti {
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn frame_address(f: &once fn(*u8));
     }
diff --git a/src/test/run-pass/intrinsic-move-val.rs b/src/test/run-pass/intrinsic-move-val.rs
index 90f352c845b..f328c484478 100644
--- a/src/test/run-pass/intrinsic-move-val.rs
+++ b/src/test/run-pass/intrinsic-move-val.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 mod rusti {
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn move_val_init<T>(dst: &mut T, src: T);
         pub fn move_val<T>(dst: &mut T, src: T);
diff --git a/src/test/run-pass/intrinsic-uninit.rs b/src/test/run-pass/intrinsic-uninit.rs
index 53c9ed63141..ab6904927e8 100644
--- a/src/test/run-pass/intrinsic-uninit.rs
+++ b/src/test/run-pass/intrinsic-uninit.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 mod rusti {
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn uninit<T>() -> T;
     }
diff --git a/src/test/run-pass/intrinsics-integer.rs b/src/test/run-pass/intrinsics-integer.rs
index 2ca71866db8..e45472634e6 100644
--- a/src/test/run-pass/intrinsics-integer.rs
+++ b/src/test/run-pass/intrinsics-integer.rs
@@ -15,7 +15,6 @@
 extern mod extra;
 
 mod rusti {
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn ctpop8(x: i8) -> i8;
         pub fn ctpop16(x: i16) -> i16;
diff --git a/src/test/run-pass/intrinsics-math.rs b/src/test/run-pass/intrinsics-math.rs
index 281ca2c3424..085ce656908 100644
--- a/src/test/run-pass/intrinsics-math.rs
+++ b/src/test/run-pass/intrinsics-math.rs
@@ -13,7 +13,6 @@
 #[feature(globs)];
 
 mod rusti {
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn sqrtf32(x: f32) -> f32;
         pub fn sqrtf64(x: f64) -> f64;
diff --git a/src/test/run-pass/issue-2214.rs b/src/test/run-pass/issue-2214.rs
index 1bb8a000876..9eebf662843 100644
--- a/src/test/run-pass/issue-2214.rs
+++ b/src/test/run-pass/issue-2214.rs
@@ -30,7 +30,6 @@ mod m {
     use std::libc::{c_double, c_int};
 
     #[link_name = "m"]
-    #[abi = "cdecl"]
     extern {
         #[cfg(unix)]
         #[link_name="lgamma_r"]
diff --git a/src/test/run-pass/item-attributes.rs b/src/test/run-pass/item-attributes.rs
index e661fe7771a..22f0f1f199f 100644
--- a/src/test/run-pass/item-attributes.rs
+++ b/src/test/run-pass/item-attributes.rs
@@ -39,7 +39,6 @@ mod test_single_attr_outer {
 
     pub mod rustrt {
         #[attr = "val"]
-        #[abi = "cdecl"]
         extern {}
     }
 }
@@ -60,7 +59,6 @@ mod test_multi_attr_outer {
     pub mod rustrt {
         #[attr1 = "val"]
         #[attr2 = "val"]
-        #[abi = "cdecl"]
         extern {}
     }
 
@@ -83,7 +81,6 @@ mod test_stmt_single_attr_outer {
 
         mod rustrt {
             #[attr = "val"]
-            #[abi = "cdecl"]
             extern {
             }
         }
@@ -110,7 +107,6 @@ mod test_stmt_multi_attr_outer {
         pub mod rustrt {
             #[attr1 = "val"]
             #[attr2 = "val"]
-            #[abi = "cdecl"]
             extern {
             }
         }
@@ -169,7 +165,6 @@ mod test_foreign_items {
     pub mod rustrt {
         use std::libc;
 
-        #[abi = "cdecl"]
         extern {
             #[attr];
 
diff --git a/src/test/run-pass/morestack-address.rs b/src/test/run-pass/morestack-address.rs
index cb4b078b9de..ad8b32839ea 100644
--- a/src/test/run-pass/morestack-address.rs
+++ b/src/test/run-pass/morestack-address.rs
@@ -10,7 +10,6 @@
 
 mod rusti {
     #[nolink]
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn morestack_addr() -> *();
     }
diff --git a/src/test/run-pass/rec-align-u32.rs b/src/test/run-pass/rec-align-u32.rs
index b7a2330cf84..804e6902002 100644
--- a/src/test/run-pass/rec-align-u32.rs
+++ b/src/test/run-pass/rec-align-u32.rs
@@ -15,7 +15,6 @@
 use std::sys;
 
 mod rusti {
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn pref_align_of<T>() -> uint;
         pub fn min_align_of<T>() -> uint;
diff --git a/src/test/run-pass/rec-align-u64.rs b/src/test/run-pass/rec-align-u64.rs
index e833f67b51e..6ec2b63cfff 100644
--- a/src/test/run-pass/rec-align-u64.rs
+++ b/src/test/run-pass/rec-align-u64.rs
@@ -15,7 +15,6 @@
 use std::sys;
 
 mod rusti {
-    #[abi = "rust-intrinsic"]
     extern "rust-intrinsic" {
         pub fn pref_align_of<T>() -> uint;
         pub fn min_align_of<T>() -> uint;
diff --git a/src/test/run-pass/x86stdcall2.rs b/src/test/run-pass/x86stdcall2.rs
index 3722dccf94b..b16218a59f9 100644
--- a/src/test/run-pass/x86stdcall2.rs
+++ b/src/test/run-pass/x86stdcall2.rs
@@ -18,7 +18,6 @@ pub type BOOL = u8;
 mod kernel32 {
     use super::{HANDLE, DWORD, SIZE_T, LPVOID, BOOL};
 
-    #[abi = "stdcall"]
     extern "stdcall" {
         pub fn GetProcessHeap() -> HANDLE;
         pub fn HeapAlloc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T)