@@ -302,6 +302,9 @@ pub struct TargetOptions {
302302 pub staticlib_suffix : String ,
303303 /// OS family to use for conditional compilation. Valid options: "unix", "windows".
304304 pub target_family : Option < String > ,
305+ /// Whether the target toolchain is like OpenBSD's.
306+ /// Only useful for compiling against OpenBSD, for configuring abi when returning a struct.
307+ pub is_like_openbsd : bool ,
305308 /// Whether the target toolchain is like OSX's. Only useful for compiling against iOS/OS X, in
306309 /// particular running dsymutil and some other stuff like `-dead_strip`. Defaults to false.
307310 pub is_like_osx : bool ,
@@ -406,6 +409,7 @@ impl Default for TargetOptions {
406409 staticlib_prefix : "lib" . to_string ( ) ,
407410 staticlib_suffix : ".a" . to_string ( ) ,
408411 target_family : None ,
412+ is_like_openbsd : false ,
409413 is_like_osx : false ,
410414 is_like_solaris : false ,
411415 is_like_windows : false ,
@@ -572,6 +576,7 @@ impl Target {
572576 key ! ( staticlib_prefix) ;
573577 key ! ( staticlib_suffix) ;
574578 key ! ( target_family, optional) ;
579+ key ! ( is_like_openbsd, bool ) ;
575580 key ! ( is_like_osx, bool ) ;
576581 key ! ( is_like_solaris, bool ) ;
577582 key ! ( is_like_windows, bool ) ;
@@ -733,6 +738,7 @@ impl ToJson for Target {
733738 target_option_val ! ( staticlib_prefix) ;
734739 target_option_val ! ( staticlib_suffix) ;
735740 target_option_val ! ( target_family) ;
741+ target_option_val ! ( is_like_openbsd) ;
736742 target_option_val ! ( is_like_osx) ;
737743 target_option_val ! ( is_like_solaris) ;
738744 target_option_val ! ( is_like_windows) ;
0 commit comments