@@ -158,12 +158,12 @@ pub(super) fn get_metadata_xcoff<'a>(path: &Path, data: &'a [u8]) -> Result<&'a
158158        file. symbols ( ) . find ( |sym| sym. name ( )  == Ok ( AIX_METADATA_SYMBOL_NAME ) ) 
159159    { 
160160        let  offset = metadata_symbol. address ( )  as  usize ; 
161-         if  offset < 4  { 
161+         if  offset < 8  { 
162162            return  Err ( format ! ( "Invalid metadata symbol offset: {offset}" ) ) ; 
163163        } 
164164        // The offset specifies the location of rustc metadata in the comment section. 
165165        // The metadata is preceded by a 4-byte length field. 
166-         let  len = u32 :: from_be_bytes ( info_data[ ( offset - 4 ) ..offset] . try_into ( ) . unwrap ( ) )  as  usize ; 
166+         let  len = u64 :: from_le_bytes ( info_data[ ( offset - 8 ) ..offset] . try_into ( ) . unwrap ( ) )  as  usize ; 
167167        if  offset + len > ( info_data. len ( )  as  usize )  { 
168168            return  Err ( format ! ( 
169169                "Metadata at offset {offset} with size {len} is beyond .info section" 
@@ -479,8 +479,8 @@ pub fn create_wrapper_file(
479479            file. section_mut ( section) . flags  =
480480                SectionFlags :: Xcoff  {  s_flags :  xcoff:: STYP_INFO  as  u32  } ; 
481481
482-             let  len = data. len ( )  as  u32 ; 
483-             let  offset = file. append_section_data ( section,  & len. to_be_bytes ( ) ,  1 ) ; 
482+             let  len = data. len ( )  as  u64 ; 
483+             let  offset = file. append_section_data ( section,  & len. to_le_bytes ( ) ,  1 ) ; 
484484            // Add a symbol referring to the data in .info section. 
485485            file. add_symbol ( Symbol  { 
486486                name :  AIX_METADATA_SYMBOL_NAME . into ( ) , 
@@ -524,7 +524,7 @@ pub fn create_compressed_metadata_file(
524524    symbol_name :  & str , 
525525)  -> Vec < u8 >  { 
526526    let  mut  packed_metadata = rustc_metadata:: METADATA_HEADER . to_vec ( ) ; 
527-     packed_metadata. write_all ( & ( metadata. raw_data ( ) . len ( )  as  u32 ) . to_be_bytes ( ) ) . unwrap ( ) ; 
527+     packed_metadata. write_all ( & ( metadata. raw_data ( ) . len ( )  as  u64 ) . to_le_bytes ( ) ) . unwrap ( ) ; 
528528    packed_metadata. extend ( metadata. raw_data ( ) ) ; 
529529
530530    let  Some ( mut  file)  = create_object_file ( sess)  else  { 
@@ -599,12 +599,12 @@ pub fn create_compressed_metadata_file_for_xcoff(
599599        section :  SymbolSection :: Section ( data_section) , 
600600        flags :  SymbolFlags :: None , 
601601    } ) ; 
602-     let  len = data. len ( )  as  u32 ; 
603-     let  offset = file. append_section_data ( section,  & len. to_be_bytes ( ) ,  1 ) ; 
602+     let  len = data. len ( )  as  u64 ; 
603+     let  offset = file. append_section_data ( section,  & len. to_le_bytes ( ) ,  1 ) ; 
604604    // Add a symbol referring to the rustc metadata. 
605605    file. add_symbol ( Symbol  { 
606606        name :  AIX_METADATA_SYMBOL_NAME . into ( ) , 
607-         value :  offset + 4 ,  // The metadata is preceded by a 4 -byte length field. 
607+         value :  offset + 8 ,  // The metadata is preceded by a 8 -byte length field. 
608608        size :  0 , 
609609        kind :  SymbolKind :: Unknown , 
610610        scope :  SymbolScope :: Dynamic , 
0 commit comments