llvm-project/llvm/test/MC/ELF/section-gnu.s
Fangrui Song 1477ed8465 [MC] Support SHF_GNU_RETAIN as section flag 'R'
On Linux target triples, GNU as sets EI_OSABI to ELFOSABI_GNU when SHF_GNU_RETAIN is used。
On `*-*-freebsd`, it usually sets EI_OSABI to ELFOSABI_FREEBSD.

GNU ld respects SHF_GNU_RETAIN only for ELFOSABI_FREEBSD/ELFOSABI_GNU.
https://sourceware.org/bugzilla/show_bug.cgi?id=27282

MC doesn't set ELFOSABI_GNU for SHF_GNU_RETAIN/STB_GNU_UNIQUE/STT_GNU_IFUNC.
MC assembled object files do not have special semantics in GNU ld.

Reviewed By: psmith

Differential Revision: https://reviews.llvm.org/D95730
2021-02-02 09:34:09 -08:00

17 lines
454 B
ArmAsm

# RUN: llvm-mc -triple=x86_64 %s | FileCheck %s --check-prefix=ASM
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s | llvm-readobj -hS - | FileCheck %s --check-prefix=OBJ
# ASM: .section retain,"aR",@progbits
## Note: GNU as sets OSABI to GNU.
# OBJ: OS/ABI: SystemV (0x0)
# OBJ: Name: retain
# OBJ-NEXT: Type: SHT_PROGBITS
# OBJ-NEXT: Flags [
# OBJ-NEXT: SHF_ALLOC
# OBJ-NEXT: SHF_GNU_RETAIN
# OBJ-NEXT: ]
.section retain,"aR",@progbits