Index: docs/Extensions.rst =================================================================== --- docs/Extensions.rst +++ docs/Extensions.rst @@ -204,7 +204,7 @@ The unique number is not present in the resulting object at all. It is just used in the assembler to differentiate the sections. -The 'm' flag is mapped to SHF_LINK_ORDER. If it is present, a symbol +The 'o' flag is mapped to SHF_LINK_ORDER. If it is present, a symbol must be given that identifies the section to be placed is the .sh_link. @@ -212,14 +212,14 @@ .section .foo,"a",@progbits .Ltmp: - .section .bar,"am",@progbits,.Ltmp + .section .bar,"ao",@progbits,.Ltmp which is equivalent to just .. code-block:: gas .section .foo,"a",@progbits - .section .bar,"am",@progbits,.foo + .section .bar,"ao",@progbits,.foo Target Specific Behaviour Index: lib/MC/MCParser/ELFAsmParser.cpp =================================================================== --- lib/MC/MCParser/ELFAsmParser.cpp +++ lib/MC/MCParser/ELFAsmParser.cpp @@ -298,7 +298,7 @@ case 'w': flags |= ELF::SHF_WRITE; break; - case 'm': + case 'o': flags |= ELF::SHF_LINK_ORDER; break; case 'M': Index: lib/MC/MCSectionELF.cpp =================================================================== --- lib/MC/MCSectionELF.cpp +++ lib/MC/MCSectionELF.cpp @@ -104,7 +104,7 @@ if (Flags & ELF::SHF_TLS) OS << 'T'; if (Flags & ELF::SHF_LINK_ORDER) - OS << 'm'; + OS << 'o'; // If there are target-specific flags, print them. Triple::ArchType Arch = T.getArch(); Index: test/CodeGen/X86/elf-associated.ll =================================================================== --- test/CodeGen/X86/elf-associated.ll +++ test/CodeGen/X86/elf-associated.ll @@ -4,23 +4,23 @@ @a = global i32 1 @b = global i32 2, !associated !0 !0 = !{i32* @a} -; CHECK-DAG: .section .data.b,"awm",@progbits,a +; CHECK-DAG: .section .data.b,"awo",@progbits,a ; Loop is OK. Also, normally -data-sections=0 would place @c and @d in the same section. !associated prevents that. @c = global i32 2, !associated !2 @d = global i32 2, !associated !1 !1 = !{i32* @c} !2 = !{i32* @d} -; CHECK-DAG: .section .data.c,"awm",@progbits,d -; CHECK-DAG: .section .data.d,"awm",@progbits,c +; CHECK-DAG: .section .data.c,"awo",@progbits,d +; CHECK-DAG: .section .data.d,"awo",@progbits,c ; BSS is OK. @e = global i32 0 @f = global i32 0, !associated !3 @g = global i32 1, !associated !3 !3 = !{i32* @e} -; CHECK-DAG: .section .bss.f,"awm",@nobits,e -; CHECK-DAG: .section .data.g,"awm",@progbits,e +; CHECK-DAG: .section .bss.f,"awo",@nobits,e +; CHECK-DAG: .section .data.g,"awo",@progbits,e ; Explicit sections. @h = global i32 1, section "aaa" @@ -29,9 +29,9 @@ @k = global i32 1, !associated !4 !4 = !{i32* @h} ; CHECK-DAG: .section aaa,"aw",@progbits -; CHECK-DAG: .section bbb,"awm",@progbits,h,unique,1 -; CHECK-DAG: .section bbb,"awm",@progbits,h,unique,2 -; CHECK-DAG: .section .data.k,"awm",@progbits,h +; CHECK-DAG: .section bbb,"awo",@progbits,h,unique,1 +; CHECK-DAG: .section bbb,"awo",@progbits,h,unique,2 +; CHECK-DAG: .section .data.k,"awo",@progbits,h ; Non-GlobalObject metadata. @l = global i32 1, section "ccc", !associated !5 Index: test/MC/ELF/section-metadata-err1.s =================================================================== --- test/MC/ELF/section-metadata-err1.s +++ test/MC/ELF/section-metadata-err1.s @@ -2,4 +2,4 @@ // CHECK: error: symbol is not in a section: foo - .section .shf_metadata,"am",@progbits,foo + .section .shf_metadata,"ao",@progbits,foo Index: test/MC/ELF/section-metadata-err2.s =================================================================== --- test/MC/ELF/section-metadata-err2.s +++ test/MC/ELF/section-metadata-err2.s @@ -3,4 +3,4 @@ // CHECK: error: symbol is not in a section: foo .quad foo - .section .shf_metadata,"am",@progbits,foo + .section .shf_metadata,"ao",@progbits,foo Index: test/MC/ELF/section-metadata-err3.s =================================================================== --- test/MC/ELF/section-metadata-err3.s +++ test/MC/ELF/section-metadata-err3.s @@ -3,4 +3,4 @@ // CHECK: error: symbol is not in a section: foo foo = 42 - .section .shf_metadata,"am",@progbits,foo + .section .shf_metadata,"ao",@progbits,foo Index: test/MC/ELF/section-metadata-err4.s =================================================================== --- test/MC/ELF/section-metadata-err4.s +++ test/MC/ELF/section-metadata-err4.s @@ -2,4 +2,4 @@ // CHECK: error: expected metadata symbol - .section .shf_metadata,"am",@progbits + .section .shf_metadata,"ao",@progbits Index: test/MC/ELF/section.s =================================================================== --- test/MC/ELF/section.s +++ test/MC/ELF/section.s @@ -163,12 +163,12 @@ .Lshf_metadata_target2_2: .quad 0 -.section .shf_metadata1,"am",@progbits,.Lshf_metadata_target2_1 -.section .shf_metadata2,"am",@progbits,.Lshf_metadata_target2_2 -.section .shf_metadata3,"am",@progbits,.shf_metadata_target1 -// ASM: .section .shf_metadata1,"am",@progbits,.Lshf_metadata_target2_1 -// ASM: .section .shf_metadata2,"am",@progbits,.Lshf_metadata_target2_2 -// ASM: .section .shf_metadata3,"am",@progbits,.shf_metadata_target1 +.section .shf_metadata1,"ao",@progbits,.Lshf_metadata_target2_1 +.section .shf_metadata2,"ao",@progbits,.Lshf_metadata_target2_2 +.section .shf_metadata3,"ao",@progbits,.shf_metadata_target1 +// ASM: .section .shf_metadata1,"ao",@progbits,.Lshf_metadata_target2_1 +// ASM: .section .shf_metadata2,"ao",@progbits,.Lshf_metadata_target2_2 +// ASM: .section .shf_metadata3,"ao",@progbits,.shf_metadata_target1 // CHECK: Section { // CHECK: Index: 22