xref: /llvm-project/lld/test/ELF/no-discard-this_module.s (revision b159906a9a45ba9d8655a29014d585203faf0629)
1// REQUIRES: x86
2// RUN: llvm-mc -filetype=obj -triple=x86_64-linux-gnu -save-temp-labels %s -o %t
3// RUN: ld.lld %t -o %t2
4// RUN: llvm-readobj -S --section-data --symbols %t2 | FileCheck %s
5
6.global _start
7_start:
8
9// This section and symbol is used by Linux kernel modules. Ensure it's not
10// accidentally discarded.
11.section .gnu.linkonce.this_module:
12__this_module:
13.byte 0x00
14
15// CHECK: Section {
16// CHECK:    Index:
17// CHECK:    Name: .gnu.linkonce.this_module
18// CHECK-NEXT:    Type: SHT_PROGBITS
19// CHECK-NEXT:    Flags [
20// CHECK-NEXT:    ]
21// CHECK-NEXT:    Address:
22// CHECK-NEXT:    Offset:
23// CHECK-NEXT:    Size:
24// CHECK-NEXT:    Link:
25// CHECK-NEXT:    Info:
26// CHECK-NEXT:    AddressAlignment:
27// CHECK-NEXT:    EntrySize:
28// CHECK-NEXT:    SectionData (
29// CHECK-NEXT:      0000: 00                                   |.|
30// CHECK-NEXT:    )
31// CHECK-NEXT:  }
32
33// CHECK:  Symbol {
34// CHECK:    Name: __this_module
35// CHECK-NEXT:    Value:
36// CHECK-NEXT:    Size:
37// CHECK-NEXT:    Binding: Local
38// CHECK-NEXT:    Type: None
39// CHECK-NEXT:    Other:
40// CHECK-NEXT:    Section: .gnu.linkonce.this_module:
41// CHECK-NEXT:  }
42