File tree 5 files changed +33
-22
lines changed
5 files changed +33
-22
lines changed Original file line number Diff line number Diff line change @@ -1095,6 +1095,7 @@ pub mod types {
1095
1095
pub type sighandler_t = size_t ;
1096
1096
}
1097
1097
pub mod bsd44 {
1098
+ use types:: common:: c95:: { c_void} ;
1098
1099
use types:: os:: arch:: c95:: { c_char, c_int, c_uint} ;
1099
1100
1100
1101
pub type socklen_t = u32 ;
@@ -1167,6 +1168,17 @@ pub mod types {
1167
1168
pub sun_family : sa_family_t ,
1168
1169
pub sun_path : [ c_char , ..104 ]
1169
1170
}
1171
+ #[ repr( C ) ]
1172
+ #[ deriving( Copy ) ] pub struct ifaddrs {
1173
+ pub ifa_next : * mut ifaddrs ,
1174
+ pub ifa_name : * mut c_char ,
1175
+ pub ifa_flags : c_uint ,
1176
+ pub ifa_addr : * mut sockaddr ,
1177
+ pub ifa_netmask : * mut sockaddr ,
1178
+ pub ifa_dstaddr : * mut sockaddr ,
1179
+ pub ifa_data : * mut c_void
1180
+ }
1181
+
1170
1182
}
1171
1183
}
1172
1184
Original file line number Diff line number Diff line change @@ -215,22 +215,7 @@ mod test {
215
215
}
216
216
217
217
#[ test]
218
- #[ cfg( target_os = "freebsd" ) ]
219
- fn test_rpath_relative ( ) {
220
- let config = & mut RPathConfig {
221
- used_crates : Vec :: new ( ) ,
222
- has_rpath : true ,
223
- is_like_osx : false ,
224
- out_filename : Path :: new ( "bin/rustc" ) ,
225
- get_install_prefix_lib_path : || panic ! ( ) ,
226
- realpath : |p| Ok ( p. clone ( ) )
227
- } ;
228
- let res = get_rpath_relative_to_output ( config, & Path :: new ( "lib/libstd.so" ) ) ;
229
- assert_eq ! ( res, "$ORIGIN/../lib" ) ;
230
- }
231
-
232
- #[ test]
233
- #[ cfg( target_os = "dragonfly" ) ]
218
+ #[ cfg( any( target_os = "freebsd" , target_os = "dragonfly" ) ) ]
234
219
fn test_rpath_relative ( ) {
235
220
let config = & mut RPathConfig {
236
221
used_crates : Vec :: new ( ) ,
Original file line number Diff line number Diff line change @@ -20,8 +20,7 @@ pub fn opts() -> TargetOptions {
20
20
has_rpath : true ,
21
21
pre_link_args : vec ! (
22
22
"-L/usr/local/lib" . to_string( ) ,
23
- "-L/usr/local/lib/gcc47" . to_string( ) ,
24
- "-L/usr/local/lib/gcc44" . to_string( ) ,
23
+ "-L/usr/local/lib/gcc48" . to_string( ) ,
25
24
) ,
26
25
27
26
.. Default :: default ( )
Original file line number Diff line number Diff line change 11
11
use target:: Target ;
12
12
13
13
pub fn target ( ) -> Target {
14
+ let mut base = super :: dragonfly_base:: opts ( ) ;
15
+ base. pre_link_args . push ( "-m64" . to_string ( ) ) ;
16
+
14
17
Target {
15
- data_layout : "e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32" . to_string ( ) ,
18
+ data_layout : "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-\
19
+ f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-\
20
+ s0:64:64-f80:128:128-n8:16:32:64-S128". to_string ( ) ,
16
21
llvm_target : "x86_64-unknown-dragonfly" . to_string ( ) ,
17
22
target_endian : "little" . to_string ( ) ,
18
- target_word_size : "32 " . to_string ( ) ,
23
+ target_word_size : "64 " . to_string ( ) ,
19
24
arch : "x86_64" . to_string ( ) ,
20
25
target_os : "dragonfly" . to_string ( ) ,
21
- options : super :: dragonfly_base :: opts ( )
26
+ options : base ,
22
27
}
23
28
}
Original file line number Diff line number Diff line change @@ -665,7 +665,7 @@ pub fn dll_filename(base: &str) -> String {
665
665
/// ```
666
666
pub fn self_exe_name ( ) -> Option < Path > {
667
667
668
- #[ cfg( any ( target_os = "freebsd" , target_os = "dragonfly" ) ) ]
668
+ #[ cfg( target_os = "freebsd" ) ]
669
669
fn load_self ( ) -> Option < Vec < u8 > > {
670
670
unsafe {
671
671
use libc:: funcs:: bsd44:: * ;
@@ -691,6 +691,16 @@ pub fn self_exe_name() -> Option<Path> {
691
691
}
692
692
}
693
693
694
+ #[ cfg( target_os = "dragonfly" ) ]
695
+ fn load_self ( ) -> Option < Vec < u8 > > {
696
+ use std:: io;
697
+
698
+ match io:: fs:: readlink ( & Path :: new ( "/proc/curproc/file" ) ) {
699
+ Ok ( path) => Some ( path. into_vec ( ) ) ,
700
+ Err ( ..) => None
701
+ }
702
+ }
703
+
694
704
#[ cfg( any( target_os = "linux" , target_os = "android" ) ) ]
695
705
fn load_self ( ) -> Option < Vec < u8 > > {
696
706
use std:: io;
You can’t perform that action at this time.
0 commit comments