# RUN: yaml2obj %s -o %t # RUN: llvm-nm --no-sort %t | FileCheck %s ## We used to be wrong with some linker synthesized symbols. ## We mark __init_array_start as 'd', as consistent with GNU nm >= 2.33 (older GNU ## nm marks it as 't'). See https://sourceware.org/bugzilla/show_bug.cgi?id=24511 # CHECK: d __fini_array_start # CHECK: d __init_array_start # CHECK: d __preinit_array_start # CHECK: B __bss_start # CHECK: D _edata # CHECK: B _end !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_EXEC Machine: EM_X86_64 Sections: - Name: .text Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] - Name: .fini_array Type: SHT_FINI_ARRAY Flags: [ SHF_ALLOC, SHF_WRITE ] - Name: .init_array Type: SHT_INIT_ARRAY Flags: [ SHF_ALLOC, SHF_WRITE ] - Name: .preinit_array Type: SHT_PREINIT_ARRAY Flags: [ SHF_ALLOC, SHF_WRITE ] - Name: .data Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_WRITE ] - Name: .bss Type: SHT_NOBITS Flags: [ SHF_ALLOC, SHF_WRITE ] Symbols: - Name: __fini_array_start Section: .fini_array - Name: __init_array_start Section: .init_array - Name: __preinit_array_start Section: .preinit_array - Name: __bss_start Section: .bss Binding: STB_GLOBAL - Name: _edata Section: .data Binding: STB_GLOBAL - Name: _end Section: .bss Binding: STB_GLOBAL