File tree Expand file tree Collapse file tree 3 files changed +19
-1
lines changed Expand file tree Collapse file tree 3 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -1091,6 +1091,17 @@ fn link_args(sess: Session,
1091
1091
args. push ( metadata. as_str ( ) . unwrap ( ) . to_owned ( ) ) ;
1092
1092
}
1093
1093
1094
+ // We want to prevent the compiler from accidentally leaking in any system
1095
+ // libraries, so we explicitly ask gcc to not link to any libraries by
1096
+ // default. Note that this does not happen for windows because windows pulls
1097
+ // in some large number of libraries and I couldn't quite figure out which
1098
+ // subset we wanted.
1099
+ //
1100
+ // FIXME(#11937) we should invoke the system linker directly
1101
+ if sess. targ_cfg . os != abi:: OsWin32 {
1102
+ args. push ( ~"-nodefaultlibs") ;
1103
+ }
1104
+
1094
1105
if sess. targ_cfg . os == abi:: OsLinux {
1095
1106
// GNU-style linkers will use this to omit linking to libraries which
1096
1107
// don't actually fulfill any relocations, but only for libraries which
Original file line number Diff line number Diff line change @@ -142,6 +142,12 @@ mod libunwind {
142
142
pub type _Unwind_Exception_Cleanup_Fn = extern "C" fn ( unwind_code : _Unwind_Reason_Code ,
143
143
exception : * _Unwind_Exception ) ;
144
144
145
+ #[ cfg( target_os = "linux" ) ]
146
+ #[ cfg( target_os = "freebsd" ) ]
147
+ #[ cfg( target_os = "win32" ) ]
148
+ #[ link( name = "gcc_s" ) ]
149
+ extern { }
150
+
145
151
extern "C" {
146
152
pub fn _Unwind_RaiseException ( exception : * _Unwind_Exception ) -> _Unwind_Reason_Code ;
147
153
pub fn _Unwind_DeleteException ( exception : * _Unwind_Exception ) ;
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ extern {}
22
22
// On linux librt and libdl are indirect dependencies via rustrt,
23
23
// and binutils 2.22+ won't add them automatically
24
24
#[ cfg( target_os = "linux" ) ]
25
+ #[ link( name = "c" ) ]
25
26
#[ link( name = "dl" ) ]
26
27
#[ link( name = "m" ) ]
27
28
#[ link( name = "pthread" ) ]
@@ -39,5 +40,5 @@ extern {}
39
40
extern { }
40
41
41
42
#[ cfg( target_os = "macos" ) ]
42
- #[ link( name = "pthread " ) ]
43
+ #[ link( name = "System " ) ]
43
44
extern { }
You can’t perform that action at this time.
12 commit comments
bors commentedon Feb 5, 2014
saw approval from brson
at alexcrichton@b37700c
bors commentedon Feb 5, 2014
merging alexcrichton/rust/nodefaultlibs = b37700cc into auto
bors commentedon Feb 5, 2014
alexcrichton/rust/nodefaultlibs = b37700cc merged ok, testing candidate = b656a9bc
bors commentedon Feb 5, 2014
some tests failed:
failure: http://buildbot.rust-lang.org/builders/auto-mac-32-opt/builds/4030
exception: http://buildbot.rust-lang.org/builders/auto-mac-32-nopt-c/builds/1872
exception: http://buildbot.rust-lang.org/builders/auto-mac-32-nopt-t/builds/1874
exception: http://buildbot.rust-lang.org/builders/auto-mac-64-opt/builds/4030
exception: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-c/builds/3130
exception: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-t/builds/3136
exception: http://buildbot.rust-lang.org/builders/auto-linux-32-opt/builds/4045
exception: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-c/builds/3133
exception: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-t/builds/3139
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-opt/builds/4047
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-c/builds/3133
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-t/builds/3138
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android/builds/3207
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android-t/builds/985
exception: http://buildbot.rust-lang.org/builders/auto-win-32-opt/builds/4038
exception: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-c/builds/3139
exception: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-t/builds/3144
exception: http://buildbot.rust-lang.org/builders/auto-bsd-64-opt/builds/3807
bors commentedon Feb 13, 2014
saw approval from brson
at alexcrichton@b37700c
bors commentedon Feb 13, 2014
merging alexcrichton/rust/nodefaultlibs = b37700cc into auto
bors commentedon Feb 13, 2014
alexcrichton/rust/nodefaultlibs = b37700cc merged ok, testing candidate = 5a45b94c
bors commentedon Feb 13, 2014
some tests failed:
failure: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android-t/builds/1147
exception: http://buildbot.rust-lang.org/builders/auto-mac-32-opt/builds/4193
exception: http://buildbot.rust-lang.org/builders/auto-mac-32-nopt-c/builds/2035
exception: http://buildbot.rust-lang.org/builders/auto-mac-32-nopt-t/builds/2037
exception: http://buildbot.rust-lang.org/builders/auto-mac-64-opt/builds/4192
exception: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-c/builds/3292
exception: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-t/builds/3298
exception: http://buildbot.rust-lang.org/builders/auto-linux-32-opt/builds/4207
exception: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-c/builds/3295
exception: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-t/builds/3301
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-opt/builds/4209
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-c/builds/3295
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-t/builds/3300
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android/builds/3369
exception: http://buildbot.rust-lang.org/builders/auto-win-32-opt/builds/4200
exception: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-c/builds/3301
exception: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-t/builds/3306
exception: http://buildbot.rust-lang.org/builders/auto-bsd-64-opt/builds/3969
bors commentedon Feb 14, 2014
saw approval from brson
at alexcrichton@b37700c
bors commentedon Feb 14, 2014
merging alexcrichton/rust/nodefaultlibs = b37700cc into auto
bors commentedon Feb 14, 2014
alexcrichton/rust/nodefaultlibs = b37700cc merged ok, testing candidate = ee275436
bors commentedon Feb 14, 2014
some tests failed:
failure: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android-t/builds/1178
exception: http://buildbot.rust-lang.org/builders/auto-mac-32-opt/builds/4224
exception: http://buildbot.rust-lang.org/builders/auto-mac-32-nopt-c/builds/2066
exception: http://buildbot.rust-lang.org/builders/auto-mac-32-nopt-t/builds/2068
exception: http://buildbot.rust-lang.org/builders/auto-mac-64-opt/builds/4223
exception: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-c/builds/3323
exception: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-t/builds/3329
exception: http://buildbot.rust-lang.org/builders/auto-linux-32-opt/builds/4238
exception: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-c/builds/3326
exception: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-t/builds/3332
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-opt/builds/4240
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-c/builds/3326
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-t/builds/3331
exception: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android/builds/3400
exception: http://buildbot.rust-lang.org/builders/auto-win-32-opt/builds/4231
exception: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-c/builds/3332
exception: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-t/builds/3338
exception: http://buildbot.rust-lang.org/builders/auto-bsd-64-opt/builds/4000