@@ -200,7 +200,10 @@ pub(super) fn get_metadata_xcoff<'a>(path: &Path, data: &'a [u8]) -> Result<&'a
200
200
}
201
201
}
202
202
203
- pub ( crate ) fn create_object_file ( sess : & Session ) -> Option < write:: Object < ' static > > {
203
+ pub ( crate ) fn create_object_file (
204
+ sess : & Session ,
205
+ set_subsections_via_symbols : bool ,
206
+ ) -> Option < write:: Object < ' static > > {
204
207
let endianness = match sess. target . options . endian {
205
208
Endian :: Little => Endianness :: Little ,
206
209
Endian :: Big => Endianness :: Big ,
@@ -221,6 +224,11 @@ pub(crate) fn create_object_file(sess: &Session) -> Option<write::Object<'static
221
224
222
225
file. set_macho_build_version ( macho_object_build_version_for_target ( sess) )
223
226
}
227
+ if binary_format == BinaryFormat :: MachO {
228
+ if set_subsections_via_symbols {
229
+ file. set_subsections_via_symbols ( ) ;
230
+ }
231
+ }
224
232
if binary_format == BinaryFormat :: Coff {
225
233
// Disable the default mangler to avoid mangling the special "@feat.00" symbol name.
226
234
let original_mangling = file. mangling ( ) ;
@@ -455,7 +463,7 @@ pub(crate) fn create_wrapper_file(
455
463
section_name : String ,
456
464
data : & [ u8 ] ,
457
465
) -> ( Vec < u8 > , MetadataPosition ) {
458
- let Some ( mut file) = create_object_file ( sess) else {
466
+ let Some ( mut file) = create_object_file ( sess, false ) else {
459
467
if sess. target . is_like_wasm {
460
468
return (
461
469
create_metadata_file_for_wasm ( sess, data, & section_name) ,
@@ -543,7 +551,7 @@ pub fn create_compressed_metadata_file(
543
551
packed_metadata. write_all ( & ( metadata. stub_or_full ( ) . len ( ) as u64 ) . to_le_bytes ( ) ) . unwrap ( ) ;
544
552
packed_metadata. extend ( metadata. stub_or_full ( ) ) ;
545
553
546
- let Some ( mut file) = create_object_file ( sess) else {
554
+ let Some ( mut file) = create_object_file ( sess, false ) else {
547
555
if sess. target . is_like_wasm {
548
556
return create_metadata_file_for_wasm ( sess, & packed_metadata, ".rustc" ) ;
549
557
}
0 commit comments